簡單 RPM 包製作
阿新 • • 發佈:2018-12-29
今天為了測試搭建自己的yum倉庫並安裝升級軟體包,因此需要一個rpm包來做測試,所以就想到了自己來做一個最簡單rpm,因為僅僅就是做一個測試所以沒有新增需要編譯的檔案,而是隻使用了一個shell檔案來輸出可愛的Hello World。
1. 首先需要下載安裝rpm包製作工具
$ sudo yum install -y rpm-build rpmdevtools
2. 執行 rpmdev-setuptree 來生成一個 rpm 包的骨架目錄
$ rpmdev-setuptree
rpmdev-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