包含 Shell 腳本與 README,若能打包兩個檔案,同理可打包大型軟體。
test-1.0):
mkdir ~/test-1.0; cd ~/test-1.0 echo 'echo this is a test' > test.sh; chmod +x test.sh echo 'just launch the script' > README
~/rpmbuild/SOURCES:
mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS tar -czf ~/rpmbuild/SOURCES/test-1.0.tar.gz test-1.0
~/rpmbuild/SPECS/test.spec:
Name: test
Version: 1.0
Release: 1%{?dist}
Summary: A test package
Group: Test Packages
License: GPL
URL: https://test.example.com
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX
BuildRequires: /bin/rm, /bin/mkdir, /bin/cp
Requires: /bin/bash, /bin/date
%description
單一檔案套件部署示範
%prep
%setup -q
%build
# ./configure
# make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
cp test.sh $RPM_BUILD_ROOT/usr/local/bin/myscript
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%attr(0755,root,root) /usr/local/bin/myscript
%changelog
* Today
- Initial RPM creation
關鍵點:
Source0 必須與 tarball 檔名完全一致。%build 區段若無編譯需求,註解掉 %configure/%make。%install 實際複製檔案至 $RPM_BUILD_ROOT 模擬根目錄。%files 列出安裝檔案,%attr 設定權限/擁有者。yum install rpm-build # 需 root rpmbuild -ba ~/rpmbuild/SPECS/test.spec
產出 RPM 檔於 ~/rpmbuild/RPMS/。