目錄
簡略
前言
一、rpm和src.rpm檔案類型差別及聯系
二、rpm檔案名稱那麼長,分别是什麼意思?
三、如何本地編譯并安裝rpm包?
四、如何檢視rpm包的源碼包名稱?
簡略
xxxxxxxxx.rpm <==RPM 的格式,已經經過編譯且包裝完成的 rpm 檔案;
xxxxx.src.rpm <==SRPM的格式,包含未編譯的原始碼資訊。
noarch的包說明,你可以在任何平台上安裝這個軟體包,就是說它并不依賴于哪個特定的linux釋出版。
平台名稱 适合平台說明
i386 幾乎适用于所有的 x86 平台
i686 在 pentun II 以後的 Intel 系列 CPU ,及 K7 以後等級的 CPU 都屬于這個 686 等級!
noarch 就是沒有任何硬體等級上的限制。一般來說,這種類型的 RPM 檔案,裡面應該沒有 binary file 存在。
下文轉自:http://events.jianshu.io/p/00de73b138f6
前言
rpm的概念——Redhat Package Manager,翻譯過來就是,紅帽包管理器。
這裡關鍵字有“紅帽”、“包”和“管理器”。“紅帽”是linux作業系統服務商,“包”是一指包含完整特定功能的代碼集合,“管理器”是用于管理“包”的工具。
1.安裝軟體:執行rpm -ivh rpm包名
更新軟體:執行rpm -Uvh rpm包名。
3.反安裝:執行rpm -e rpm包名稱。
4.查詢軟體包的詳細資訊:執行rpm -qpi rpm包名稱
5查詢檔案屬于哪個rpm包:執行rpm -qf rpm包名稱
6檢查軟體包将寫入系統的檔案:執行rpm -qpl rpm軟體包名稱
一、rpm和src.rpm檔案類型差別及聯系
我們以git包為例。
git-2.9.5-3.fc25.src.rpm
這是包含git源碼的rpm包,換句話說,就是還沒有編譯成二進制的原始代碼。它隻是以rpm包的方式存在。我們使用file指令來看一下這個包的類型。
[root@arm-team-0009 2]# file git-2.9.5-3.fc25.src.rpm
git-2.9.5-3.fc25.src.rpm: RPM v3.0 src
git-2.9.5-3.fc25.i686.rpm
這是已經經過編譯、包裝完成的 rpm 檔案。就是可以直接安裝到你的系統中運作的目标檔案。我們使用file指令來看一下這個包的類型。
[root@arm-team-0009 2]# file git-2.9.5-3.fc25.i686.rpm
git-2.9.5-3.fc25.i686.rpm: RPM v3.0 bin i386/x86_64 git-2.9.5-3.fc25
說完差別,我們再來說說聯系。
src.rpm包可以經過編譯,生成rpm包。并且它們是一對一或者一對多的關系。換句話說,就是一個src.rpm包可以編譯出一個rpm包,或者一個src.rpm包可以編譯出多個rpm包。
比如git-2.9.5-3.fc25.src.rpm ,就編譯出來下面6個包:
git-2.9.5-3.fc25.i686.rpm
git-core-2.9.5-3.fc25.i686.rpm
git-core-doc-2.9.5-3.fc25.i686.rpm
git-daemon-2.9.5-3.fc25.i686.rpm
git-debuginfo-2.9.5-3.fc25.i686.rpm
git-svn-2.9.5-3.fc25.i686.rpm
二、rpm檔案名稱那麼長,分别是什麼意思?
下面我們來拆解一個rpm包全名:
git-2.9.5-3.fc25.i686.rpm
git——名稱
2.9.5——版本号
3——release号
i686——架構類型,常見的有aarch64,x86_64,noarch等
rpm——檔案類型
三、如何本地編譯并安裝rpm包?
步驟一:安裝源碼包
rpm -ivh git-2.9.5-3.fc25.src.rpm
步驟二:編譯
rpmbuild -ba /root/rpmbuild/SPECS/git.spec
步驟三:安裝編譯好的rpm包
rpm -ivh /root/rpmbuild/RPMS/i686/git-2.9.5-3.fc25.i686.rpm
注意:根據你環境的架構的不同,編譯出來的二進制rpm包存在路徑略有差異。比如上面的i686架構,如果是aarch64架構,那麼編譯好的包就在
/root/rpmbuild/RPMS/aarch64/git-2.9.5-3.fc25.aarch64.rpm
當然,一些跟架構無關的二進制包,都存在于/root/rpmbuild/RPMS/noarch/路徑。
四、如何檢視rpm包的源碼包名稱?
并不是所有的rpm包名稱都和src.rpm名稱對應,真實的情況是,rpm的名字是A,src.rpm包的名字可能是B。如果系統上已經安裝了A rpm包,你想找到A的源碼包,自行修改重新編譯,該如何是好呢?
下面一條指令可以幫助你:
[root@arm-team-0009 2]# rpm -qip git-2.9.5-3.fc25.i686.rpm
Name : git
Version : 2.9.5
Release : 3.fc25
Architecture: i686
Install Date: (not installed)
Group : Development/Tools
Size : 2485070
License : GPLv2
Signature : (none)
Source RPM : git-2.9.5-3.fc25.src.rpm
Build Date : Thu 16 Nov 2017 03:55:56 PM CST
Build Host : buildvm-24.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : https://git-scm.com/
Summary : Fast Version Control System
Description :
Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.
The git rpm installs common set of tools which are usually using with
small amount of dependencies. To install all git packages, including