码迷,mamicode.com
首页 > 编程语言 > 详细

测试使用fpm将python3的源码打包成rpm来安装

时间:2015-07-15 23:09:42      阅读:1430      评论:0      收藏:0      [点我收藏+]

标签:python   rpm   gem   fpm   

测试使用fpm将python3的源码打包成rpm来安装


一、基础环境
1、在tvm-base的基础上,复制一个镜像为tvm-rpm来测试。
2、网络:
eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm)
eth1:NAT(用于上外网,动态IP)
[root@tvm-rpm ~]# ip a s dev eth0 |grep global
    inet 192.168.56.253/24 brd 192.168.56.255 scope global eth0
[root@tvm-rpm ~]# ip a s dev eth1 |grep global 
    inet 10.0.3.15/24 brd 10.0.3.255 scope global eth1
    
3. 配置yum源
[root@tvm-rpm ~]# mv /etc/yum.repos.d/CentOS* /tmp/ && echo ‘192.168.56.254 mirrors.office.test‘ >> /etc/hosts && wget http://mirrors.office.test/centos/local-office.repo -O /etc/yum.repos.d/local-office.repo && yum makecache
[root@tvm-rpm ~]# yum update
[root@tvm-rpm ~]# reboot
[root@tvm-rpm ~]# mv CentOS-* /etc/yum.repos.d/ /tmp/


二、配置fpm环境
1、安装ruby和fpm
[root@tvm-rpm ~]# yum install ruby rubygems ruby-devel

更换gem的源:
[root@tvm-rpm ~]# gem sources --remove http://rubygems.org/ 
[root@tvm-rpm ~]# gem sources -a http://mirrors.aliyun.com/rubygems/
[root@tvm-rpm ~]# gem sources -a https://ruby.taobao.org/
[root@tvm-rpm ~]# gem sources -l
*** CURRENT SOURCES ***

http://mirrors.aliyun.com/rubygems/
https://ruby.taobao.org/


[root@tvm-rpm ~]# gem -v
1.3.7
[root@tvm-rpm ~]# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

安装fpm
[root@tvm-rpm ~]# gem install fpm -V
[root@tvm-rpm ~]# fpm --version
1.3.3

2、fpm的参数
参考:https://github.com/jordansissel/fpm/wiki
% fpm -s <source type> -t <target type> [options]
-s                          源格式
-t                          目标格式
-n                          包名
-v                          version值,实际版本号
--iteration                 release值,发布序列号
--epoch                     epoch值
--vendor                    厂商
--maintainer                维护者
--description               描述
--url                       软件主页
--workdir                   fpm工作目录
-d                          依赖的软件包
--directories               递归指定的目录标记为属于这个包
-C                          切换到指定的目录
-p                          输出到指定的路径
--force                     强制覆盖文件

--after-install FILE        包安装后执行的脚本
--before-install FILE       包安装前执行的脚本
--after-remove FILE         包移除后执行的脚本
--before-remove FILE        包移除前执行的脚本
--after-upgrade FILE        包升级后执行的脚本
--before-upgrade FILE       包升级前执行的脚本

-e                          building前编辑spec文件


三、将python3的源码打包成rpm来安装
1、配置编译python环境所需的包
[root@tvm-rpm ~]# mkdir /data/{download,rpms}
[root@tvm-rpm ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
[root@tvm-rpm ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

[root@tvm-rpm ~]# yum -y groupinstall "Development tools"
[root@tvm-rpm ~]# yum -y install openssl-devel readline-devel bzip2-devel sqlite-devel zlib-devel ncurses-devel db4-devel expat-devel

下载最新的python源码包:
[root@tvm-rpm ~]# wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz -O /data/download/Python-3.4.3.tgz
[root@tvm-rpm ~]# cd /data/download/
[root@tvm-rpm download]# tar xf Python-3.4.3.tgz 
[root@tvm-rpm download]# cd Python-3.4.3
[root@tvm-rpm Python-3.4.3]# 
[root@tvm-rpm Python-3.4.3]# export DIR_PY_SRC_INSTALL=/data/rpms/Python-3.4.3
[root@tvm-rpm Python-3.4.3]# export DIR_PY_RPM_INSTALL=/usr/local

[root@tvm-rpm Python-3.4.3]# export LDFLAGS="-Wl,-rpath=${DIR_PY_RPM_INSTALL}/lib ${LDFLAGS}"
[root@tvm-rpm Python-3.4.3]# ./configure --prefix=${DIR_PY_RPM_INSTALL}
[root@tvm-rpm Python-3.4.3]# make
[root@tvm-rpm Python-3.4.3]# make install DESTDIR=${DIR_PY_SRC_INSTALL}
[root@tvm-rpm Python-3.4.3]# cd ..

我们来看一下,生成了那些目录和文件:
[root@tvm-rpm Python-3.4.3]# cd /data/rpms
[root@tvm-rpm Python-3.4.3]# ls Python-3.4.3/usr/local/
bin  include  lib  share


2、开始打包
[root@tvm-rpm Python-3.4.3]# fpm -s dir -t rpm     -n python3     -v ‘3.4.3‘     --iteration ‘1.el6‘     --epoch ‘0‘     --vendor ‘ Python Software Foundation‘     --maintainer ‘PC‘     --description ‘use fpm to make a pkg for python-3.4.3‘     --url ‘https://www.python.org/downloads/release/python-343/‘     --workdir /data/rpms     -p /data/rpms/pkgs/     -C ${DIR_PY_SRC_INSTALL}     --directories=${DIR_PY_RPM_INSTALL}/lib     --directories=${DIR_PY_RPM_INSTALL}/include     -d ‘openssl‘     -d ‘bzip2‘     -d ‘zlib‘     -d ‘expat‘     -d ‘db4‘     -d ‘sqlite‘     -d ‘ncurses‘     -d ‘readline‘ Created package {:path=>"/data/rpms/pkgs/python3-3.4.3-1.el6.x86_64.rpm"}

我们来看看包的内容:
[root@tvm-rpm rpms]# rpm -qpi pkgs/python3-3.4.3-1.el6.x86_64.rpm 
Name        : python3                      Relocations: / 
Version     : 3.4.3                             Vendor: Python Software Foundation
Release     : 1.el6                         Build Date: Wed 15 Jul 2015 04:55:17 PM CST
Install Date: (not installed)               Build Host: tvm-rpm
Group       : default                       Source RPM: python3-3.4.3-1.el6.src.rpm
Size        : 126285890                        License: unknown
Signature   : (none)
Packager    : PC
URL         : https://www.python.org/downloads/release/python-343/
Summary     : use fpm to make a pkg for python-3.4.3
Description :
use fpm to make a pkg for python-3.4.3


3、安装测试
1)安装前:
[root@tvm-rpm rpms]# ls /usr/local/{bin,include,lib,share/man}
/usr/local/bin:

/usr/local/include:

/usr/local/lib:

/usr/local/share/man/man1:

2)开始安装:
[root@tvm-rpm rpms]# rpm -ivh pkgs/python3-3.4.3-1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:python3                ########################################### [100%]
[root@tvm-rpm rpms]# rpm -qa |grep python3
python3-3.4.3-1.el6.x86_64

3)安装后:
[root@tvm-rpm rpms]# ls /usr/local/{bin,include,lib,share/man/man1}
/usr/local/bin:
2to3  2to3-3.4  easy_install-3.4  idle3  idle3.4  pip3  pip3.4  pydoc3  pydoc3.4  python3  python3.4  python3.4-config  python3.4m  python3.4m-config  python3-config  pyvenv  pyvenv-3.4

/usr/local/include:
python3.4m

/usr/local/lib:
libpython3.4m.a  pkgconfig  python3.4

/usr/local/share/man/man1:
python3.1  python3.4.1

执行python命令,查看版本:
[root@tvm-rpm rpms]# python3 -c "import sys; print(sys.version)"
3.4.3 (default, Jul 15 2015, 14:40:59) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]

4)卸载:
[root@tvm-rpm rpms]# rpm -e python3-3.4.3-1.el6.x86_64           
[root@tvm-rpm rpms]# ls /usr/local/{bin,include,lib,share/man/man1}
/usr/local/bin:

/usr/local/include:

/usr/local/lib:

/usr/local/share/man/man1:


符合预期。


四、TODO
1、打包几个其他的东西,例如php,zabbix-agent,自己的脚本等。



ZYXW、参考
1、fpm/wiki
https://github.com/jordansissel/fpm/wiki
2、使用 FPM 创建 Python 的 RPM 包
http://theo.im/blog/2014/05/16/use-fpm-to-create-python-rpm-packages/
3、使用FPM快速生成RPM包
https://linux.cn/article-3184-1.html


测试使用fpm将python3的源码打包成rpm来安装

标签:python   rpm   gem   fpm   

原文地址:http://nosmoking.blog.51cto.com/3263888/1675009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!