文章目錄
- Linux下rpm打包
- 案例:
- 問題:
- 方案:
- 步驟:
- 步驟一:安裝rpm-build軟體
- 步驟二:使用組態檔創建rpm包
- 步驟三:測驗安裝
Linux下rpm打包
rpm打包:把原始碼轉換為rpm
為什么使用rpm打包
rpm不能定制(不能選擇安裝路徑,或者一些模塊化不能出現選擇)
案例:
制作nginx的rpm包
問題:
使用nginx-1.20.1版本的原始碼軟體,生成對應的rpm包軟體,具體要求如下
- 軟體名稱為nginx
- 軟體版本為1.20.1
- rpm軟體包可以查詢描述資訊
- rpm軟體包可以安裝及卸載
方案:
安裝rpm-build軟體包,撰寫SPEC組態檔,創建新的rpm軟體包,組態檔中的描述資訊如下表所示
| 選項 | 值 |
|---|---|
| Name | Nginx |
| Version | 1.20.1 |
| Release | 1 |
| Summary | Nginx is a web server software |
| License | GPL |
| URL | www.nginx.org |
| Source0 | nginx-1.20.1.tar.gz |
| BuildRequires | gcc pcre-devel zlib-devel openssl-devel |
| %description | nginx {engine x}is an HTTP and reverse proxy server… |
步驟:
步驟一:安裝rpm-build軟體
1)安裝rpm-build軟體
yum -y install rpm-build
2)生成rpmbuild目錄結構
rpmbuild -ba nginx.spec #會報錯,為了生成下面的目錄
ls /root/rpmbuild #上述命令自動生成的目錄
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
sources #把目標的原始碼放到這個檔案中
rpms #rpm-build這個軟體會把原始碼檔案轉成rpm格式存放到rpms這個檔案中
specs #rpm要求,配置要求在specs中
3)準備作業,將原始碼軟體復制到sources目錄
cp nginx-1.20.1.tar.gz /root/rpmbuild/SOURCES/
#這個軟體包需要我們自己來提供,nginx軟體包可以去官網下載
4)創建并修改spec組態檔
vim /root/rpmbuild/SPECS/nginx.spec #擴展名必須為spec
#填寫軟體的基本資訊
Name:nginx #原始碼包軟體名稱
Version:1.20.1 #原始碼包軟體的版本號
Release: 1%{?dist} #制作的rpm包版本號
Summary:this is web server #rpm軟體的情況
#Group: #組包 一般都注釋
License:GPL #軟體的協議
URL:www.nginx.com #網址
Source0: #原始碼包檔案的全稱
#BuildRequires: 因為nginx不需要依賴包,所以注釋掉 #制作rpm時的依賴關系
#Requires: #安裝rpm時的依賴關系
%description
this is web server #軟體的描述
#原始碼的安裝程序(原始碼轉化為rpm的程序)
%post #安裝后腳本
useradd nginx -s /sbin/nolongin #非必須操作
%prep #準備作業
%setup -q #自動解開tar包,并cd進入目錄
%build #編譯安裝
./configure --user=nginx
make %{?_smp_mflags}
%install
%make_install
%files
%doc #需要打包的檔案
/usr/local/nginx/*
%changelog
接上述的組包
把很多軟體放到一個組,安裝的時候可以直接安裝這個組包,就能安裝這個組包的所有軟體
查看組包 yum grouplist
安裝組包 yum groupinstall 組包名
步驟二:使用組態檔創建rpm包
1)安裝依賴軟體包
yum -y installgcc pcre-devel openssl-devel
2)rpmbuild創建rpm軟體包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ls /root/rpmbuild/RPMS/x86_64/
nginx-1.20.1-1.el8.x86_64.rpm nginx-debugsource-1.20.1-1.el8.x86_64.rpm
nginx-debuginfo-1.20.1-1.el8.x86_64.rpm
第一個為我們做好的rpm包 ,第三個為我們的原始碼包
步驟三:測驗安裝
/usr/local/nginx/sbin/nginx -s stop
rm -rf /usr/local/nginx/* #卸載我們服務器中的nginx,如果沒有安裝這一步,請忽略
rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.20.1-1.el8.x86_64.rpm
/usr/local/nginx/sbin/nginx #開啟服務
id nginx #剛剛我們在組態檔中寫了,安裝完之后會創建用戶
curl http://127.0.0.1/
yum info nginx
可以查看軟體的資訊,與我們剛才寫的一致

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301476.html
標籤:其他
上一篇:《我是面試官》設計模式-單例模式
