回答
源RPM包含Linux應用實際的源代碼和補丁文件。所有的源RPM文件具有擴展名的src.rpm
如果您在基於Intel的計算機上使用RPM,你通常希望找到I386那裏。如果您使用x86_64位計算機,您將在RPM文件名中看到x86_64。正常的rpm文件只有二進制文件,根本沒有源代碼。
以下鏈接幫助我關於源代碼對二進制RPM
編輯:
- 檢查的RPM簽名包
轉--checksig文件
- 顯示包裝信息
轉-qi文件
我認爲這是在工具用於這一目的沒有內置。使用RPM相關的命令,或者你可以創建一個shell腳本作爲一個工具來檢查任何時間(它可以節省你的時間)。
我不相信有任何明確方式做你想做的,雖然你可能能夠應用一些啓發式來做出合理的猜測。
使用
rpm -qi -p
rpmfilename並看看是否有一個 「源RPM:」 值。使用來自
rpmdevtools
包的rpmls
。僅基於檢查輸出,SRPMS似乎包含.tar.gz或.tar.bz2和.spec文件。
我認爲這將讓你關閉一個答案,但它不能明確。這是否足夠取決於在您的情況下完全正確的重要程度。
rpm -qlp rpmfilename | grep -c /usr/src/redhat
將給予它多少源文件包括(通常是源存檔,一個規範文件,補丁極少數)的計數。如果您以編程方式執行此操作,則grep -q
將返回匹配或不匹配。
代碼RPM通過在報頭中的SOURCERPM標籤的存在來定義。如果一個rpm有一個SOURCERPM標籤,這意味着rpm是一個二進制rpm(SOURCERPM標籤說明了用什麼srpm構建二進制rpm)。如果沒有SOURCERPM標籤,那麼rpm就是srpm。
我不確定這是否是srpm的「官方」定義,但它是rpmbuild
和其他實用程序當前用於確定給定rpm是否爲參考rpm中srpm或不是的邏輯實施(見headerIsSource() in lib/headerutil.c)。所以它看起來很合理。
這裏是檢查是否使用rpm
命令行實用程序中的轉速存在SOURCERPM標籤的方式:,
$ rpm --query --package foo-1.2.3-1.src.rpm \
--queryformat "%|SOURCERPM?{binary-rpm}:{source-rpm}|\n"
source-rpm
$ rpm --query --package foo-1.2.3-1.el7.x86_64.rpm \
--queryformat "%|SOURCERPM?{binary-rpm}:{source-rpm}|\n"
binary-rpm
- 1. rpmbuilder創建只有源rpm不是二進制rpm
- 2. 如何使用rpmbuild爲主機上的源RPM構建目標二進制RPM
- 3. 從rpm安裝RPM
- 4. YUM/RPM - 如何指定不使用RPM
- 5. RPM升級卸載RPM
- 6. 如何檢測rpm後腳本失敗
- 7. RPM包中最新版RPM包的識別過程是什麼?
- 8. 是否可以將RPM嵌入到另一個RPM中?
- 9. maven-rpm-plugin和rpm-maven-plugin之間的區別是什麼
- 10. 什麼是eCpm Fill rate rpm
- 11. noarch rpm和rpm之間的區別
- 12. 兼容RPM RPM構建環境
- 13. 使用rpm查看RPM腳本--scripts -qp
- 14. RPM安裝成功,但rpm -q失敗
- 15. rpm-maven-plugin截斷rpm版本
- 16. RPM生成錯誤:/var/tmp/rpm-tmp.OJ8A3jinválido(%build)
- 17. rpm -F和rpm -U有什麼區別?
- 18. 來自python源的rpm包
- 19. 檢查RPM相關性
- 20. 如何使用Redline RPM Java庫創建RPM包?
- 21. 如何將RPM聲明爲另一個RPM的子集?
- 22. 如何在安裝rpm包後找到rpm前綴
- 23. 如何將RPM版本4.4。*升級到RPM版本4.8。?
- 24. 如何讓一個RPM安裝另一個RPM
- 25. 創建RPM包
- 26. 從rpm安裝
- 27. centOR的solr rpm
- 28. RPM錯誤13
- 29. 創建Python RPM
- 30. 提取rpm包
我一直在尋找一種方式來提取RPM文件信息,比如'轉'工具或類似的東西。 – sorin
@sorin我已經編輯了我的答案作爲您的評論。我認爲沒有內置的工具來達到這個目的。使用RPM相關的命令,或者你可以創建一個shell腳本作爲一個工具來檢查任何時間(它可以節省你的時間)。 –