linux>rpm打包
2022-04-18 11:02:37    14    0    0
ivan

本文讲解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架构,此参数在大部分操作系统下是可用的,少部分不识别。

Pre: linux>deb打包

Next: 面向对象编程

14
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments
Table of content