IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用 FPM 创建 Python 的 RPM 包

    shendao发表于 2016-06-04 11:31:46
    love 0

    生成 RPM 包太麻烦了,最近知道了一个名为 FPM 的神器,在此记录一下。

    安装 FPM

    NOTE:测试系统为 RedHat 系的 CentOS 6.3,编译 Python 2.7.6 的 RPM 包。

    安装 Ruby

    由于 FPM 使用 Ruby 写成,因此系统中需要安装 Ruby 的运行环境(这里 gem 的源改为了 taobao 的镜像):

    # Install ruby dependencies yum -y installrubyrubygemsruby-devel # Use taobao repo for ruby gems gemsources -a http://ruby.taobao.org/ # Remove origin repo from ruby gems gemsources --removehttp://rubygems.org/ 

    通过 Gem 安装 FPM

    在 Ruby 安装完成后,就可以使用 gem 安装 FPM 了:

    geminstallfpm 

    Good.

    设置编译环境

    在编译 Python 之前,需要安装开发工具和库:

    # Install EPEL repository wgethttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wgethttp://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvhremi-release-6*.rpmepel-release-6*.rpm   # Install build toolchain yum -y groupinstall "Development tools" yum -y installopenssl-develreadline-develbzip2-develsqlite-develzlib-develncurses-develdb4-develexpat-devel 

    编译并创建 Python 的 RPM 包

    FPM 的使用比较简单,可以参考 FPM 的 使用说明 。

    首先,下载 Python-2.7.6 的源码包并解压:

    curl --progress-bar -LOhttp://mirrors.sohu.com/python/2.7.6/Python-2.7.6.tgz tarxfPython-2.7.6.tgz cdPython-2.7.6.tgz   # Python2.7编译安装后会安装到这个目录,方便打包 exportINTERMEDIATE_INSTALL_DIR=/tmp/installdir-Python-2.7.6 # RPM包安装后Python2.7的目录 exportINSTALL_DIR=/usr/local   LDFLAGS="-Wl,-rpath=${INSTALL_DIR}/lib ${LDFLAGS}" /             ./configure --prefix=${INSTALL_DIR} --enable-unicode=ucs4 /                 --enable-shared --enable-ipv6 make makeinstallDESTDIR=${INTERMEDIATE_INSTALL_DIR} # 注意之前导出 INTERMEDIATE_INSTALL_DIR 和 INSTALL_DIR 这两个环境变量,这里还要使用 fpm -s dir -t -f rpm -n python27 -v '2.7.6' /     -d 'openssl' /     -d 'bzip2' /     -d 'zlib' /     -d 'expat' /     -d 'db4' /     -d 'sqlite' /     -d 'ncurses' /     -d 'readline' /     --directories=${INSTALL_DIR}/lib/python2.7/ /     --directories=${INSTALL_DIR}/include/python2.7/ /     -C ${INTERMEDIATE_INSTALL_DIR} . 

    Bonus Time

    包含以下内容:

    • 自动下载、编译、打包 Python RPM 包的 Makefile;
    • 自动下载、编译、打包 virtualenv、pip、supervisor 等 Python 库和工具的 RPM 包。

    GitHub 项目地址: python27-rpm

    转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 使用 FPM 创建 Python 的 RPM 包



沪ICP备19023445号-2号
友情链接