如何根据我们的需求制作RPM安装包呢?手顺整理如下:
1、 自定义工作目录(或车间,即%_topdir)
vi ~/.rpmmacros
%_topdir /tmp/rpmbuild ##目录可以自定义
mkdir /tmp/rpmbuild
2、 在topdir下建立需要的目录
cd /tmp/rpmbuild
mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
3、 把收集的源码放到SOURCES下
cp /usr/local/ffmpeg-2.8.6.tar.gz /tmp/rpmbuild/SOURCES/
4、 在SPECS下建立重要的spec文件
cd SPECS
vi ffmpeg.spec ##内容见sepc文件编写样例
5、 用rpmbuild命令制作rpm包,rpmbuild命令会根据spec文件来生成rpm包
1. rpmbuild
2. -ba 既生成src.rpm又生成二进制rpm
3. -bs 只生成src的rpm
4. -bb 只生二进制的rpm
5. -bp 执行到pre
6. -bc 执行到 build段
7. -bi 执行install段
8. -bl 检测有文件没包含
下面是一个完整的spec文件样例:
Name: ffmpeg
Version: 2.8.6
Release: 1%{?dist}
Summary: ffmpeg is a famous open sources bit images dev tools.
License: GPLv2
URL: http://www.ffmpeg.org
Packager: Kotei <dev@kotei-info.com>
Vendor: Kotei-info.com
Source0: %{name}-%{version}.tar.gz
#patch0: a.patch
#BuildRoot: %_topdir/BUILDROOT
BuildRoot: /tmp/rpmbuild/BUILDROOT
BuildRequires: gcc,make
#Requires: pcre,pcre-devel,openssl,chkconfig
%description
It is a ffmpeg tools...
%prep
%setup -q
#%patch0 -p1
%build
./configure --enable-shared --prefix=/usr/local/ffmpeg --disable-yasm
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
### 4.1 scripts section
%pre
#if [ $1 == 1 ];then #$1==1
# /usr/sbin/useradd -r nginx 2> /dev/null
#fi
%post
%preun
#if [ $1 == 0 ];then
# /usr/sbin/userdel -r nginx 2> /dev/null
#fi
%postun
###
%clean
rm -rf %{buildroot}
%files
%defattr (-,root,root,0755)
/usr/local/ffmpeg/
%changelog
* Fri Dec 29 2012 2.8.6-1
- initial verison...
具体的spec文件编写详解可以参照:
http://laoguang.blog.51cto.com/6013350/1103628
https://www.ibm.com/developerworks/cn/linux/l-rpm/
分享到:
相关推荐
centos升级最新openssh rpm安装包
NFS 离线下载rpm安装包,亲测好用
telnet安装包的全部组件: telnet-0.17-47.el6.x86_64 telnet-server-0.17-47.el6.x86_64 xinetd-2.3.14-39.el6_4.x86_64
linux7操作系统 openssh9.0p1 rpm安装包 rpm -e openssh-clients-7.4p1-16.el7.x86_64 rpm -e openssh-server-7.4p1-16.el7.x86_64 rpm -e openssh-7.4p1-16.el7.x86_64 rpm -ivh openssh-9.0p1-1.el7.x86_64.rpm ...
redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...
centos7 ssh8.6和ssl1.1.1k rpm安装包
linux zip unzip RPM安装包,亲测可用 用于解压war包,zip包 内含unzip-6.0-5.el6.x86_64.rpm zip-3.0-1.el6_7.1.x86_64.rpm
麒麟V10SP1插件升级RPM安装包集合 openssl、openssh、systemd等
RabbitMQ-RPM安装包
linux下elasticsearch8.2.2 rpm安装包linux下elasticsearch8.2.2 rpm安装包linux下elasticsearch8.2.2 rpm安装包linux下elasticsearch8.2.2 rpm安装包linux下elasticsearch8.2.2 rpm安装包linux下elasticsearch8.2.2...
提供zip解压缩工具安装包,在客户内网环境下,通常无法联网,无法使用yum安装zip,此时可以使用rpm安装包进行安装 1.将此资源包放到服务器 2.解压之后进入文件夹 3.rpm -Uvh *.rpm --nodeps --force 命令进行安装
资源是路由跟踪工具traceroute的rpm安装包,对于red hat不支持yum的系统非常便捷
glibc 2.14 rpm 安装包及安装命令
netCat rpm安装包,网络监控工具、
制作nodejs的linux安装包(rpm、run、bin)
sqlplus11.2 rpm安装包
openjdk 1.8.0 离线 rpm 安装包以及其他相关前置依赖 rpm 安装包 java-1.8.0-openjdk-1.8.0.272.b10-1.el8_2.x86_64.rpm
Git离线rpm安装包 到解压的目录下执行 yum remove git 卸载原有git 解压缩 tar zxvf git-package.tgz 离线安装 yum install *.rpm
linux zip unzip RPM安装包,亲测可用
CentOs,Ubuntu环境mkfontscale,mkfontdir命令rpm安装包