Barman离线安装(一步到位)
原创
©著作权归作者所有:来自51CTO博客作者两个小黄鹂的原创作品,请联系作者获取转载授权,否则将追究法律责任
软件版本 |
CentOS Linux release 7.8.2003 (Core) |
Python 3.6.8 |
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6) |
psql (PostgreSQL) 13.6 |
安装postgresql客户端
1. 配置yum源,安装依赖
# vim /etc/yum.repos.d/CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
gpgcheck=0
enabled=1
yum install gcc-c++ -y
yum install perl-ExtUtils-Embed -y
yum install readline-devel -y
yum install zlib-devel -y
yum install python-devel -y
2. 编译安装
编译安装world会编译安装所有组件
tar -xvf postgresql-13.6.tar.gz
./configure --prefix=/usr/local/pgsql13.6 --with-perl --with-python
make world && make install-world
ln -sf /usr/local/pgsql13.6 /usr/local/pgsql
3. 配置环境变量
在最后添加如下信息
# vim /etc/profile
MANPATH=/usr/local/pgsql/share/man:$MANPATH
LD_LIBRARY_PATH=/usr/local/pgsql/lib
PG_HOME=/usr/local/pgsql
PATH=$PATH:$HOME/bin:$PG_HOME/bin
export PATH PG_HOME LD_LIBRARY_PATH MANPATH
# source /etc/profile
Barman安装
下面是需要的所有包的信息,如果还有其他需要的包可以直接通过python官方下载https://pypi.org/search/
# ls -lrt
total 5104
-rw-r--r-- 1 root root 11053 Feb 25 15:10 six-1.16.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 247702 Feb 25 15:10 python_dateutil-2.8.2-py2.py3-none-any.whl
-rw-r--r-- 1 root root 30872 Feb 25 15:10 argh-0.26.2-py2.py3-none-any.whl
-rw-r--r-- 1 root root 37734 Feb 25 15:10 argcomplete-2.0.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 5313 Feb 25 15:10 zipp-3.6.0-py3-none-any.whl
-rw-r--r-- 1 root root 26844 Feb 25 15:10 typing_extensions-4.1.1-py3-none-any.whl
-rw-r--r-- 1 root root 17978 Feb 25 15:10 importlib_metadata-4.8.3-py3-none-any.whl
-rw-r--r-- 1 root root 2953158 Feb 25 17:18 psycopg2_binary-2.8.6-cp36-cp36m-manylinux1_x86_64.whl
-rw-r--r-- 1 root root 1263676 Feb 25 17:20 barman-2.18.tar.gz
1. 软件依赖下载
确保软件版本与当前环境python及pip版本兼容,当前环境python为3.6版本,没有问题
链接:https://pan.baidu.com/s/1ilBq8u5xYcf2o-JsbklZGA 提取码:4qto
2. 安装barman相关依赖
依赖下载好,放在同一个目录,通过pip进行安装
# pip3 install *.whl
# pip3 list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
argcomplete (2.0.0)
argh (0.26.2)
importlib-metadata (4.8.3)
pip (9.0.3)
psycopg2-binary (2.8.6)
python-dateutil (2.8.2)
setuptools (39.2.0)
six (1.16.0)
typing-extensions (4.1.1)
zipp (3.6.0)
3. 安装barman
编译barman,编译前修改setup.py,可以确保软件顺利安装,主要为解决psycopg2的问题。
# tar -xvf barman-2.18.tar.gz
修改setup.py文件:
vim setup.py
修改前:
install_requires = [
"psycopg2 >= 2.4.2",
"python-dateutil",
"argcomplete",
]
修改后:
install_requires = [
"psycopg2-binary >= 2.4.2",
"python-dateutil",
"argcomplete",
]
# python3 setup.py build
# python3 setup.py install
# barman --version
# cp barman.conf /etc/
# cp -r barman.d/ /etc/
2.18 Barman by EnterpriseDB (www.enterprisedb.com)
4. 关于psycopg2
barman编译前修改setup.py中的依赖信息,将psycopg2修改为psycopg2-binary,关于这个操作,下面的连接做出了解释:
https://timothyqiu.com/archives/psycopg2-warning/
老版本中自带的预编译 wheel 二进制可能会造成崩溃问题,官方决定 psycopg2 从 2.8 版本开始将不再包含预编译二进制,必须通过编译安装。为此还作出了两个调整:
- 2.7.4 ~ 2.8 之间为过渡期,使用 psycopg2 的预编译二进制时会生成警告
- 新增了 psycopg2-binary 包,除了仍旧提供预编译二进制外,与 psycopg2 完全一致(即与老版本行为一致)。
开发人员的看法
- 推荐 psycopg2-binary 实际上是个换汤不换药的解决方案,什么问题都没有解决;
- 虽然 psycopg2-binary 的包名没变(还是 import psycopg2),但一些第三方库可能因此产生依赖问题;
- 由于目前 Python 的包管理机制,psycopg2 和 psycopg2-binary 虽然可以共存,但删的时候会同时删掉,很滑稽。