精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RPM包是如何從源RPM制作的

系統 Linux
在上一篇文章中,我們研究了什么是 RPM 軟件包。它們是包含文件和元數據的檔案文件。當安裝或卸載 RPM 時,此元數據告訴 RPM 在哪里創建或刪除文件。正如你將在上一篇文章中記住的,元數據還包含有關“依賴項”的信息,它可以是“運行時”或“構建時”的依賴信息。

[[281344]]

上一篇文章中,我們研究了什么是 RPM 軟件包。它們是包含文件和元數據的檔案文件。當安裝或卸載 RPM 時,此元數據告訴 RPM 在哪里創建或刪除文件。正如你將在上一篇文章中記住的,元數據還包含有關“依賴項”的信息,它可以是“運行時”或“構建時”的依賴信息。

例如,讓我們來看看 fpaste。你可以使用 dnf 下載該 RPM。這將下載 Fedora 存儲庫中可用的 fpaste 最新版本。在 Fedora 30 上,當前版本為 0.3.9.2:

  1. $ dnf download fpaste
  2.  
  3. ...
  4. fpaste-0.3.9.2-2.fc30.noarch.rpm

由于這是個構建 RPM,因此它僅包含使用 fpaste 所需的文件:

  1. $ rpm -qpl ./fpaste-0.3.9.2-2.fc30.noarch.rpm
  2. /usr/bin/fpaste
  3. /usr/share/doc/fpaste
  4. /usr/share/doc/fpaste/README.rst
  5. /usr/share/doc/fpaste/TODO
  6. /usr/share/licenses/fpaste
  7. /usr/share/licenses/fpaste/COPYING
  8. /usr/share/man/man1/fpaste.1.gz

源 RPM

在此鏈條中的下一個環節是源 RPM。Fedora 中的所有軟件都必須從其源代碼構建。我們不包括預構建的二進制文件。因此,要制作一個 RPM 文件,RPM(工具)需要:

  • 給出必須要安裝的文件,
  • 例如,如果要編譯出這些文件,則告訴它們如何生成這些文件,
  • 告知必須在何處安裝這些文件,
  • 該特定軟件需要其他哪些依賴才能正常工作。

源 RPM 擁有所有這些信息。源 RPM 與構建 RPM 相似,但顧名思義,它們不包含已構建的二進制文件,而是包含某個軟件的源文件。讓我們下載 fpaste 的源 RPM:

  1. $ dnf download fpaste --source
  2.  
  3. ...
  4. fpaste-0.3.9.2-2.fc30.src.rpm

注意文件的結尾是 src.rpm。所有的 RPM 都是從源 RPM 構建的。你也可以使用 dnf 輕松檢查“二進制” RPM 的源 RPM:

  1. $ dnf repoquery --qf "%{SOURCERPM}" fpaste
  2. fpaste-0.3.9.2-2.fc30.src.rpm

另外,由于這是源 RPM,因此它不包含構建的文件。相反,它包含有關如何從中構建 RPM 的源代碼和指令:

  1. $ rpm -qpl ./fpaste-0.3.9.2-2.fc30.src.rpm
  2. fpaste-0.3.9.2.tar.gz
  3. fpaste.spec

這里,第一個文件只是 fpaste 的源代碼。第二個是 spec 文件。spec 文件是個配方,可告訴 RPM(工具)如何使用源 RPM 中包含的源代碼創建 RPM(檔案文件)— 它包含 RPM(工具)構建 RPM(檔案文件)所需的所有信息。在 spec 文件中。當我們軟件包維護人員添加軟件到 Fedora 中時,我們大部分時間都花在編寫和完善 spec 文件上。當軟件包需要更新時,我們會回過頭來調整 spec 文件。你可以在 https://src.fedoraproject.org/browse/projects/ 的源代碼存儲庫中查看 Fedora 中所有軟件包的 spec 文件。

請注意,一個源 RPM 可能包含構建多個 RPM 的說明。fpaste 是一款非常簡單的軟件,一個源 RPM 生成一個“二進制” RPM。而 Python 則更復雜。雖然只有一個源 RPM,但它會生成多個二進制 RPM:

  1. $ sudo dnf repoquery --qf "%{SOURCERPM}" python3
  2. python3-3.7.3-1.fc30.src.rpm
  3. python3-3.7.4-1.fc30.src.rpm
  4.  
  5. $ sudo dnf repoquery --qf "%{SOURCERPM}" python3-devel
  6. python3-3.7.3-1.fc30.src.rpm
  7. python3-3.7.4-1.fc30.src.rpm
  8.  
  9. $ sudo dnf repoquery --qf "%{SOURCERPM}" python3-libs
  10. python3-3.7.3-1.fc30.src.rpm
  11. python3-3.7.4-1.fc30.src.rpm
  12.  
  13. $ sudo dnf repoquery --qf "%{SOURCERPM}" python3-idle
  14. python3-3.7.3-1.fc30.src.rpm
  15. python3-3.7.4-1.fc30.src.rpm
  16.  
  17. $ sudo dnf repoquery --qf "%{SOURCERPM}" python3-tkinter
  18. python3-3.7.3-1.fc30.src.rpm
  19. python3-3.7.4-1.fc30.src.rpm

用 RPM 行話來講,“python3” 是“主包”,因此該 spec 文件將稱為 python3.spec。所有其他軟件包均為“子軟件包”。你可以下載 python3 的源 RPM,并查看其中的內容。(提示:補丁也是源代碼的一部分):

  1. $ dnf download --source python3
  2. python3-3.7.4-1.fc30.src.rpm
  3.  
  4. $ rpm -qpl ./python3-3.7.4-1.fc30.src.rpm
  5. 00001-rpath.patch
  6. 00102-lib64.patch
  7. 00111-no-static-lib.patch
  8. 00155-avoid-ctypes-thunks.patch
  9. 00170-gc-assertions.patch
  10. 00178-dont-duplicate-flags-in-sysconfig.patch
  11. 00189-use-rpm-wheels.patch
  12. 00205-make-libpl-respect-lib64.patch
  13. 00251-change-user-install-location.patch
  14. 00274-fix-arch-names.patch
  15. 00316-mark-bdist_wininst-unsupported.patch
  16. Python-3.7.4.tar.xz
  17. check-pyc-timestamps.py
  18. idle3.appdata.xml
  19. idle3.desktop
  20. python3.spec

從源 RPM 構建 RPM

現在我們有了源 RPM,并且其中有什么內容,我們可以從中重建 RPM。但是,在執行此操作之前,我們應該設置系統以構建 RPM。首先,我們安裝必需的工具:

  1. $ sudo dnf install fedora-packager

這將安裝 rpmbuild 工具。rpmbuild 需要一個默認布局,以便它知道源 RPM 中每個必需組件的位置。讓我們看看它們是什么:

  1. # spec 文件將出現在哪里?
  2. $ rpm -E %{_specdir}
  3. /home/asinha/rpmbuild/SPECS
  4.  
  5. # 源代碼將出現在哪里?
  6. $ rpm -E %{_sourcedir}
  7. /home/asinha/rpmbuild/SOURCES
  8.  
  9. # 臨時構建目錄是哪里?
  10. $ rpm -E %{_builddir}
  11. /home/asinha/rpmbuild/BUILD
  12.  
  13. # 構建根目錄是哪里?
  14. $ rpm -E %{_buildrootdir}
  15. /home/asinha/rpmbuild/BUILDROOT
  16.  
  17. # RPM 將放在哪里?
  18. $ rpm -E %{_srcrpmdir}
  19. /home/asinha/rpmbuild/SRPMS
  20.  
  21. # 構建的 RPM 將放在哪里?
  22. $ rpm -E %{_rpmdir}
  23. /home/asinha/rpmbuild/RPMS

我已經在系統上設置了所有這些目錄:

  1. $ cd
  2. $ tree -L 1 rpmbuild/
  3. rpmbuild/
  4. ├── BUILD
  5. ├── BUILDROOT
  6. ├── RPMS
  7. ├── SOURCES
  8. ├── SPECS
  9. └── SRPMS
  10.  
  11. 6 directories, 0 files

RPM 還提供了一個為你全部設置好的工具:

  1. $ rpmdev-setuptree

然后,確保已安裝 fpaste 的所有構建依賴項:

  1. sudo dnf builddep fpaste-0.3.9.2-3.fc30.src.rpm

對于 fpaste,你只需要 Python,并且它肯定已經安裝在你的系統上(dnf 也使用 Python)。還可以給 builddep 命令一個 spec 文件,而不是源 RPM。在手冊頁中了解更多信息:

  1. $ man dnf.plugin.builddep

現在我們有了所需的一切,從源 RPM 構建一個 RPM 就像這樣簡單:

  1. $ rpmbuild --rebuild fpaste-0.3.9.2-3.fc30.src.rpm
  2. ..
  3. ..
  4.  
  5. $ tree ~/rpmbuild/RPMS/noarch/
  6. /home/asinha/rpmbuild/RPMS/noarch/
  7. └── fpaste-0.3.9.2-3.fc30.noarch.rpm
  8.  
  9. 0 directories, 1 file

rpmbuild 將安裝源 RPM 并從中構建你的 RPM。現在,你可以使用 dnf 安裝 RPM 以使用它。當然,如前所述,如果你想在 RPM 中進行任何更改,則必須修改 spec 文件,我們將在下一篇文章中介紹 spec 文件。

總結

總結一下這篇文章有兩點:

  • 我們通常安裝使用的 RPM 是包含軟件的構建版本的 “二進制” RPM
  • 構建 RPM 來自于源 RPM,源 RPM 包括用于生成二進制 RPM 所需的源代碼和規范文件。

如果你想開始構建 RPM,并幫助 Fedora 社區維護我們提供的大量軟件,則可以從這里開始: https://fedoraproject.org/wiki/Join_the_package_collection_maintainers

如有任何疑問,請發郵件到 Fedora 開發人員郵件列表,我們隨時樂意為你提供幫助! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-01-11 10:23:14

linuxrpm包

2010-06-22 15:51:38

Autoconf rp

2011-05-04 09:11:30

RPM包Linux

2019-11-05 10:18:04

RPM包RPMLinux

2018-07-19 09:20:47

LinuxArchLinuxRPM包

2019-11-05 15:10:36

RPMspec文件Linux

2017-11-21 09:30:06

CentOSRedHatrpm包

2010-02-22 18:35:01

2010-06-02 13:05:14

Sendmail 安裝

2019-06-21 08:55:45

FedoraRPMLinux

2010-02-04 14:06:01

Linux rpm包

2015-03-23 13:15:55

yumRPM

2017-04-08 19:45:27

Linux命令安裝

2011-01-10 11:29:01

linuxRPM

2010-01-06 13:00:36

RPM包安裝

2015-07-21 11:43:14

CentosRPM

2010-04-21 13:30:24

Linux rpm命令

2010-01-13 10:02:21

LinuxRPM軟件包

2010-01-14 13:17:42

CentOS安裝

2010-02-23 17:47:27

Fedora RPM
點贊
收藏

51CTO技術棧公眾號

蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 免费91在线观看| 中文在线а√在线8| 久久久久国产一区二区三区四区| 国产精品日韩欧美大师| 538任你躁在线精品视频网站| 北条麻妃在线一区二区免费播放 | 婷婷五月色综合| 欧美成人一区二区视频| 欧美私人啪啪vps| 在线精品播放av| 日批视频免费看| 成人黄色毛片| 动漫精品一区二区| 在线不卡日本| 青青操视频在线| 国产精品一区在线| 国产精品igao视频| 福利一区二区三区四区| 国产精品成久久久久| 日韩精品福利在线| 91av免费观看| 四虎成人精品一区二区免费网站| 欧美日韩美女在线观看| 日韩不卡视频一区二区| 北岛玲一区二区三区| 99久久免费国产| 91精品美女在线| 不卡av电影在线| 亚洲精品综合| 欧美精品videos| 婷婷国产成人精品视频| 九色成人国产蝌蚪91| 精品99一区二区| 国产一区二区在线观看免费视频| 婷婷激情一区| 欧美性xxxx极品hd欧美风情| 国产精品www在线观看| 欧美成人二区| 国产精品久久二区二区| 日韩欧美一区二区三区四区五区| 天堂中文资源在线| 99久久久久久99| 精品乱子伦一区二区三区| 性色av蜜臀av| 国产高清精品久久久久| 91欧美视频网站| 国产剧情久久久| 精品一区二区综合| 91免费看国产| 99热这里只有精| 国产精品一区二区久久精品爱涩| 国产一区视频在线播放| 一本色道久久综合无码人妻| 青青草97国产精品免费观看| 国产精品福利网站| 姑娘第5集在线观看免费好剧| 久久一区视频| 国产精品激情av电影在线观看| 国产精品人人人人| 蜜桃av一区| 国产精品精品视频| 亚洲视频在线免费播放| 久久99精品国产麻豆婷婷洗澡| 国产欧美 在线欧美| 一本一道人人妻人人妻αv| 久久成人精品无人区| 91亚洲午夜在线| 亚洲精品久久久久久久久久| aaa欧美色吧激情视频| 久久久99爱| 国产日产精品久久久久久婷婷| 日本一区二区三区国色天香| 伊人久久大香线蕉综合75| 中文在线字幕免费观看| 亚洲高清免费视频| 日韩精品一区二区三区久久| 超薄肉色丝袜脚交一区二区| 欧美日韩精品欧美日韩精品| 国产探花在线观看视频| 波多野结衣在线一区二区| 精品香蕉一区二区三区| 人妻互换一区二区激情偷拍| 欧美.www| 欧美在线视频观看| 伊人成人在线观看| 国产suv一区二区三区88区| 国严精品久久久久久亚洲影视 | 一级黄色av片| 狠狠色伊人亚洲综合成人| 99久久精品无码一区二区毛片| 黄色小视频免费观看| 久久久国产午夜精品| 亚洲一区二区三区免费看| 羞羞视频在线观看不卡| 日韩欧美亚洲一二三区| 日日干日日操日日射| 国产精品99久久免费观看| 亚洲欧美乱综合| www.久久久久久.com| 亚洲天堂岛国片| 欧美婷婷在线| 国产精品老牛影院在线观看| 亚洲国产精品suv| 国产欧美日韩视频一区二区| 日本a级片在线播放| 免费欧美电影| 亚洲第一精品久久忘忧草社区| 美国黄色特级片| 亚洲青色在线| 91性高湖久久久久久久久_久久99| 无码国产色欲xxxx视频| 亚洲欧美日韩小说| 国产一区视频免费观看| 狂野欧美xxxx韩国少妇| 国产一区二区三区18| 日本少妇吞精囗交| 国产一区91精品张津瑜| 先锋影音亚洲资源| 国产粉嫩在线观看| 日韩美女视频在线| 韩国一级黄色录像| 日产欧产美韩系列久久99| 精品伦精品一区二区三区视频| 18av在线视频| 欧美顶级少妇做爰| 亚洲午夜精品久久久久久高潮| 亚洲精选久久| 国产乱码一区| 婷婷色在线资源| 在线观看91精品国产麻豆| 中文字幕成人动漫| 久久精品在线| 久久99精品国产一区二区三区| 先锋成人av| 日韩一区二区免费视频| 久久人妻无码aⅴ毛片a片app| 日本在线不卡视频| 奇米888一区二区三区| 黄色在线网站噜噜噜| 精品国产亚洲在线| 2021亚洲天堂| 国产精品一品视频| www国产免费| 精品国产亚洲一区二区三区在线| 日韩在线播放av| 国产精品高潮呻吟久久久| 国产精品欧美一区喷水| 国产真人无码作爱视频免费| 欧美禁忌电影| 国产精品日韩在线观看| yw193.com尤物在线| 欧美亚洲国产bt| 国产精品69久久久久孕妇欧美| 麻豆精品一区二区av白丝在线| 神马影院午夜我不卡| 日韩高清中文字幕一区二区| 亚洲色图美腿丝袜| 国产在线一级片| 国产精品看片你懂得| 亚洲综合av在线播放| 亚洲成人二区| 国产二区不卡| 九色porny丨国产首页在线| 日韩国产激情在线| 久久久久亚洲视频| 中文字幕在线观看一区二区| 成人日韩在线视频| 欧美日一区二区三区在线观看国产免| 国产精品久久精品国产| 欧美裸体视频| 中文字幕亚洲综合久久筱田步美| 国产精品久久免费| 夜夜嗨av一区二区三区网页 | 成年人看的毛片| 日韩高清在线免费观看| 国产精品678| www久久日com| 精品一区二区三区三区| 中文字幕一区二区三区四区免费看 | 毛片网站在线看| 亚洲精品国精品久久99热一| 亚洲 日本 欧美 中文幕| 国产精品成人免费精品自在线观看| 一起草最新网址| 一本色道88久久加勒比精品| 日韩欧美三级一区二区| 88久久精品| 国产精品wwwwww| 污污的网站在线免费观看| 精品小视频在线| 国产精品天天操| 欧美日韩国内自拍| 人人澡人人澡人人看| 久久综合色之久久综合| 黄色三级视频在线播放| 国产美女精品| 国产激情在线看| 欧洲杯半决赛直播| 国产乱码精品一区二区三区卡| 成人一区视频| 久久久影视精品| 欧美性videos| 亚洲男人7777| 国内精品偷拍视频| 欧美色图在线观看| 国产一级做a爰片在线看免费| 国产欧美日韩另类一区| 极品白嫩少妇无套内谢| 蜜臀av一级做a爰片久久| 成人一区二区免费视频| 午夜激情久久| 日本欧洲国产一区二区| 国偷自产视频一区二区久| 国产中文字幕91| 亚洲成av在线| 欧美在线性爱视频| 98色花堂精品视频在线观看| www.xxxx精品| 91网页在线观看| 亚洲欧美日韩在线一区| 黄色av网址在线| 欧美一区二区日韩| 国产精品久久久久久无人区 | 亚洲成人福利在线观看| 国产亚洲一级| 亚洲一区二区三区av无码| 91精品国产视频| 亚洲一区bb| 色爱综合网欧美| 日日夜夜精品网站| 视频一区在线观看| 精品无人区一区二区三区竹菊| 我要色综合中文字幕| 91美女片黄在线观看游戏| 国产原创一区| 国产欧美韩国高清| 国产精品第一| 国产精品三级美女白浆呻吟| 肉色欧美久久久久久久免费看| 欧美孕妇毛茸茸xxxx| 久久久男人天堂| 51视频国产精品一区二区| 黄色aa久久| 91精品国产91久久久久| 黄视频网站在线观看| 91成人国产在线观看| 日本а中文在线天堂| 45www国产精品网站| 中文字幕资源网在线观看免费| 51精品在线观看| 高清电影一区| 国产欧美va欧美va香蕉在线| 日韩免费在线电影| 51国偷自产一区二区三区| 日韩精品视频一区二区三区| 亚洲xxxx在线| 北条麻妃在线一区二区免费播放 | 好看的日韩av电影| 成年人网站国产| 亚洲视频1区| 已婚少妇美妙人妻系列| 老司机免费视频一区二区| 欧美视频国产视频| 成人av中文字幕| 新91视频在线观看| 国产精品免费av| 久久亚洲国产成人精品性色| 天天操天天干天天综合网| 成年人av网站| 91精品国产福利| 天堂在线观看av| 亚洲欧美激情一区| 男人天堂久久久| 久久久久久久久久久免费精品| 亚洲黄色免费av| 91精品久久久久久久久久久久久久 | 成人久久18免费网站漫画| 欧美a一欧美| 亚洲丰满在线| 影音先锋久久| wwwwww.色| 国产成人免费高清| 亚洲永久无码7777kkk| 国产精品视频免费| 国产亚洲精品码| 精品1区2区3区| 欧美 日韩 国产 精品| 一区二区三区亚洲| 女囚岛在线观看| 国产精品一区av| 六月丁香久久丫| 爱爱爱视频网站| 亚洲免费婷婷| 一区二区三区国产好的精华液| 91色在线porny| 国产成人无码aa精品一区| 色婷婷综合久久久中文字幕| 精品久久国产视频| 夜夜嗨av色一区二区不卡| 搞黄网站在线看| 国产在线98福利播放视频| 西野翔中文久久精品字幕| 91社在线播放| 七七婷婷婷婷精品国产| yy1111111| 亚洲精品v日韩精品| 亚洲综合成人av| 日韩经典中文字幕| 性欧美videoshd高清| 国产欧美日韩最新| 蜜乳av综合| 阿v天堂2018| 国产精品 日产精品 欧美精品| 能直接看的av| 色综合色综合色综合| 日本精品久久久久久| 成人444kkkk在线观看| 成人性片免费| 日韩欧美一区二区在线观看| 夜夜嗨网站十八久久| 日韩精品xxx| √…a在线天堂一区| 亚洲午夜在线播放| 亚洲欧美日韩成人| 中文字幕乱码中文乱码51精品| 国产精品一区而去| 黄色av成人| 精品人妻一区二区免费| 亚洲精选一二三| 99国产在线播放| 精品国产自在精品国产浪潮| 高清欧美日韩| 色噜噜一区二区| 日本91福利区| 亚洲图片第一页| 欧美色成人综合| 99中文字幕一区| 国产精品极品尤物在线观看| 欧美日韩国产在线观看网站| 好男人www社区| 国产午夜精品一区二区三区四区| 国产精品第5页| 亚洲欧美激情一区| 亚洲a∨精品一区二区三区导航| 欧美伦理一区二区| 日韩精品五月天| 国产精品美女高潮无套| 欧美三级欧美一级| 日本激情视频在线观看| 国产在线观看91精品一区| 久久精品亚洲人成影院| 香蕉视频xxx| 亚洲国产成人tv| 亚洲欧美丝袜中文综合| 国产91网红主播在线观看| 日本一区二区三区视频| 在线能看的av网站| 亚洲欧美成aⅴ人在线观看| 精品二区在线观看| 国内精久久久久久久久久人| 麻豆一区一区三区四区| 妺妺窝人体色www在线小说| 国产网站一区二区| 亚洲天堂网视频| 久久成年人免费电影| 成人高潮a毛片免费观看网站| 99爱视频在线| 亚洲欧美综合色| 亚洲精品国产一区二| 热99精品里视频精品| 日韩情爱电影在线观看| 亚洲黄色小说在线观看| 日韩欧美亚洲范冰冰与中字| 日韩三级影院| 国内外成人免费视频| 奇米色777欧美一区二区| √天堂中文官网8在线| 亚洲韩国日本中文字幕| 浪潮色综合久久天堂| 黑人巨茎大战欧美白妇| 99精品一区二区| 亚洲综合精品国产一区二区三区| 欧美国产中文字幕| 国产99久久精品一区二区300| 色噜噜狠狠一区二区三区狼国成人| 亚洲制服丝袜一区| 成人免费在线电影| 国产精品久久久一区二区三区| 久久一区精品| 国产一级特黄a高潮片| 一区二区三区亚洲| 精品国内亚洲2022精品成人| www.xxx亚洲| 亚洲成人精品一区二区| 日本不卡三区| 欧美日韩在线高清| 国产999精品久久久久久绿帽| 天堂免费在线视频| 9.1国产丝袜在线观看|