1,215 瀏覽數

RHEL5 – system-config-packages

這個問題一直困惱著我,為什麼安裝完後的 RHEL5 會沒辦法再透過 system-config-packages 的 browse 和 search 功能來添增/減少套件.
system-config-packages01
因為套件有相關性所以我不是很習慣直接透過 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 修改成我的正確目錄位置.
system-config-packages03
其實也可以直接修改設定檔 /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 功能都能使用了.
system-config-packages02
的確這個問題在 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 目錄中,所以這些還要依序新增這些設定檔.

網友的想法

  1. 自動參照通知: Linux – Package Manager 套件管理 | Benjr.tw

發表迴響