OpenDataCube安装教程(一)——依赖环境安装

一.OpenDataCube依赖环境的安装

1.miniconda安装

借助miniconda安装python,便于多种Python环境的管理。

1)下载最新版本的minconda

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

注意:若提示wget命令不存在,执行 yum install wget -y 安装即可

2)安装miniconda

[root@song envs]# ll
total 65148
-rw-r--r--. 1 root root 66709754 Jul 22 00:13 Miniconda3-latest-Linux-x86_64.sh
[root@song envs]# chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
[root@song envs]# bash Miniconda3-latest-Linux-x86_64.sh #运行
···
Please answer 'yes' or 'no':'
>>> yes

Miniconda3 will now be installed into this location:
/root/miniconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/miniconda3] >>> /root/envs/miniconda3		#选择yes默认安装位置;或者直接自定义路径

3)测试安装是否成功

(base) [root@song bin]# conda -V
conda 4.10.3

显示版本号,则安装成功。

若显示conda命令找不到,则环境变量配置有问题或者未生效

[root@song envs]# conda -V
bash: conda: command not found...

解决方法:

[root@song bin]# vim ~/.bashrc		#查看是否配置环境变量
#在最后一行加上,取决于每个人的实际安装路径
export PATH=$PATH:/root/envs/miniconda3/bin

[root@song bin]# source ~/.bashrc		#运行生效
(base) [root@song bin]# conda -V
conda 4.10.3

拓展:配置镜像源

(base) [root@song bin]#cp ~/.condarc ~/.condarc.bak  #以防出错,先备份

(base) [root@song bin]# cd ~
(base) [root@song ~]# vim .condarc
#将内容全部删除,修改为下面的配置
(base) [root@song ~]# conda clean -i 	#清除缓存

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2.Python 3.6+安装

借助miniconda创建python环境

1)创建python环境

# conda create -n env_name python=version_id
(base) [root@song bin]# conda create -n py38 python=3.8

若出现以下问题,则需要考虑按照上面步骤配置镜像源

(base) [root@song bin]# conda create -n py38 python=3.8
Collecting package metadata (current_repodata.json): failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/linux-64/current_repodata.json>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

If your current network has https://www.anaconda.com blocked, please file
a support request with your network engineering team.

'https://repo.anaconda.com/pkgs/main/linux-64'

2)查看所有的python环境

(base) [root@song ~]# conda env list
# conda environments:
#
base                  *  /root/envs/miniconda3
py38                     /root/envs/miniconda3/envs/py38

3)激活Python环境,安装必要的库

(base) [root@song ~]# conda activate py38   #激活环境
(py38) [root@song ~]# conda install gdal  #也可以使用pip install gdal安装,但较易出错,不推荐
(py38) [root@song ~]# conda install jupyter matplotlib scipy


pip有时候系统环境没有某个编译器可能会失败,conda不会。在使用pip install出错时,不妨考虑用conda install

(py38) [root@song ~]# conda list
# packages in environment at /root/envs/miniconda3/envs/py38:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main    defaults
_openmp_mutex             4.5                       1_gnu    defaults
aws-c-common              0.4.57               he6710b0_1    defaults
aws-c-event-stream        0.1.6                h2531618_5    defaults
aws-checksums             0.1.9                he6710b0_0    defaults
aws-sdk-cpp               1.8.185              hce553d0_0    defaults
blas                      1.0                         mkl    defaults
bzip2                     1.0.8                h7b6447c_0    defaults
c-ares                    1.17.1               h27cfd23_0    defaults
ca-certificates           2021.7.5             h06a4308_1    defaults
cairo                     1.16.0               hf32fb01_1    defaults
certifi                   2021.5.30        py38h06a4308_0    defaults
cfitsio                   3.470                hf0d0db6_6    defaults
curl                      7.78.0               h1ccaba5_0    defaults
expat                     2.4.1                h2531618_2    defaults
fontconfig                2.13.1               h6c09931_0    defaults
freetype                  2.10.4               h5ab3b9f_0    defaults
freexl                    1.0.6                h27cfd23_0    defaults
gdal                      3.0.2            py38h4694593_1    defaults
geos                      3.8.0                he6710b0_0    defaults
geotiff                   1.6.0                h21e8280_0    defaults
giflib                    5.2.1                h7b6447c_0    defaults
glib                      2.69.1               h5202010_0    defaults
hdf4                      4.2.13               h3ca952b_2    defaults
hdf5                      1.10.6               hb1b8bf9_0    defaults
icu                       58.2                 he6710b0_3    defaults
intel-openmp              2021.3.0          h06a4308_3350    defaults
jpeg                      9b                   h024ee3a_2    defaults
json-c                    0.13.1               h1bed415_0    defaults
kealib                    1.4.14               h54c064f_0    defaults
krb5                      1.19.2               hac12032_0    defaults
ld_impl_linux-64          2.35.1               h7274673_9    defaults
libboost                  1.73.0              h3ff78a5_11    defaults
libcurl                   7.78.0               h0b77cf5_0    defaults
libdap4                   3.19.1               h6ec2957_0    defaults
libedit                   3.1.20210216         h27cfd23_1    defaults
libev                     4.33                 h7b6447c_0    defaults
libffi                    3.3                  he6710b0_2    defaults
libgcc-ng                 9.3.0               h5101ec6_17    defaults
libgdal                   3.0.2                h7c14f60_1    defaults
libgfortran-ng            7.5.0               ha8ba4b0_17    defaults
libgfortran4              7.5.0               ha8ba4b0_17    defaults
libgomp                   9.3.0               h5101ec6_17    defaults
libkml                    1.3.0                h7ecb851_5    defaults
libnetcdf                 4.6.1                h2053bdc_4    defaults
libnghttp2                1.41.0               hf8bcb03_2    defaults
libpng                    1.6.37               hbc83047_0    defaults
libpq                     12.2                 h553bfba_1    defaults
libspatialite             4.3.0a               h793db0d_0    defaults
libssh2                   1.9.0                h1ba5d50_1    defaults
libstdcxx-ng              9.3.0               hd4cf53a_17    defaults
libtiff                   4.2.0                h85742a9_0    defaults
libuuid                   1.0.3                h1bed415_2    defaults
libwebp-base              1.2.0                h27cfd23_0    defaults
libxcb                    1.14                 h7b6447c_0    defaults
libxml2                   2.9.12               h03d6c58_0    defaults
lz4-c                     1.9.3                h295c915_1    defaults
mkl                       2021.3.0           h06a4308_520    defaults
mkl-service               2.4.0            py38h7f8727e_0    defaults
mkl_fft                   1.3.0            py38h42c9631_2    defaults
mkl_random                1.2.2            py38h51133e4_0    defaults
ncurses                   6.2                  he6710b0_1    defaults
numpy                     1.20.3           py38hf144106_0    defaults
numpy-base                1.20.3           py38h74d4b33_0    defaults
openjpeg                  2.3.0                h05c96fa_1    defaults
openssl                   1.1.1k               h27cfd23_0    defaults
pcre                      8.45                 h295c915_0    defaults
pip                       21.0.1           py38h06a4308_0    defaults
pixman                    0.40.0               h7b6447c_0    defaults
poppler                   0.81.0               h01f5e8b_2    defaults
poppler-data              0.4.10               h06a4308_0    defaults
postgresql                12.2                 h553bfba_1    defaults
proj                      6.2.1                haa6030c_0    defaults
python                    3.8.11          h12debd9_0_cpython    defaults
readline                  8.1                  h27cfd23_0    defaults
setuptools                52.0.0           py38h06a4308_0    defaults
six                       1.16.0             pyhd3eb1b0_0    defaults
sqlite                    3.36.0               hc218d9a_0    defaults
tiledb                    2.2.9                hffe1d7a_0    defaults
tk                        8.6.10               hbc83047_0    defaults
wheel                     0.37.0             pyhd3eb1b0_0    defaults
xerces-c                  3.2.3                h780794e_0    defaults
xz                        5.2.5                h7b6447c_0    defaults
zlib                      1.2.11               h7b6447c_3    defaults
zstd                      1.4.9                haebb681_0    defaults

4)退出Python环境

(py38) [root@song ~]# conda deactivate

5)删除某个环境(包括该环境下安装的库):

conda remove --name py38 --all

3.PostgreSQL 9.5+安装

参考 在CentOS 7上安装&配置PostgreSQL 12 - 云+社区 - 腾讯云 (tencent.com)

提示:非root用户,请使用sudo权限

1)导入yum源

(base) [root@song ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2)安装Postgre SQL服务

(base) [root@song ~]# yum install -y postgresql12 postgresql12-server

注意版本选择问题:

安装PostgreSQL 11就是 yum install postgresql12 postgresql12-server

安装PostgreSQL 9.5就是 yum install postgresql95 postgresql95-server

依此类推

3)初始化数据库

(base) [root@song ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK

4)启动PostgreSQL服务

(base) [root@song ~]# systemctl start postgresql-12   #启动PostgreSQL服务
(base) [root@song ~]# systemctl enable postgresql-12  #设置PostgreSQL服务为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-12.service to /usr/lib/systemd/system/postgresql-12.service.

9.x版本的服务名是postgresql-9.x

4.PostgreSQL配置

​ PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。

​ 默认情况下 PostgreSQL 安装完成后,自带了一个命令行工具 SQL Shell(psql)。Linux系统可以直接切换到 postgres 用户来开启命令行工具:

修改postgres账号密码

(base) [root@song ~]# sudo -i -u postgres  #Linux用户切换为postgres
-bash-4.2$ psql			#启动SQL Shell
psql (12.8)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD '123456'; #修改密码
ALTER ROLE
postgres-# \q
-bash-4.2$ exit		#退出psql命令行
logout
(base) [root@song ~]# 

语法可以参考PostgreSQL 语法 | 菜鸟教程 (runoob.com)

PostgreSQL shell常用语法示例

提示:进入命令行后的操作命令,一定要以;结尾,否则回车也并不会执行!!认为命令未结束。

#启动SQL shell:
su postgres  #若未赋予权限,则使用下面的命令
sudo -i -u postgres
psql
#退出
\q
exit

1)数据库相关语法示例

#创建数据库
CREATE DATABASE mydb;

#查看所有数据库
\l

#切换当前数据库
\c mydb

#创建表
CREATE TABLE test(id int,body varchar(100));

#查看当前数据库下所有表
\d

2)用户与访问授权语法示例

#新建用户
CREATE USER test WITH PASSWORD 'test';

#赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO test;

#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb TO test

权限代码:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE、USAGE

5.PostgreSQL配置远程访问

默认情况下,PostgreSQL只允许localhost(127.0.0.1)的连接。如果数据库服务器和程序不在一台服务器上,那么将无法连接。所以如果要开启远程访问,需要更改安装文件的配置。

1)修改IP绑定

(base) [root@song ~]# vim /var/lib/pgsql/12/data/postgresql.conf

#将监听地址修改为*
#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行
listen_addresses='*'

2)允许所有IP访问

(base) [root@song ~]# vim /var/lib/pgsql/12/data/pg_hba.conf

#修改配置文件
#在文件的最后追加一行
host    all             all             0.0.0.0/0               md5

3)重启Postgre SQL服务

(base) [root@song ~]# systemctl restart postgresql-12

4)开放端口-防火墙配置

PostgreSQL默认监听端口为5432

(base) [root@song ~]# firewall-cmd --add-port=5432/tcp --permanent		#配置规则,开放端口
success
(base) [root@song ~]# firewall-cmd --reload		#配置规则后重新加载
success
(base) [root@song ~]# firewall-cmd --list-ports		#查看防火墙开放的端口被
5432/tcp


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值