制作python3.7 离线rpm包

制作python3.7 离线rpm包

FPM环境安装

安装依赖

yum -y install rpm-build git
rpm -aq ruby ruby-devel rubygems

安装rvm

获取密钥(有可能需要执行两次)

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

下载rvm.sh脚本

curl -sSL https://get.rvm.io | bash -s stable

根据提示加载rvm.sh环境变量

source /etc/profile.d/rvm.sh

列出所有版本

rvm list known

输入版本号直接安装ruby

rvm install 2.4.10

安装fpm

gem install fpm

制作python3.7 离线rpm包

目录结构

├─dependent-rpms.tgz ------- // python3需要的依赖包 
├─fpm-create.sh ------------ // 编译rpm脚本
├─install_py37.sh ---------- // 安装rpm过程脚本
├─openssl-1.1.1k.tar.gz ---- // openssl源码包
└─Python-3.7.10.tar.xz ----- // python3.7源码包

dependent-rpms.tgz

yum install -y yum-plugin-downloadonly
 yum install -y --downloadonly --downloaddir=rpms zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

fpm-create.sh

fpm -t rpm -s dir -f -m poros -n python3.7 -v Poros --iteration 0507.el7 --after-install install_py37.sh openssl-1.1.1k.tar.gz=/usr/local/ Python-3.7.10.tar.xz=/usr/local/ dependent-rpms.tgz=/usr/local

install_py37.sh

#!/bin/sh
date_str=`date +%F_%T`
function install_openssl(){
        if [ -d /usr/local/openssl ];then
                mv /usr/local/openssl /usr/local/openssl-$date_str
        fi
        echo -e "\033[33m====> 安装openssl\033[0m"
        cd /usr/local
        tar -xzvf openssl-1.1.1k.tar.gz
        cd openssl-1.1.1k/
        ./config --prefix=/usr/local/openssl shared zlib
        make && make install
        # 加入系统环境变量
        echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> /etc/profile
        source /etc/profile
}

function install_py37(){
        if [ -d /usr/local/python37 ];then
                mv /usr/local/python37 /usr/local/python37-$date_str
        fi
        echo -e "\033[33m====> 安装python3.7\033[0m"
        cd /usr/local
        tar -xJvf Python-3.7.10.tar.xz
        cd Python-3.7.10/
        ./configure --prefix=/usr/local/python37 --with-openssl=/usr/local/openssl
        make && make install
        if [ -e /usr/local/bin/python3.7 ];then
                /bin/rm /usr/bin/python3.7
        fi
        if [ -e /usr/bin/pip3.7 ];then
                /bin/rm /usr/bin/pip3.7
        fi
        ln -s /usr/local/python37/bin/python3.7 /usr/bin/python3.7
        ln -s /usr/local/python37/bin/pip3.7 /usr/bin/pip3.7
}
function clean(){
        echo -e "\033[33m====> 清除文件\033[0m"
        /bin/rm -rf /usr/local/{openssl-1.1.1k.tar.gz,Python-3.7.10.tar.xz,dependent-rpms.tgz}
        /bin/rm -rf /usr/local/openssl-1.1.1k
        /bin/rm -rf /usr/local/Python-3.7.10
        /bin/rm -rf /usr/local/dependent-rpms
}

function install_deprpms(){
        echo -e "\033[33m====> 安装依赖\033[0m"
        cd /usr/local && tar -xzvf dependent-rpms.tgz
        cd /usr/local/dependent-rpms && chmod 755 * && rm -rf /var/lib/rpm/.rpm.lock && sudo rpm -ivh *.rpm --nodeps --force
}

install_deprpms
install_openssl
if [ $? == 0 ];then
        install_py37
        if [ $? == 0 ];then
                echo -e "\033[32m安装python3.7成功!\033[0m"
                clean
                exit 0
        else
                echo -e "\033[31m安装python3.7失败\033[0m"
                exit 1
        fi
else
        echo -e "\033[31m安装openssl失败!\033[0m"
        exit 1
fi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值