安装主机的Python3
前提条件
操作步骤
- 如果主机的操作系统为麒麟、统信、HCE或者BCLINUX,执行如下命令,安装依赖环境。
yum -y install make rng-tools perl libffi-devel sqlite-devel openssl-devel python3-devel gcc-c++ libcgroup libcgroup-tools
systemctl enable rngd
systemctl restart rngd
systemctl enable cgconfig
systemctl restart cgconfig
如果主机的操作系统为SUSE,执行如下命令,安装依赖环境。
systemctl enable haveged
systemctl restart haveged
touch /etc/cgconfig.conf
chmod 644 /etc/cgconfig.conf
systemctl enable cgconfig
systemctl restart cgconfig
- 安装需要版本的Python3,可使用yum源或者Python3安装包进行安装,要求安装在/usr/local/python3下,以安装Python3.7.9为例。
- 使用yum源安装,执行如下步骤。
- 执行以下命令,检查yum源中提供的Python3版本是否为3.7.9。
yum --showduplicates list python3
回显中的“Available Packages”展示了yum源提供的软件包,可知软件包版本。
- 执行以下命令,安装Python3。
yum -y install python3-3.7.9
- 执行以下命令,检查yum源中提供的Python3版本是否为3.7.9。
- 使用Python3安装包安装(可从官网下载Python3安装包):以Python3.7.9.tgz安装包为例,执行如下命令。
- 执行mkdir -p /usr/local/python3命令,创建python3文件夹。
- 执行tar -zxvf Python-3.7.9.tgz命令,解压Python-3.7.9.tgz安装包。
- 执行cd Python-3.7.9命令,进入解压后的目录。
- 执行如下命令,进行编译安装。
./configure --prefix=/usr/local/python3 --enable-optimizations --enable-shared
make -sj && make install
若主机操作系统为SUSE,则需要安装的Python版本为3.8.5,并且需要使用Python3安装包安装,具体操作如下。
- 执行以下命令,创建python3文件夹。
mkdir -p /usr/local/python3
- 执行以下命令,解压Python-3.8.5.tgz安装包。
tar -zxvf Python-3.8.5.tgz
- 执行以下命令,进入解压后的目录。
cd Python-3.8.5
- 执行如下命令,进行编译安装。
./configure --prefix=/usr/local/python3 --enable-optimizations --enable-shared
make -sj && make install
- 执行以下命令,创建python3文件夹。
- 使用yum源安装,执行如下步骤。
- 执行如下命令,修改软链接。
- 安装Python3.7.9完成后,执行以下操作。
ln -sf /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0
ln -sf /usr/lib64/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so
ln -sf /usr/local/python3/lib/libpython3.so /usr/lib64/libpython3.so
ln -s /usr/lib64/libffi.so.6 /usr/lib64/libffi.so.7
rm -f /usr/bin/pip /usr/bin/pip3 /usr/bin/python /usr/bin/python3
ln -s /usr/local/python3/bin/pip /usr/local/bin/pip
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
ln -s /usr/local/python3/bin/pip3.7 /usr/local/bin/pip3.7
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/bin/python3 /usr/bin/python
chmod -R 755 /usr/local/python3
chmod 755 -R /usr/local/lib64/python3.7
chmod 755 -R /usr/local/lib/python3.7
ln -sf /usr/local/python3/lib/python3.7 /usr/lib/python3.7
ln -sf /usr/bin/python3 /usr/bin/python3.7
- 安装Python3.8.5完成后,执行以下操作。
ln -sf /usr/local/python3/lib/libpython3.8.so.1.0 /usr/lib64/libpython3.8.so.1.0
ln -sf /usr/lib64/libpython3.8.so.1.0 /usr/lib64/libpython3.8.so
ln -sf /usr/local/python3/lib/libpython3.so /usr/lib64/libpython3.so
ln -s /usr/lib64/libffi.so.7.1.0 /usr/lib64/libffi.so.7
rm -f /usr/bin/pip /usr/bin/pip3 /usr/bin/python /usr/bin/python3
ln -s /usr/local/python3/bin/pip /usr/local/bin/pip
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
ln -s /usr/local/python3/bin/pip3.8 /usr/local/bin/pip3.8
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/bin/python3 /usr/bin/python
chmod -R 755 /usr/local/python3
chmod 755 -R /usr/local/lib64/python3.8
chmod 755 -R /usr/local/lib/python3.8
ln -sf /usr/local/python3/lib/python3.8 /usr/lib/python3.8
ln -sf /usr/bin/python3 /usr/bin/python3.8
NOTICE:
- 如果出现“ln: failed to create symbolic link '***': File exists”报错,跳过即可。
- 在更改目录权限的时候如果出现“No such file or directory”报错,跳过即可。
- 安装Python3.7.9完成后,执行以下操作。
- 如果主机的操作系统为SUSE,执行以下命令,将/lib64目录下的libreadline.so.7.0文件复制到/usr/lib64目录。
unlink /usr/lib64/libreadline.so
cp /lib64/libreadline.so.7.0 /usr/lib64
ln -sf /usr/lib64/libreadline.so.7.0 /usr/lib64/libreadline.so.7
- 执行如下命令,检查Python3是否安装成功。
python --version
如果回显显示Python 3.7.9,则表示安装成功。
注意事项
- 如果主机的操作系统为麒麟、统信、HCE或者BCLINUX,安装完Python 3.7.9后,执行命令yum list,发现yum源不可用,执行以下命令,修复yum源。
cp -rf /usr/lib/python3.7/site-packages/dnf* /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib/python3.7/site-packages/iniparse /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/site-packages/libdnf /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/site-packages/gpg /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/site-packages/libcomps /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/site-packages/rpm /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/site-packages/hawkey /usr/local/python3/lib/python3.7/site-packages
cp -rf /lib64/python3.7/curses /usr/local/python3/lib/python3.7/site-packages
cp -rf /usr/lib64/python3.7/lib-dynload/_curses.cpython-37m-aarch64-linux-gnu.so /usr/local/python3/lib/python3.7/lib-dynload/
执行命令yum list,回显不报错即可。
- 主机上线完成后,请执行以下命令,检查沙箱目录内的python是否正常。
su - Ruby
chroot /var/chroot
python
如果回显报错,显示不存在,或者引入模块失败,则登录主机,执行以下命令,检查软链接并复制python到沙箱目录。
- 执行以下命令,检查 /var/chroot/usr/bin/python 的软链接是否正常。
ls -l /var/chroot/usr/bin/python
- 执行以下命令,复制python到沙箱目录,以python3安装包在/usr/local/python3文件夹为例。
mkdir -p -m 755 /var/chroot/usr/local/
cp -fr /usr/local/python* /var/chroot/usr/local/
chmod -R 755 /var/chroot/usr/local/python*
cp /usr/lib64/libpython3.7m.so.1.0 /var/chroot/usr/lib64/
- 再次检查沙箱目录内的python是否正常。
su - Ruby
chroot /var/chroot
python
- 执行以下命令,检查 /var/chroot/usr/bin/python 的软链接是否正常。
浙公网安备 33010602011771号