首頁 > 軟體

簡單 RPM 包製作

2020-06-16 18:08:33

今天為了測試搭建自己的yum倉庫並安裝升級軟體包,因此需要一個rpm包來做測試,所以就想到了自己來做一個最簡單rpm,因為僅僅就是做一個測試所以沒有新增需要編譯的檔案,而是只使用了一個shell檔案來輸出可愛的Hello World。

1. 首先需要下載安裝rpm包製作工具

$ sudo yum install -y rpm-build rpmdevtools
2. 執行 rpmdev-setuptree 來生成一個 rpm 包的骨架目錄

$ rpmdev-setuptreer

pmdev-setuptree命令預設將再當前使用者的根目錄下建立一個RPM構建根目錄結構 ~/rpmbuild/ 

3. 生成原始碼包

mkdir -p ~/rpmbuild/SOURCES/helloworld-1.0.0
touch ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld
chmod 755 ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld
echo "#!/bin/sh" >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld
echo "echo Hello World!" >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld
cd ~/rpmbuild/SOURCES; tar zcvf helloworld-1.0.0.tar.gz helloworld-1.0.0


4. 在 ~/rpmbuild/SPECS 目錄下用 rpmdev-newspec 來生成一個 spec 骨架檔案

$ rpmdev-newspec  helloworld.spec

編輯 helloworld.spec 檔案,內容如下

Name:          helloworld
Version:        1.0.0
Release:        1%{?dist}
Summary:        helloworld


Group:          Development/Tools
License:        GPL
#URL:           
Source0:        %{name}-%{version}.tar.gz


#BuildRequires: 
#Requires:     


%description

 


%prep
%setup -q


%build
mkdir -p $RPM_BUILD_ROOT/usr/bin
cp $RPM_BUILD_DIR/%{name}-%{version}/helloworld $RPM_BUILD_ROOT/usr/bin/


%install

 


%clean
rm -rf $RPM_BUILD_ROOT

 


%files
%defattr(-,root,root,-)
%doc
/usr/bin/helloworld


%changelog

5. 打包

rpmbuild -ba SPECS/helloworld.spec

6. 測試
6.1 安裝測試

sudo yum install ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el6.x86_64.rpm

6.2 升級測試
修改 helloworld.spec 檔案,將其中 Release 修改為

Release:        2%{?dist}

然後執行 "rpmbuild -ba SPECS/helloworld.spec" 打包

最後執行使用下面的命令來升級 rpm 包

sudo yum update ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-2.el6.x86_64.rpm

製作自己的rpm包 http://www.linuxidc.com/Linux/2013-06/86435.htm

Linux 下rpm安裝後的目錄結構和一些設定 http://www.linuxidc.com/Linux/2013-06/85761.htm

rpm與yum的綜合性介紹與範例演示 http://www.linuxidc.com/Linux/2013-05/84480.htm

RedHat Linux---rpm 命令詳解 http://www.linuxidc.com/Linux/2013-03/81971.htm

使用FPM輕鬆製作RPM包 http://www.linuxidc.com/linux/2014-06/103019.htm


IT145.com E-mail:sddin#qq.com