文章目錄
使用 Nexus 來建立 yum repository
之前筆記 使用 yum 下載包含相依套件的完整 package 紀錄到如何將 package 與其相依 package 一次完整下載,但筆記最後也提到透過逐一安裝 package 實在太沒效率,所以今天就來紀錄一下如何使用 Nexus 自建 yum repository 以及實際的使用方式
基本環境說明
- Azure VM Standard B2s (2 vcpu,4 GiB 記憶體)
Azure Linux image
- cognosys/centos-7-9-free
docker-1.13.1-208.git7d71120.el7_9.x86_64
docker images
- sonatype/nexus3:3.37.3
使用 container image 啟動 nexus
docker run -d -p 8081:8081 --name nexus sonatype/nexus3:3.37.3
建立與使用方式
建立 yum repository
- 指定識別名稱 (加入 yum repo 時會用到):這邊以
yum
為例 - 設定資料夾階層 (設定 rpm 在資料夾的階層數):這邊以
0
為例,即http://<serveraddress:port>/repository/yum/{package name}.rpm
- 指定識別名稱 (加入 yum repo 時會用到):這邊以
將 rpm 儲存至 nexus yum repository 中
語法
curl -v --user '{帳號}:{密碼}' --upload-file {package rpm 位置} http://{serveraddress}:{port}/repository/{前面設定的識別名稱}/{package}.rpm
範例
curl -v --user 'admin:pass.123' --upload-file ./jq-1.6-2.el7.x86_64.rpm http://localhost:8081/repository/yum/jq-1.6-2.el7.x86_64.rpm
使用端加入 yum reposipory
如果 nexus 設定不允許匿名存取,記得加入 repo 時要設定帳號密碼
語法
cat <<EOF > /etc/yum.repos.d/{repo name}.repo [{repo name}] name={repo name} baseurl=http://{serveraddress}:{port}/repository/{前面設定的識別名稱}/ enabled=1 gpgcheck=0 [username={帳號}] [password={密碼}] EOF
範例
cat <<EOF > /etc/yum.repos.d/nexus.repo [nexus] name=nexus baseurl=http://192.168.1.2:8081/repository/yum/ enabled=1 gpgcheck=0 username=admin password=pass.123 EOF
心得
我不清楚 yum repository gpg check 的機制,我先把 gpgcheck
關掉了,也就沒給 gpgkey
先求個能用,待日後慢慢優化囉
參考資訊
文章作者 Yowko Tsai
上次更新 2022-02-25
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。