rpm包例項講解
阿新 • • 發佈:2020-08-10
RPM 是Red-Hat Package Manager(RPM軟體包管理器)的縮寫,這一檔案格式名稱雖然打上了RedHat的標誌,
但是其原始設計理念是開放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分發版本都有采用,可以算是公認的行業標準了。
yum是基於rpm的包管理工具,yum最終安裝的是rpm包,那rpm包是如何來的呢?
rpm包
1. 安裝RPM包
yum -y install rpm-build rpm-devel rpmdevtools
2. 例項講解
# 1. 生成開發目錄 rpmdev-setuptree # 2. 新建helloworld-1.0.0 專案檔案 mkdir helloworld-1.0.0 # 3. 新建原始碼檔案helloworld,輸入以下內容 #!/bin/sh echo "Hello World!" # 4. 打包專案helloworld-1.0.0.tar.gz,並拷貝到資源目錄SOURCES tar -czvf helloworld-1.0.0.tar.gz helloworld-1.0.0 cp helloworld-1.0.0.tar.gz ~/rpmbuild/SOURCES/ # 5. 生成spec模板檔案 cd ~/rpmbuild/SPECS rpmdev-newspec helloworld.spec # 生成spec模版檔案 # 6. 修改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 %install mkdir -p $RPM_BUILD_ROOT/usr/bin cp $RPM_BUILD_DIR/%{name}-%{version}/helloworld $RPM_BUILD_ROOT/usr/bin/ %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc /usr/bin/helloworld %changelog # 7. 打包 rpmbuild -ba SPECS/helloworld.spec 注:當前目錄結構檔案簡介 > BUILD是編譯rpm包的臨時目錄 > BUILDROOT是最後生成rpm包的臨時安裝目錄 > RPMS存放最終生成的rpm二進位制包 > SOURCES是原始碼(.tar.gz)存放目錄 > SPECS用來存放spec檔案 > SRPMS存放最終生成的rpm原始碼包 rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el7.x86_64.rpm就是我們打出來的rpm包 # 8. 安裝 yum install ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el7.x86_64.rpm 或者 rpm -ivh helloworld-1.0.0-1.el7.x86_64.rpm # 9. 測試 $ /usr/bin/helloworld Hello World!
參考:
製作rpm包: https://wangbin.io/blog/it/yum-rpm-make.html
linux rpm安裝mysql: https://www.jianshu.com/p/3e46b0c88200
rpm 和yum學習: https://www.cnblogs.com/gmlkl/p/9354254.html