今天為了測試搭建自己的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
更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14