日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手动制作rpm包

發布時間:2023/12/31 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手动制作rpm包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

制作RPM包的過程,簡單的說,就是為制作過程提供一個“工作車間”,即一個目錄,里面需要包含以下幾個子目錄:

????????? BUILD??????? ————編譯相關源碼包時的工作目錄;

????????? RPMS???????? ————生成的二進制格式的RPM包存放的位置;

????????? SOURCES ————程序的源碼文件及其其他輔助文件的存放位置;

????????? SPCES??????? ————spec文件的存放位置;

????????? SRPMS????? ————生成的SRC格式的RPM包存放位置;

如果用戶目錄主目錄下沒有類似目錄結構,可以通過一個工具軟件來自動配置和生成。

#yum install rpmdevtools –y


#rpmdev-setuptree
rpmdev-setuptree命令默認在當前用戶主目錄下創建一個RPM構建目錄結構。

?

當“工作車間”準備停當之后,將用到的源碼及輔助文件放置于相應的SOURCES目錄中,并在SPECS目錄中創建一個spec文件,就可以使用rpmbuild命令開始制作過程了。由于root用戶的權限沒有任何限制,RPM制作過程的不當命令有可能會給系統帶去破壞,所以,一定不能使用root用戶執行制作過程。切記!

RPM生成要素:

1、?? 生成rpm所用的文件列表或者源代碼;

2、?? 根據文件列表或者源代碼生成rpm包的規范,也就是spec文件;

3、?? 根據spec文件加工源碼/文件的工具rpmbuild;

操作步驟:

一般我們都把源碼打包成tar.gz格式然后存放于SOURCES路徑下,而在SPECS路徑下編寫spec文檔,通過命令打包后,默認會把打包后的rpm包放在RPMS下,而源碼包會被放置在SRPMS下。

?

先看看rpmbuild命令的用法:

1、? 從spec文檔建立有以下選項:

-bp????????????? #只執行spec的%pre段(解源代碼包并打補丁,只是準備階段)

-bc??? ????????? #執行spec的%pre和%build段(準備并編譯)

-bi?????????????? #執行spec的%pre, %build與%install(準備,編譯并安裝)

-bl?????????????? #檢查spec中的%file段(查看文件是否齊全)

-ba????????????? #建立源碼與二進制包(常用)

?

-bb????????????? #只建立二進制包

-bs????????????? #只建立源碼包

2、重點介紹spec文件:

?????????

Summary: rpm hello world.??????

Name: hello

Version: 0.1

Source: $RPM_SOURCE_DIR/hello-0.1-1.tar.gz????????? #源代碼的tar包名字,嚴格一致;

Release: 1????????????????????

Vendor: lx

License: Share

Group: Application/test

BuildRequires: gcc, make #環境要求

Requires:? libdnet.1 libpcap.so.1 libsfbpf.so.0 #依賴庫要求

?

?

%description

print hello

?

%prep?????? #編譯前的準備部分,一般為刪除之前的中間文件(BUILD目錄),解壓縮源碼文件

rm -rf $RPM_BUILD_DIR/hello-0.1-1

zcat $RPM_SOURCE_DIR/hello-0.1-1.tar.gz | tar xvf -

?

%build?? #完成make編譯部分,如果源碼中提供了Makefile文件,就是一條make命令

cd $RPM_BUILD_DIR/hello

./configure? --prefix = /usr/local/

make

?

%install???? #完成安裝部分,如果源碼中提供了Makefile文件,就是一條make install命令

cd $RPM_BUILD_DIR/hello

make install

?

%files???????? #列出軟件被安裝后,目標機器上由該文件新建的文件,包括可執行文件、配置文件、man文件等

%doc

%defattr(-,root,root)

?/usr/lib/*

?/usr/include/*

?/usr/sbin/*

?

Rpm包制作注意點:

????????? 1、%file段? 文件的添加;

????????? 2、安裝時,對依賴庫的需求;

?

轉載于:https://www.cnblogs.com/chris-cp/p/4102694.html

總結

以上是生活随笔為你收集整理的手动制作rpm包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。