1. 程式人生 > 實用技巧 >yum源

yum源

yum源

如何配置linux上的本地yum源

yum是什麼,yum源又是什麼

在windows上安裝一個軟體,我們可以通過360管家。因為360管家提供了軟體的安裝,解除安裝,並且解決了軟體之間的依賴等相關問題,使得我們能夠一鍵安裝。在linux上有一個提供了和360管家類似功能的工具,叫做yum。使用yum我們就可以做到一個命令安裝軟體,並且不同的發行linux有不同工具,例如紅帽(read hat)linux就使用的rpm全稱就是read hat package manager 紅帽軟體包管理工具。
yum源是什麼呢?我們安裝軟體的時候需要下載軟體,將很多軟體放在一起就是源。軟體安裝包的來源。所以yum源就是軟體安裝包來源。如果我們是線上的,他會在網上給你下載安裝包,如果是離線的沒有網路。那麼就只能配置本地的yum源了。

本地yum源是什麼

上面說過yum源就是軟體安裝包的來源,但是這些安裝包哪裡有呢?其實在linux的安裝映象中就有的,linux已經將常見的安裝包放到了linux映象中。如果你使用壓縮檔案開啟linux的iso映象檔案,你會發現在根目錄下有個資料夾:packages

上圖就是使用壓縮軟體開啟的系統盤內部情況,比如我們常用的工具vim,就是在這裡面的。所以說:系統的安裝映象就可以當作yum源。
與yum源相關的配置檔案

上圖就是yun源相關的配置,在路徑/etc/yum.repos.d/目錄下,一共4個檔案,說下兩個常用的。

  • CentOS-Base.repo:有網的環境下預設使用這個,這個是第一優先順序。因為沒網,所以修改檔名,設定成備份檔案。這樣系統就會使用第二優先順序的檔案。
  • CentOS-Media.repo:沒網的環境下使用這個,在上圖中會發現他預設配置了4個路徑,第4個yumsource是我自己加的。意思是說,如果系統檢測yum使用了離線安裝,那麼會從上到下從這4個路徑中查詢安裝軟體。所以我們只要把光碟掛載在這四個目錄下的任意一個目錄即可。同時,該配置檔案預設是不啟用的,如果想使用需要修改倒數第二行的enabled為1,否則該檔案無效。

yum的工作原理

原理

1.刨根問底---什麼是yum源?yum的工作原理?

說到yum源就必須說到linux系統中特有的依賴關係問題,yum就是為了解決依賴關係而存在的。yum源就相當是一個目錄項,當我們使用yum機制安裝軟體時,若需要安裝依賴軟體,則yum機制就會根據在yum源中定義好的路徑查詢依賴軟體,並將依賴軟體安裝好。

YUM是“Yellow dog Updater, Modified”的縮寫,是一個軟體包管理器,YUM從指定的地方(相關網站的rpm包地址或本地的rpm路徑)自動下載RPM包並且安裝,能夠很好的解決依賴關係問題。

YUM的基本工作機制如下:

伺服器端:在伺服器上面存放了所有的RPM軟體包,然後以相關的功能去分析每個RPM檔案的依賴性關係,將這些資料記錄成檔案存放在伺服器的某特定目錄內。

客戶端:如果需要安裝某個軟體時,先下載伺服器上面記錄的依賴性關係檔案(可通過WWW或FTP方式),通過對伺服器端下載的紀錄資料進行分析,然後取得所有相關的軟體,一次全部下載下來進行安裝

2.yum檔案

[root@linux-6 ~]# vim /etc/yum.repos.d/

google-chrome.repo  local-yum.repo      rhel-source.repo

[root@linux-6 ~]# vim /etc/yum.repos.d/       //在yum.repos.d 目錄下存放的就是yum源的設定檔案。

[root@linux-6 ~]# vim /etc/yum.repos.d/rhel-source.repo     //開啟一個yum源的設定檔案

[rhel-source-beta]     //yum源的名稱,起到標記yum源的作用,

name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source  //僅僅是對yum的描述,作用是使使用者可以更容易的讀懂該檔案。

baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/  //我們指定的查詢依賴關係軟體的路徑,(該路徑可以是一個網址路徑,也可以是本機上的一個路徑。)

enabled=0       //enabled 是使能夠的意思,0表示baseurl定義的路徑是不可用的,1表示定義的路徑是可用的。

gpgcheck=1  //gpgcheck表示是否進行gpg檢測,0表示不進行,1表示進行。gpg檢查就是在使用yum安裝軟體是對軟體輸入公鑰進行驗證,看是否來源安全。

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release    //進行gpg檢查時,使用file協議匯入公鑰,後面接的路徑就是系統自帶的公鑰存放路徑。

ftp://   表示使用的是ftp協議連線路徑,該協議一般用於非本地連線,本地yum使用的協議是:"file://"檔案協議

3.兩種yum源:本地yum源和網路yum源。本次只談本地yum源

搭建本地yum源,我們首先就要有提供源的檔案包,一般的Linux系統的映象檔案iso中就含有搭建yum源所需的rpm檔案。若是沒有建議到網上下載,注意要和自身使用的系統版本一致。

3.1確定iso映象檔案的位置    //其實是因為iso檔案中有yum源所需的rpm包,好在下一步中實施掛載,若是知道你電腦上的iso檔案在什麼地方,則無需這步。

3.2新建一個倉庫目錄                  //用來存放本地yum源。

[root@linux-6 ~]# mkdir  /iso   

3.3.1掛載映象檔案到/iso目錄        //主要是獲得iso軟體

[root@linux-6 ~]# mount -o loop /***.iso  /iso       // /***.iso 表示映象檔案所在本機上的絕對路徑。

3.3.2如果你有光碟機也有光碟,並且光碟機已經掛載,則只需使用如下命令:

[root@linux-6 ~]# mount /dev/cdrom   /iso

4.檢視掛載

//主要是確認掛載是否成功

[root@teacher ~]# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda3     ext4    321G  142G  163G  47% /

tmpfs        tmpfs    1.9G  336K  1.9G   1% /dev/shm

/dev/sda1     ext4     92G  233M   87G   1% /boot

/var/ftp/software/iso/rhel6.3.x86.iso

          iso9660    2.9G  2.9G     0 100% /iso

[root@teacher ~]#

5.在yum原始檔中指定iso映象檔案所掛載到的目錄的路徑,並將使用的協議改成file協議。

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

[rhel-source-beta]

name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source

baseurl=file///iso           //這是主要的不同之處,使用的是file協議,指定的路徑是/iso

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

6.清除快取,使最新的yum配置生效。

[root@linux-6 ~]# yum clean all
[root@linux-6 ~]# yum list

掛載

media目錄與mnt目錄

掛載光碟或者u盤等使用的mount命令,但是你百度所有會說有掛在media目錄下,也有掛載在mnt目錄下的。這兩個目錄區別是什麼呢?
media:掛載一些移動裝置,例如光碟,U盤等。
mnt:掛載一些硬碟等裝置。所以我們的光碟應該掛載在media目錄下,從yum給的預設配置檔案也能看出。

掛載光碟到系統上

如上圖,首先執行df -h命令發現當前系統沒有光碟資訊,然後掛載目錄之後,在檢視就發現我們把光碟掛載到了系統上,光碟大小4.2G。
-o loop :指定掛載檔案型別,說簡單點就是我要掛載的是光碟這種裝置。

解除安裝光碟

執行df -h發現光碟是掛載的,然後執行umount命令之後,在檢視發現裝置被解除安裝了