需要RHEL 9
階段 1
- 建立您要用作存放庫的目錄。
例如,下列命令會建立將用於包含 Red Hat 9 RPM 的目錄。
mkdir –p /repos/redhat/9 - 顯示可供您用於填入本機存放庫的公共存放庫清單。
您可以使用的公共存放庫是以您的 RHEL 訂閱為基礎。
yum repolist - 使用 YUM,安裝包含 reposync 的套件。
yum install yum-utils - 從您所選擇的公共存放庫下載所有可用的套件。
例如,下列命令會從 rhel-9-for-x86_64-baseos-rpms 公共存放庫下載 RPM。
reposync –-gpgcheck –l –-repoid=rhel-9-for-x86_64-baseos-rpms –-
download_path=/repos/redhat/9
下載程序將會花費較長時間,所以請做好相應計畫因應。 -gpgcheck 選項會移除在下載過程中無法通過簽章檢查
的套件。 - 針對各個所需公共存放庫變體重複執行步驟 3。
例如,若貴組織在 Intel 和 ARM 上都包含 RHEL 9,便需要從這兩個相關的公共存放庫下載 RPM。 您可能需要費
時多日進行所有必要的下載。
請勿嘗試下載適用於不同 Red Hat 或 CentOS 版本的 RPM。 例如,RHEL 9 電腦無法用於下載適用於
RHEL 8 x64 電腦或 RHEL 7 x64 電腦的 RPM。
階段 2
此處描述的程序會建立一個可透過 HTTP 存取的存放庫。 還有其他可用於建立存放庫的方式。 請隨意使用您最為熟悉的
方式。 - 使用 YUM,安裝可供建立存放庫的程式。
yum install createrepo - 建立存放庫。
createrepo /repos/redhat/9
若您遇到一則錯誤,說明其無法開啟 *.rpm 檔案,請確認仍有可用的磁碟空間。 若可用空間並不是問題所在,請
再次執行下載步驟 (階段 1 的步驟 3)。 有可能是在初次進行下載時,遺漏了部分檔案。 - 安裝 Apache Web 服務。
這將能提供使用 HTTP 通訊協定存取本機存放庫的功能。
yum install httpd - 開啟本機防火牆的連接埠 80。
這是因為我們將存放庫設定為使用 HTTP。 HTTPS 也是一種選擇,不過在此選用 HTTP 的原因只是為了簡化範
例。 - 編輯 httpd.conf 檔案,並新增下列任何目前缺少的條目。
vi /etc/httpd/conf/httpd.conf
ServerAdmin root@localhost
DocumentRoot /var/www/html
ServerName - 將新的存放庫連結至預設網站位置。
ln -s /repos/redhat /var/www/html/redhat - 確認 Apache Web 服務的語法。
httpd -t - 啟動 Apache Web 服務。
systemctl start httpd
您可能需要在伺服器每次重新啟動時重複此命令。 您可以使用下列命令在伺服器重新啟動時自動啟動該
服務:
systemctl enable httpd。 - 取得 updateinfo.xml.gz ZIP 檔案。
步驟 9 - 13 僅適用於 Red Hat 電腦。
yum list-sec - 從預設位置將 updateinfo.xml.gz 檔案複製到 /repodata 資料夾。
cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseosrpms/
updateinfo.xml.gz /repos/redhat/9/repodata/ - 解壓縮 updateinfo.xml.gz 檔案。
gzip –d /repos/redhat/9/repodata/updateinfo.xml.gz - 重新命名 updateinfo.xml 檔案,將不必要的前置字元刪除。
mv /repos/redhat/9/repodata/updateinfo.xml
/repos/redhat/9/repodata/updateinfo.xml - 修改存放庫以確認其包含 updateinfo.xml 檔案。
modifyrepo /repos/redhat/9/repodata/updateinfo.xml /repos/redhat/9/repodata/ - (僅適用於已啟用 SELinux 的電腦) 為 www/html/redhat 提供存取 /repos/redhat 的權限。
cd /var/www/html
chcon -R -t httpd_sys_content_t redhat/
重複執行其他 Linux 版本和分發的組態程序
您將需要為貴組織內所支援 Linux 各個發行的各個不同版本重複執行部分或全部的組態程序。 例如,您必須使用 RHEL 9
電腦下載 RHEL 9 RPM、使用 CentOS 7 x64 電腦下載 CentOS 7 x64 RPM、使用 RHEL 8 x64 電腦下載 RHEL 8 x64 RPM,
依此類推。 依各個 Linux 唯一版本的需要更改命令。
情況 1: 您目前採用單一存放庫供所有不同 Linux 版本使用
假設您目前使用 Red Hat 9 電腦做為存放庫,以下是您需要重複進行的作業,這樣才能擷取 Red Hat 8 RPM: - 在 Red Hat 9 存放庫電腦上,重複進行階段 1,步驟 1,但需指定 /repos/redhat/8。
- 在 Red Hat 8 電腦上,進行階段 1,步驟 3 和 4。
在步驟 3 中,由於 repos/redhat/9 目前將不會存在於 Red Hat 8 電腦上,所以請將 -download_path 選項移除並
將其指向預設位置或指定不同位置。 - 在下載 RPM 作業完成時,將 RPM 傳送至您本機存放庫上的 repos/redhat/8 目錄。
完成後,就可在單一電腦上具備單一存放庫,其中包含所有支援版本 Red Hat 的 RPM 套件。
情況 2: 您目前單獨維護多個存放庫供各個不同 Linux 版本使用
為貴組織所支援的各個不同 Linux 版本重複執行整個組態程序。
將您的 Linux 用戶端電腦指向本機存放庫
您必須修改每個 Linux 用戶端上的 YUM,這樣它才會在本機存放庫內搜尋 RPM,而不是在網際網路上搜尋。
若您選擇為 Linux 各個版本維護不同的本機存放庫,請確保讓各個用戶端指向正確的本機存放庫。 - 登入用戶端電腦。
- 切換至列出存放庫所在位置的目錄。
cd /etc/yum.repos.d - 建立名為 local.repo 的檔案,接著將其設定為指向新的本機存放庫。
nano local.repo
[mylocalrepo]
name=Local Rhel9 Server Repo
baseurl=http://es-nxt-rhel9-repo.example.com/redhat/9
gpgcheck=0 - 指定在本機存放庫缺少 RPM 的情況下,用戶端不應試圖在網際網路 (中斷用戶端電腦的連線) 上尋找。
ls
vi any file other than local.repo (example redhat.repo)
Look for your repoid (example rhel-9-for-x86_64-baseos-rpms)
Set enabled = 0
存放庫的定期維護
您將需要讓本機存放庫與公共存放庫定期重新同步,藉此維持其最新狀態。 執行下列命令時,僅新的 RPM 套件會下載
至本機存放庫。
reposync –gpgcheck –l –repoid=rhel-9-for-x86_64-baseos-rpms –
download_path=/repos/redhat/9
createrepo --update /repos/redhat/9
氣隙網路
若貴組織設有「氣隙」網路,即代表不允許用戶端電腦連接至任何具備網際網路連線的電腦,您必須設定並維護第二個
存放庫。 下圖已說明此點。
在此情況中,已依上述說明設定及配置連線存放庫後,您將會在已中斷連線電腦上設定第二個存放庫,並手動使用卸除
式媒體從連線存放庫將檔案傳輸至已中斷連線存放庫。 接著應將您的 Linux 用戶端電腦設定為指向已中斷連線存放庫,
而非指向連線存放庫。
v9
cat repo_download.sh
#!/bin/bash
set -e
reposync -p /home/repo/rhel9/ --download-metadata --repoid=rhel-9-for-x86_64-baseos-rpms
reposync -p /home/repo/rhel9/ --download-metadata --repoid=rhel-9-for-x86_64-appstream-rpms
createrepo --update /home/repo/rhel9/rhel-9-for-x86_64-appstream-rpms/
createrepo --update /home/repo/rhel9/rhel-9-for-x86_64-baseos-rpms/
浙公网安备 33010602011771号