用fpm工具打包通过编译安装在系统中的软件

环境:Fedora 20  X86_64

一 fpm工具安装

#yum install ruby-devel
# gem install fpm

二 编译打包

1. 先安装libav的依赖库

yasm-1.2.0-5.fc20.x86_64

yasm-devel-1.2.0-5.fc20.x86_64

libvpx-devel-1.3.0-4.fc20.x86_64

lame-devel-3.99.5-2.fc19.x86_64

glib2-devel-2.38.2-2.fc20.x86_64

pulseaudio-libs-devel-4.0-13.gitf81e3.fc20.x86_64

x264-devel-0.138-2.20131030gitc628e3b.fc20.x86_64

xvidcore-devel-1.3.2-5.fc20.x86_64

xorg-x11-proto-devel-7.7-9.fc20.noarch

libXau-devel-1.0.8-2.fc20.x86_64

libxcb-devel-1.9.1-3.fc20.x86_64

libX11-devel-1.6.1-1.fc20.x86_64

libXext-devel-1.3.2-2.fc20.x86_64

libXfixes-devel-5.0.1-2.fc20.x86_64

alsa-lib-devel-1.0.27.2-2.fc20.x86_64

2 通过编译安装到 /opt/libav

$./configure  --prefix=/usr --enable-libxvid --enable-libx264 
--enable-libvpx --enable-x11grab --enable-nonfree --enable-gpl 
--enable-version3 --enable-libpulse  --enable-libmp3lame --enable-shared
 --arch=x86_64

注意:如果是debian系列的,lib库可能在/usr/lib/x86_64-linux-gnu/ 不再/usr/lib下,所以执行configure时要加上--libdir=/usr/lib/x86_64-linux-gnu/

#make
#make DESTDIR=/opt/libav install

3 通过fpm打包

#fpm -t rpm -s dir --prefix=/ -C /opt/libav -n libav -v 10.1 --iteration 1 
--after-install  postinstall -d yasm -d libvpx -d 'lame-libs >= 
3.98.3' -d pulseaudio-libs -d 'x264-libs >= 0.118' -d xvidcore -d 
libXfixes -d libXext -d alsa-lib $(ls /opt/libav)

参数解说

-t target 包格式

-s 源格式

--prefix 安装根目录

-C chroot的目录

-n 软件包的名字

-v 软件包版本

--iteration 第几次release

-d 依赖

--after-install  Files :安装后的操作 (我这里主要时重新生成lib库缓存,文件包含命令ldconfig,文件可执行)

--after-install  File :安装后的操作脚本 (我这里主要时重新生成lib库缓存,文件包含命令ldconfig,文件可执行)

--after-remove   File :删除后的操作脚本

--before-install File :安装前的操作脚本

$(): 要打包的文件列表;也可以在此列出要打包的文件或目录路径,空格分开,如usr etc,路径时相对与-C 路径的相对路径



# 关于info文件处理

postinstall scriptlet (using /bin/sh):

/sbin/install-info //usr/share/info/cvs.info.gz //usr/share/info/dir &> /dev/null
/sbin/install-info //usr/share/info/cvsclient.info.gz //usr/share/info/dir &> /dev/null
:
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
    /sbin/install-info --delete //usr/share/info/cvs.info.gz //usr/share/info/dir &> /dev/null
    /sbin/install-info --delete //usr/share/info/cvsclient.info.gz //usr/share/info/dir &> /dev/null
fi


参考 https://github.com/jordansissel/fpm

        http://www.puppetfans.com/thread-629-1-1.html


你可能感兴趣的:(用fpm工具打包通过编译安装在系统中的软件)