這個問題一直困惱著我,為什麼安裝完後的 RHEL5 會沒辦法再透過 system-config-packages 的 browse 和 search 功能來添增/減少套件.
因為套件有相關性所以我不是很習慣直接透過 rpm 的方式去直接安裝套件.上網查詢了一下,解決方式很多先說第一種最快的解決方式.
修改 yumRepo.py
因為在使用 system-config-packages 主要還是透過 Yum 的方式,所以重新指定一下 Yum 的程式 /usr/lib/python2.4/site-packages/yum/yumRepo.py 就可以
1. 我的網路環境有一台 PXE (IP:192.8.1.1) 所以 RHEL5 update4 所有的 RPM 檔都是放在 /var/ftp/RHEL5-u4-64/Server/ 上.
2. 在 RHEL5 的 system-config-packages 一開使已經指定了一個 repository 修改成我的正確目錄位置.
其實也可以直接修改設定檔 /etc/yum.repos.d/rhel-debuginfo.repo 當然也可新增一個 repository 檔案名稱可任意,並請以 repo 為副檔名,檔內容如下:
[root@benjr ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo [rhel-debuginfo] name=Red Hat Enterprise Linux 5Server – x86_64 #baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/ baseurl=ftp://192.8.1.1/rhel5-u4-64/Server enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
這裏要注意一個問題,雖然大部分的 rpm 檔是放在 "Server" 目錄下,但是 Cluster VT..等資料卻放在 Cluster,ClusterStorage,VT 目錄中,所以這些套件如法透過這方式來添增/減少.
3.修改 RHEL5 上的 /usr/lib/python2.4/site-packages/yum/yumRepo.py 檔,找出 remote 這一行.
remote = url + '/' + relative
把它改成:
remote = "ftp://192.8.1.1/RHEL5-u4-64/Server/" + '/' + relative
除了 ftp 外還可以使用 http 如果資料在光碟需要先將光碟掛載並指定成 127.0.0.1 本地端目錄.
4.之後開啟 system-config-packages , browse 和 search 功能都能使用了.
的確這個問題在 RHEL5 update4 已經獲得改善,只要在指定 repository 設定檔案,無須再修改 /usr/lib/python2.4/site-packages/yum/yumRepo.py
指定 Repository name
網友也提出另外一個較簡易的解決方式,也無須再修改 /usr/lib/python2.4/site-packages/yum/yumRepo.py
[root@benjr ~]# vi /etc/yum.repos.d/remote-ftp-rhel5.repo [bases] name=Red Hat Enterprise Linux 5Server – x86_64 baseurl=ftp://192.8.1.1/rhel5-u4-64/Server enabled=1 gpgcheck=0
重點在指定名稱須為 "bases"
重新建立 YUM 索引檔
最大的原因是光碟的內容其 YUM 索引檔複製到硬碟後需要重新建立.RHEL5 光碟主要放置 RPM 的目錄有 4 個,Server, VT,Cluster, ClusterStorage 看名稱就可以窺其內容為何.第一步就先將光碟內容附複製本地端硬碟也可為遠端硬碟,不過資料一樣要重新建立.目前我的資料都是放是 ftp://192.8.1.1/rhel5-u4-64/ 目錄中.
光碟本身已經有 YUM 索引檔,要先移除再建立新的.不過資料明細檔要先保留下來才能建立.YUM 索引檔,放置在 Server, VT,Cluster, ClusterStorage 內目錄 repodata 中
建立索引檔案需要 createrepo 程式,在光碟 Server 目錄內可以找到 createrepo-version.noarch.rpm.
[root@benjr ~]# cd /var/ftp/pub/rhel5-u4-64
# Server
[root@benjr rhel5-u4-64]# cd Server [root@benjr Server]# cp repodate/comps-rhel5-server-core.xml /tmp/ [root@benjr Server]# rm -rf repodata [root@benjr Server]# createrepo -g /tmp/comps-rhel5-server-core.xml .
# VT
[root@benjr Server]# cd ../VT [root@benjr VT]# cp repodate/comps-rhel5-vt.xml /tmp/ [root@benjr VT]# rm -rf repodata [root@benjr VT]# createrepo -g /tmp/comps-rhel5-vt.xml .
# Cluster
[root@benjr VT]# cd ../Cluster [root@benjr Cluster]# cp repodate/comps-rhel5-cluster.xml /tmp/ [root@benjr Cluster]# rm -rf repodata [root@benjr Cluster]# createrepo -g /tmp/comps-rhel5-cluster.xml .
# ClusterStorage
[root@benjr Cluster]# cd ../ClusterStorage [root@benjr ClusterStorage]# cp repodate/comps-rhel5-cluster-st.xml /tmp/ [root@benjr ClusterStorage]# rm -rf repodata [root@benjr ClusterStorage]# createrepo -g /tmp/comps-rhel5-cluster-st.xml .
接下來配置 YUM 設定檔 /etc/yum.repos.d/ 新增一個 repository 檔案名稱可任意,並請以 repo 為副檔名,檔內容如下:
[root@benjr ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo [rhel5-u4] name=Red Hat Enterprise Linux 5Server – x86_64 baseurl=ftp://127.0.0.1/rhel5-u4-64/Server enabled=1 gpgcheck=0
這裏要注意一個問題,雖然大部分的 rpm 檔是放在 "Server" 目錄下,但是 Cluster VT..等資料卻放在 Cluster,ClusterStorage,VT 目錄中,所以這些還要依序新增這些設定檔.
One thought on “RHEL5 – system-config-packages”