rpm環境安裝dpkg包管理工具 索引:dpkg-scanpackages、dpkg、dpkg-query、dpkg-source、dpkg-scansource 在centos、redhat、麒麟伺服器版本中想對deb包進行管理,那麼就需要安裝dpkg包管理工具 主要是解決一些內網環境的特定包的需 ...
rpm環境安裝dpkg包管理工具
索引:dpkg-scanpackages、dpkg、dpkg-query、dpkg-source、dpkg-scansource
在centos、redhat、麒麟伺服器版本中想對deb包進行管理,那麼就需要安裝dpkg包管理工具
主要是解決一些內網環境的特定包的需求
本次採用是src.rpm包重新製作rpm包
使用 rpmbuild命令編譯 SRPM 包經歷了以下 3 個過程:
先把 SRPM 包解開,得到源碼包;
對源碼包進行編譯,生成二進位文件;
把二進位文件重新打包生成 RPM 包。
本次實驗環境是arm架構+kylin服務版本操作系統,環境如下:
本次製作rpm包過程中主要是使用yum-builddep、rpmbuild等工具,一般預設安裝,未安裝則需要提前下載
一、下載dpkg包
deb包dpkg管理工具主要是由dpkg和dpkg-perl兩個包,因此此次只要重建這兩個包
由於arm架構,因此需要下載noarch或者aarch64架構的src包
順便給大家安利軟體包下載平,上麵包含了很多linux不同發行版本和不同架構的包,大家自行索取。
https://pkgs.org/
正式開始下載:
wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/SRPMS/Packages/d/dpkg-1.20.9-4.el8.src.rpm
二、安裝dpkg包
## 1.安裝解壓src.rpm包
rpm -i dpkg-1.20.9-4.el8.src.rpm
安裝完成會在/root/目錄生成rpmbuild目錄
rpmbuild目錄主要有兩個目錄:
SOURCES
#從 SRPM 包中解壓出來的源碼包(*.tar.gz)保存位置。
SPECS
#參數配置表,檢查依賴包的時缺少的包可以通過裡面修改。
進入SPECS內,有一個包名+spec文件
spec文件是配置規範文件,是RPM軟體包編譯過程的核心,它說明瞭軟體包如何被配置、打那些補丁、安裝哪些文件、安裝到哪裡、安裝過程需要哪些系統級別活動。
## 2.檢查包的依賴環境
cd ./rpmbuild/SPECS
yum-builddep dpkg.spec
通過yum-builddep進行依賴檢查,檢查系統未滿足的依賴性則需要進行安裝,通過yum和rpm直接安裝並直到滿足所有的依賴關係。
從上圖可知需要po4a軟體版本未符合,則需要安裝高版本的po4a,並且版本大於0.59,本次直接下載0.63版本
wget https://repo.almalinux.org/almalinux/8/PowerTools/aarch64/os/Packages/po4a-0.63-1.el8.noarch.rpm
rpm -ivh po4a-0.63-1.el8.noarch.rpm --force --nodeps
#由於還需要的其他版本,因此可以採用加"--force --nodeps"進行強制安裝
rpm -qa |grep po4a
#查詢是否安裝成功
重新進行依賴性檢查
yum-builddep dpkg.spec
可以看到本次系統自動進行依賴包檢查和安裝,則根據預設進行安裝,本次安裝了之前檢查不符合的軟體包
安裝完成後,可以再次進行依賴性檢查
## 3.重新打包成rpm包
rpmbuild -ba dpkg.spec
安裝完成後查看重新編譯好的rpm包
cd /root/rpmbuild/RPMS
#本次src.rpm重新打包後生成了aarch64、noarch兩個目錄,根據不同的包則有不同。
cd aarch64/ && ls -la
##裡面有4個aarch64架構的的包,而且包名也是根據系統進行重新命令
cd aarch64/ && ls -la
##裡面有2個noarch架構的包
**## 4.安裝重新打包後的包
rpm -ivh **.rpm