首頁 > 軟體

RedHat 網路yum源的設定

2020-06-16 17:10:18

  第一次接觸Linux系統,用虛擬機器安裝了一個rad hat6.5版本64位元的,傻瓜式安裝。安裝好之後簡單的寫了一個C程式碼,進行gcc編譯的時候,提示沒有該命令,上網查詢了一下說沒有安裝gcc編譯器,用yum install gcc安裝就可以,但是發現該命令還是不能執行,總是提示連線超時,最後發現是yum源的問題。不知道為什麼當時百度的時候,並沒有發現本地源的設定,找到的都是網路源的設定。嘗試了幾個教學,但是發現沒有一個是可行的,經過仔細的對比,發現這些教學的時間都有些久了(使用的是網易的源,網上都說不錯,本人也是剛接觸Linux的小白,所以不知道是否真的不錯,暫時就這樣使用),現在最新源的網站的一些資料夾和檔名都變了(主要是版本號問題),經過幾次嘗試並對比修改,最後終於設定成功,下面就分享一下所遇到的問題及解決辦法。

  在進行下面的操作之前,一定要確保網路正常,如果沒有網路,下面的所有操作一個都不能實現。(下次會寫個本地源的設定,這個就可以離線的狀態下進行,需要用到系統的映象檔案,安裝好系統之後不要刪掉。)

  首先設定網路源需要一些安裝包,先簡單羅列出來:

python-iniparse-0.3.1-2.1.el6.noarch.rpm
python-urlgrabber-3.9.1-11.el6.noarch.rpm
yum-3.2.29-73.el6.CentOS.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

  可以到這個網站直接下載:http://mirrors.163.com/centos/6/os/x86_64/Packages/

  不過裡面的安裝包確實太多了,找起來要花費點時間,如果下面介紹的線上獲取的方式沒有問題,可以節約不少時間,當然有興趣可以進入找找看。

  線上獲取方式:在Linux的終端執行以下命令:

[root@localhost ~]# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
[root@localhost ~]# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
[root@localhost ~]# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm
[root@localhost ~]# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
[root@localhost ~]# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

  如果以上命令不能正確執行,提示網站沒有響應,就是這個包已經找不到了,因為版本更新,老版本的包刪掉了,只有新版本的包,所以按原來的檔名是不可能找到的,因此得自己到上面那個網站裡去匹配這些安裝包,名字是基本不會變的,變的是版本號。

  我遇到的就是這個問題,那些教學裡面的檔案都不能線上下載,上面這些命令的執行結果總是提示網站沒有響應。

現在基本工作已經做好了,接下來就進行安裝和設定:

  1、安裝之前要先解除安裝系統本來的yum源,執行以下命令

[root@localhost ~]# rpm -aq|grep yum|xargs rpm -e --nodeps

  2、查詢一下是否完全解除安裝了

[root@localhost ~]# rpm -qa |grep yum

  執行完這一條命令沒有任何資訊提示,就表示已經完全解除安裝了。(囉嗦一句,給剛接觸Linux的提示一下,其他的可以飄過。在Linux下如果命令執行成功是不會出現任何提示,有錯誤才會提示)

  3、先安裝這下面的兩個包

[root@localhost ~]# rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
[root@localhost ~]# rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

  這兩個包安裝一般都不會出現問題,直接就通過(我是沒出現問題,其他人如果出現問題,可以自行百度一下解決辦法)

  4、接下來嘗試安裝這兩個包,一定要一起安裝,也就是要在一條命令中執行,不可以跟上面的兩個包一樣分兩條指令執行(網上的教學說是包的依賴關係)

[root@localhost ~]# rpm -ivh  yum-3.2.29-73.el6.centos.noarch.rpm    yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

  如果能直接通過是最好的結果,可以省略不少麻煩,直接跳到第6步執行組態檔內容的替換。

  不過應該不會那麼順利,我這裡的錯誤提示是缺少了一個包的依賴

warning: yum-3.2.29-73.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
    error: Failed dependencies:
    python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch

  在 >= 左邊的就是提示缺少依賴的包,找到名字為python-urlgrabber+版本號.rpm的包進行安裝。這個提示,之前找到的教學是沒有的,可能當時他們不存在這個問題。

  還有可能會有其他的包依賴問題,根據個人的具體情況,找相應的安裝包。

  5、安裝這個缺少的依賴包

[root@localhost ~]# rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

  這裡也可能會出現問題,當然沒問題最好了。

  這個網路yum源的設定是自己設定了兩次,第一次是沒有完全刪除系統自帶的yum源,到了這一步提示安裝包衝突,之後就是完全刪除了系統自帶的yum源,重新從第3步開始安裝一次,問題就解決了。第二次也就是按照現在的步驟,一開始就完全刪除了系統自帶的yum源,但是到了這一步還是提示安裝衝突,網上的解決辦法就是強制安裝,也沒有找到其他辦法,所以也只有執行強制安裝了。

  提示資訊都是這個

file /usr/lib/python2.6/site-packages/urlgrabber/grabber.py from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with     file from package python-urlgrabber-3.9.1-9.el6.noarch

  強制安裝缺少的依賴包

[root@localhost ~]# rpm -ivh --force python-urlgrabber-3.9.1-11.el6.noarch.rpm

  安裝完之後,再執行第4步,應該就可以完全通過了。

  6、更改組態檔 rhel-debuginfo.repo

  更組態檔之前先進行備份(新手一定要記住這一點,更改系統組態檔之前一定要備份)

[root@localhost ~]# cp /etc/yum.repos.d/rhel-source.repo  /etc/yum.repos.d/rhel-source.repo.bak

  編輯該組態檔

[root@localhost ~]# vim /etc/yum.repos.d/rhel-source.repo

  可能也有一些人裝了系統之後,沒有vim可以使用,但是vi是一定有的,所以上面的指令如果是出錯提示沒有該命令,可以用vi開啟

[root@localhost ~]# vi /etc/yum.repos.d/rhel-source.repo

  (vi或者vim的使用:上面的命令執行完成之後,會出現一個文字的編輯介面,按 i 鍵進入編輯模式,方向鍵進行游標移動,這裡的複製和貼上使用的是Ctrl+Shift+C、Ctrl+Shift+V ,然後按ESC鍵退出編輯模式,輸入 ":wq" ,儲存退出。)

  將這裡面的內容全部刪掉,替換成以下內容

        [base]
        name
=CentOS-$releasever - Base
        baseurl
=http://mirrors.163.com/centos/6/os/$basearch/
        gpgcheck
=1
        gpgkey
=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

        #released updates
       
[updates]
        name
=CentOS-$releasever - Updates
        baseurl
=http://mirrors.163.com/centos/6/updates/$basearch/
        gpgcheck
=1
        gpgkey
=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

        [extras]
        name
=CentOS-$releasever - Extras
        baseurl
=http://mirrors.163.com/centos/6/extras/$basearch/
        gpgcheck
=1
        gpgkey
=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

        #additional packages that extend functionality of existing packages
       
[centosplus]
        name
=CentOS-$releasever - Plus
        baseurl
=http://mirrors.163.com/centos/6/centosplus/$basearch/
        gpgcheck
=1
        enabled
=0
  這裡也有要注意的地方,還是檔名的問題,版本更替是一定的會有的,在此過程中可能會產生檔名的更改,也許我現在可行的方法,到你用的時候就失效了,這時候你就得自己去核實路徑檔名的正確與否了。因為我在這裡也出過錯,所以才能指出來,之前那些教學的baseurl路徑都是baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/ ,以前是命名為6.0,現在已經更改為6,所以之前這個檔案改好之後,在下一步進行驗證的時候,也是提示連線失敗。

  這些內容更替好之後,儲存退出就可以了。

  7、清除原來的源設定

[root@localhost ~]# yum clean all

  8、安裝現在的yum源,這一步也是測試新安裝的yum源有沒有安裝成功

[root@localhost ~]# yum install yum

  如果這條命令能執行成功,就說明新安裝的yum源已經正確設定好了。

  9、更新yum源到本地

[root@localhost ~]# yum list

我到這裡就已經完全沒有問題了,如果有其他問題,到網上找找解決辦法。這個可能也會隨著時間的推移而失效,所以能提供只是個大概的方向,具體細節只能具體分析。

更多YUM相關教學見以下內容

RHEL7 本地yum源設定 http://www.linuxidc.com/Linux/2017-01/139140.htm

CentOS 6.5 設定本地Yum源  http://www.linuxidc.com/Linux/2017-04/143127.htm

CentOS 7 使用阿里雲的yum源、PIP源 http://www.linuxidc.com/Linux/2017-01/13966.htm

CentOS及Red Hat Linux安裝yum源  http://www.linuxidc.com/Linux/2017-02/140205.htm

CentOS 7更改yum源與更新系統 http://www.linuxidc.com/Linux/2017-01/140067.htm

RedHat7.0設定本地yum源  http://www.linuxidc.com/Linux/2017-01/139148.htm 

RedHat Linux 7安裝CentOS 7 yum源  http://www.linuxidc.com/Linux/2017-04/142444.htm

軟體包管理之前端管理工具yum  http://www.linuxidc.com/Linux/2017-02/140270.htm

CentOS 7 使用阿里雲的yum源、PIP源 http://www.linuxidc.com/Linux/2017-01/13966.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145578.htm


IT145.com E-mail:sddin#qq.com