本文讲解rpm简单打包方法,更深层次的自己去研究。
1、准备需要打包的文件
[root@localhost ivan]# pwd /ivan [root@localhost ivan]# ll 总用量 16 -rw-r--r--. 1 root root 8630 4月 18 10:41 rpm_test.jar -rwxrwxrwx. 1 root root 55 4月 18 11:05 run.sh [root@localhost ivan]# java -jar rpm_test.jar Hello, Rpm! [root@localhost ivan]# ./run.sh Hello, Rpm! [root@localhost ivan]#
2、安装rpmbuild
yum install rpm-build rpmdevtools -y
3、生成对应的目录结构
rpmdev-setuptree
执行完后,会在/root下,生成对应的目录,如下:
[root@localhost ~]# pwd /root [root@localhost ~]# tree rpmbuild/ rpmbuild/ ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS 5 directories, 0 files
4、程序安装完后,将安装目录放在/opt/ivan路径下
在上面的SOURCES文件夹下创建安装路径,将需要打包的文件放在创建的安装路径下。
[root@localhost ~]# mkdir -p rpmbuild/SOURCES/opt/ivan [root@localhost ivan]# pwd /root/rpmbuild/SOURCES/opt/ivan [root@localhost ivan]# cp /ivan/* ./ [root@localhost ivan]# ll 总用量 16 -rw-r--r--. 1 root root 8630 4月 18 11:17 rpm_test.jar -rwxr-xr-x. 1 root root 55 4月 18 11:17 run.sh
5、当前目录结构
[root@localhost ~]# pwd /root [root@localhost ~]# tree rpmbuild/ rpmbuild/ ├── BUILD ├── RPMS ├── SOURCES │ └── opt │ └── ivan │ ├── rpm_test.jar │ └── run.sh ├── SPECS └── SRPMS 7 directories, 2 files
6、在SPECS下创建打包配置文件
[root@localhost ~]# cd rpmbuild/SPECS/ [root@localhost SPECS]# touch rpm_test.spec [root@localhost SPECS]# vi rpm_test.spec [root@localhost SPECS]# more rpm_test.spec Name:rpm_test Version:1.0.1 Release:0%{?dist} Summary:test Group:ivan License:GPL BuildArch:noarch BuildRoot:%(mktemp -ud %{name}-XXXXX) %description -l zh_CN "the test" %prep echo "do not" %install cd %{_sourcedir} cp -ar * %{buildroot}/ %files /opt/ivan/ %postun
7、打包
[root@localhost SPECS]# rpmbuild -bb rpm_test.spec
这时在RPMS文件夹下的noarch文件夹下已经生成了rpm包:
[root@localhost noarch]# pwd /root/rpmbuild/RPMS/noarch [root@localhost noarch]# ll 总用量 12 -rw-r--r--. 1 root root 9304 4月 18 11:29 rpm_test-1.0.1-0.el7.centos.noarch.rpm
8、安装测试。
[root@localhost noarch]# rpm -ivh rpm_test-1.0.1-0.el7.centos.noarch.rpm 准备中... ################################# [100%] 正在升级/安装... 1:rpm_test-1.0.1-0.el7.centos ################################# [100%] [root@localhost noarch]# cd /opt/ivan/ [root@localhost ivan]# ll 总用量 16 -rw-r--r--. 1 root root 8587 4月 18 11:29 rpm_test.jar -rwxr-xr-x. 1 root root 55 4月 18 11:17 run.sh [root@localhost ivan]# ./run.sh Hello, Rpm!
注意:在.spec文件下的BuildArch:noarch配置,此配置的目的是不区分cpu架构,此参数在大部分操作系统下是可用的,少部分不识别。
No Leanote account? Sign up now.