RPM索引在Artifactory中是如何工作
RPM
RPM 是用於儲存和管理 RPM 軟體包的倉庫。我們在 RHEL 和 Centos 系統上常用的 Yum 安裝就是安裝的 RPM 軟體包,而 Yum 的源就是一個 RPM 軟體包的倉庫。 JFrog Artifactory 是成熟的 RPM 和 YUM 儲存庫管理器。 JFrog 的官方 Wiki 頁面提供有關 Artifactory RPM 儲存庫的詳細資訊。
Artifactory 索引 RPM 包的過程
Artifactory 5.5.0 及之後版本,針對 YUM 後設資料計算處理進行了重大的改進,加入了併發和增量計算的能力。所以 新的索引過程 :
n 效能上優於之前自動觸發的非同步計算
n 同時不需要在單獨開發觸發後設資料計算的外掛
n 可以監控並且準確地知道新的後設資料計算的狀態
如下圖:建立RPM 倉庫時選擇 “Auto Calculate RPM Metadata” , Artifactory 將會攔截 Copy 或 Move 的操作,並且自動觸發計算步驟。保證在及時提供給使用者最新的後設資料用來獲取軟體包的版本
後設資料的兩種方式
n 非同步:
正常情況下,如果啟動了以上的選項,那麼當你使用REAT API 或者 UI 部署包的時候 ,非同步計算將會攔截檔案操作,並且將索引新增操作加入到Artifactory 內部的佇列中進行計算。
n 同步:
只有關閉“ Auto Calculate RPM Metadata ” 時才可以使用,此時您可以手動觸發後設資料計算。
例:
有一個CI 任務可以將很多版本上傳到一個大型倉庫裡,可以在流水線中增加一個額外的構建步驟。以下為倉庫名為 “rpm-release-local” ,透過 Rest API 請求手動觸發後設資料計算
Artifactory RPM 系統屬性整選項( 5.5.0 及以上版本)
日誌
n RPM 日誌記錄 org.artifactory.addon.yum.YumAddonImpl :
INFO 級別: Starting to calculate Rpm metadata for
您可以在Artifactory 中的以下軟體包上啟用除錯 / 跟蹤級別日誌記錄(修改 $ ARTIFACTORY_HOME / etc / logback.xml )以跟蹤 / 除錯您的計算:
自動計算(非同步):
DEBUG 級別: {path} 的非同步 Rpm 計算
觸發(同步):
DEBUG 級別: {path} 的同步 Rpm 計算
n 虛擬RPM 儲存庫計算:
為org.artifactory.addon.yum.virtual.index 啟用每個日誌級別 :
DBUG 級別:為 {path} 啟動虛擬 yum 後設資料計算
整個包邏輯過程的跟蹤級別:
為org.jfrog.metadata.indexer.RpmRepoIndexer 啟用每個日誌級別 :
TRACE 級別:準備索引 RPM 儲存庫後設資料
DEBUG 級別:完成對 RPM 儲存庫後設資料的索引編制
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2702193/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【譯】Arc 在 Rust 中是如何工作的Rust
- RPM 包是如何從源 RPM 製作的
- 在Linux中,什麼是SSH?它是如何工作的?Linux
- 在Linux中,什麼是管道?它是如何工作的?Linux
- async/await 在 C# 語言中是如何工作的?(中)AIC#
- 在Linux中,什麼是守護程序,它們是如何工作的?Linux
- 在Linux中,什麼是負載均衡?它是如何工作的?Linux負載
- 在Linux中,SELinux工作原理是什麼?如何啟用/禁用?Linux
- 在Linux中,什麼是檔案許可權?它們是如何工作的?Linux
- hypernetwork在SD中是怎麼工作的
- MySQL 中索引是如何實現的,有哪些型別的索引,如何進行最佳化索引MySql索引型別
- 在Linux中,什麼是虛擬記憶體?它是如何工作的?Linux記憶體
- [譯] Virtual Dom 和 Diff 演算法在 React 中是如何工作的?演算法React
- RPM是什麼
- 在 Fedora 中安裝替代版本的 RPM 包
- for迴圈在Python中是怎麼工作的Python
- 在Linux中,Keepalived的工作原理是什麼?Linux
- 在Linux中,keepalive工作原理是什麼及如何做到健康檢查?Linux
- async/await 在 C# 語言中是如何工作的?(下)AIC#
- async/await 在 C# 語言中是如何工作的?(上)AIC#
- 如何找到某個鍵值在索引中存在於哪個BLOCK中索引BloC
- 如何構建 RPM 包
- Cucumber是如何工作的?
- CDN是如何工作的?
- abracadabra: Shazam是如何工作?
- Javascript是如何工作的JavaScript
- instanceof 是如何工作的
- DNS是如何工作的?DNS
- Ruby on Rails中的MVC架構是如何工作的AIMVC架構
- 怎麼在 Fedora 中建立我的第一個 RPM 包?
- Linux系統中rpm與yum的區別是什麼?Linux
- 雜湊索引在MySQL中的探究索引MySql
- Tomcat在SpringBoot中是如何啟動的TomcatSpring Boot
- 在職場中,如何聰明地“催促”同事的工作?
- 如何在 Fedora、CentOS、RHEL 中啟用 RPM Fusion 倉庫CentOS
- 我在工作中是如何優化程式碼的優化
- 如何使用Nginx對Artifactory進行http應用NginxHTTP
- Kubernetes Autoscaling是如何工作的?