CentOS 6 5下製作RPM安裝包

2021-06-22 09:47:42 字數 2779 閱讀 7844

之前開發中用到python及一些其他相關的工具,大多是需要源**編譯安裝,在進行現場部署安裝時,雖然有寫了個完整的部署指令碼,但是因為實在過於繁瑣,遂起了製作rpm包的念頭,經過一番google和嘗試,終於成功地將python3.3.5以及要用到pcre、nginx、django等七七八八的東西全給做出相應的rpm包,部署時,一條rpm -ivh命令即可,感覺世界安靜了很多

一、建立rpmbuild目錄結構

我在/home/user目錄下建立rpmbuild的目錄,並在其下新建build、rpms、sources、specs、srpms幾個子目錄備用。

把官網的python-3.3.5.tar.gz放到sources子目錄下。如果只是為python3.3.5製作rpm包,則不需要其他東西,我是把其他要用到的諸如paramiko、django、memcached等都統統丟到了python-3.3.5的原始碼目錄中,並重新打包為xz格式,體積稍微小一點點,心裡舒坦

三、編寫specs

進入specs目錄,建立python.specs檔案,該檔案就是rpmbuild用來生成rpm包的,我的格式如下:

name:       python

version: 3.3.5

release: 3.el6

vendor: python software foundation

summary: %-%

license: gpl

source: %-%.tar.xz

group: system environment/libraries

url:

packager: [email protected]

autoreq: no

prefix: %/local/lib/python3.3

%description

python is powerful... and fast

%define install_home %

%prep

%setup -q

%build

./configure

make

%install

make destdir=$rpm_build_root install

cp -f $rpm_build_dir/%-%/django-1.6.1.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/pycrypto-2.6.1.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/paramiko-1.13.0.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/ecdsa-0.10.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/psycopg2-2.5.2.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/python3-memcached-1.51.tar.xz $rpm_build_root/%

cp -f $rpm_build_dir/%-%/setuptools-3.4.tar.xz $rpm_build_root/%

%post

function python_install()

/$pkg -c /tmp

cd /tmp/$dir

echo "installing $dir ..."

/usr/local/bin/python3 setup.py $opts install>/dev/null

rm -rf /tmp/$dir

}python_install django-1.6.1.tar.xz

python_install pycrypto-2.6.1.tar.xz

python_install ecdsa-0.10.tar.xz

python_install paramiko-1.13.0.tar.xz

python_install setuptools-3.4.tar.xz

python_install python3-memcached-1.51.tar.xz

python_install psycopg2-2.5.2.tar.xz "build_ext --pg-config=/usr/pgsql-9.2/bin/pg_config"

exit 0

%postun

[ -d "%" ] && rm -rf %

%clean

[ "$rpm_build_root" != "/" ] && rm -rf "$rpm_build_root"

make clean

%files

%defattr (-,root,root)

%

四、生成rpm包

在spec目錄下執行如下命令,編譯生成python的rpm安裝包,順帶把django、paramiko、memcached等也打包安裝了

rpmbuild -bb ./python.spec
五、安裝rpm包

生成的rpm包python-3.3.5-3.el6.x86_64.rpm,預設存放在rpms/x86_64目錄下(我的系統是64位的),看起來像模像樣的,終於可以用rpm -ivh安裝了,簡單省事。我還把其他所有用到的三方庫、小工具、軟體比如nginx、pcre、sqlite、tomcat、uwsgi、zlib等全部做成了rpm包,讓安裝指令碼省了很多事。

Centos6 5下iscsi儲存搭建

在搭建vsphere環境需要用到網路儲存來模擬生產環境中的應用,現將一台800g 硬碟的伺服器配置成iscsi儲存。iscsi伺服器如下 ip 10.11.68.10 硬碟 除伺服器基本應用外,劃分500g作為儲存用,由於採用的lvm,我們直接建立邏輯卷即可。root iscsi10 vgs vg ...

CentOS 6 5下編譯安裝TFS

tfs官方有個安裝文件 不過如果對於小白確實寫的太簡單了。本人整理了自己編譯安裝tfs的過程,給大家參考一下。一 安裝依賴包yum y install automake yum y install libtool yum y install readline readline devel yum y...

centos 6 5下KVM環境搭建

一 作業系統配置 1.使用root許可權登入 2.修改核心模式為相容核心啟動 vim boot grub grub.conf 主要修改default 1 3.關閉selinux 兩種方式 1.使用setenforce 0命令 立即生效,重啟後失效。2.修改配置檔案,vim etc selinux c...