1、yum是什么
yum(全稱為Yellowdog Updater Modified)是一個在CentOS、RedHat和Fedora操作系統中使用的Shell前端軟件包管理器。
yum主要管理基於rpm的軟件包,它可以自動升級、安裝、刪除rpm軟件包,同時它還能夠自動查找並解決rpm包之間的依賴關系,並且無需管理員逐個、手工的去安裝每一個rpm包,使管理員在維護Linux主機時更加輕松自如。
yum可以從一個或多個repo文件中配置的repo倉庫,通過http或ftp協議從repo倉庫獲得必要的信息,然后下載相關的軟件包。這樣,本地用戶通過建立不同的repo倉庫,在有Internet連接時就能方便進行系統的升級和維護工作。
repo倉庫可以通過createrepo或yum-arch命令進行創建,也能夠用別人已經創建好的repo倉庫作為yum源,在此我們主要探討通過createrepo命令創建的repo倉庫。
2、repo文件是什么
一個標准的centos的repo文件內容如下:
[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
各個選項說明如下:
[base]
該選項是定義軟件源的名稱,該名稱是可以自定義,同時在該服務器上所有repo文件中是唯一的。注意:方括號里面不能有空格。
name=CentOS-$releasever – Base
該選項是定義軟件倉庫的名稱,$releasever變量定義了發行版本,通常是5,6,7等數字。
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
這是指定鏡像服務器的地址列表,通常是開啟的。
baseurl通常有以下四種格式,如下:
baseurl= http://mirrors.aliyun.com/centos/6.6/os/x86_64/
使用http協議鏡像服務器地址
baseurl= ftp://ftp.sjtu.edu.cn/centos/6.6/os/x86_64/
使用ftp協議鏡像服務器地址
baseurl= rsync://mirror.zol.co.zw/centos/
使用rsync鏡像服務器地址
baseurl= file:///ilanni/yum/
使用本機的鏡像服務器地址
enabled=1
該選項表示在這個repo文件中啟用這個軟件源,默認該選項可以不寫。但是如果enabled的值為0,則表示禁用這個軟件源。
注意:一個repo文件中可以定義多個軟件源。
gpgcheck=1
該選項表示對通過該軟件源下載的rpm包進行gpg校驗,如果gpgcheck的值為0表示不進行gpg校驗。
gpgkey= file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
該選項定義用於校驗的gpg密鑰文件。
通過以上這個repo文件的說明,相信各位會覺得,其實centos的repo文件真是很簡單。有了一個初步的認識了之后,我們就可以進行下面的實驗了。
我們現在要求在內網搭建一個yum源。該yum源需要配置兩個源:一個是centos的光盤鏡像源,一個是特殊rpm軟件的鏡像源,並且該yum源是通過http進行訪問。
3、yum服務器端配置
3.1 配置web服務器
在yum服務器上,我們現在直接使用yum安裝apache。
3.2 安裝createrepo
reaterepo是什么?createrepo是linux下創建倉庫的軟件包。create是創建的意思,repo是repository的縮寫,是倉庫的意思。
只有安裝createrepo這個軟件,才能在yum服務器創建軟件倉庫。
createrepo的安裝很簡單,我們現在通過yum進行安裝,如下:
yum -y install createrepo
createrepo安裝完畢后,我們就可以創建repo倉庫了。
3.3 光盤鏡像
把本地下載的光盤鏡像復制到yum服務器上,如下:
創建光盤掛載的目錄,如下:
復制到光盤下的所有文件到/var/www/html/repl/目錄下,如下:
[root@android-55aba78065642f3d tmp]# cp -r /tmp/iso/ /var/www/html/repl
注意:在此我們沒有創建yum數據庫和信息索引文件,是因為光盤已經有yum數據庫和信息索引文件,我們不需要再通過createrepo命令在進行。其實yum的數據庫和信息索引文件,都在repodata文件夾下。
3.4 特殊軟件鏡像
在我們的網站目錄下新建一個repl目錄,並上傳一個cron的.rpm包放到目錄下。。
createrepo ./ 這一步非常重要,生成一個repodata文件
現在我們到服務器上查看一下剛剛上傳的cron
通過上圖我們可以很明顯的看到,目前該目錄是可以被正常訪問的。
以上的所有配置都是在yum服務器上進行的,現在我們來切換到yum客戶端上進行操作。
3.5 yum客戶端配置
yum客戶端的操作就簡單了很多,我們只需要修改客戶端的repo文件即可。
進入/etc/yum.repos.d/目錄,備份原有的repo文件,如下:
rename .repo .repo.bak *.repo
然后在該目錄下,創建一個新的repo文件corn.repo,內容如下:
-----------------------------------------------------------------------------------------
[centos7]
name=centos7
baseurl=http://服務器ip地址/yum/
enabled=1
gpgcheck=0
[ilanni]
name=ilanni
baseurl=http://192.168.139.135/repl/ #服務器網站目錄
enabled=1
gpgcheck=0
-----------------------------------------------------------------------------------------
注意:該文件名可以變,但是后綴一定是.repo。
repo文件修改完畢后,我們來進行相關測試。
直接yum安裝cron就可以。。。
注意:如果客戶端yum安裝軟件包時,提示找不到該軟件。強烈建議,在客戶端上執行yum clean all和yum list命令。
其中yum clean all表示清除yum源緩存,yum list表示列出所有的軟件包。
3.6 保存yum安裝的軟件包
在我們使用yum進行安裝軟件時,安裝完畢后會自動把軟件包刪除。
為了保存yum安裝的軟件包,我們需要修改yum的配置文件yum.conf,把keepcache修改為1即可。如下:
vi /etc/yum.conf
cachedir表示rpm包的緩存位置。
3.7 更新rpm包
在我們搭建完畢內網yum源后,會經常遇到這兩種情況。一是軟件版本的更新,二是新增軟件。
無論遇到以上那種情況,我們都需要先刪除原來的yum服務器的yum數據庫和信息索引文件,然后通過createrepo命令重新創建yum數據庫和信息索引文件。
在此我們以新增軟件為例,該軟件為corn。
如下:
--------------------------------------------------------------------------------------------------------------------------------------
cp /var/cache/yum/x86_64/7/base/yum-cron-3.2.29-81.el6.centos.noarch.rpm /var/www/html/repl
rm -fr /var/www/html/repl/repodata/
createrepo /var/www/html/repl/
--------------------------------------------------------------------------------------------------------------------------------------
現在我們再來切換到客戶端上進行操作,如下:
--------------------------------------------------------------------------------------------------------------------------------------
yum clean all
yum list |grep corn
yum -y install corn
--------------------------------------------------------------------------------------------------------------------------------------
4.更換yum源
1. 原來的yum源做備份
mv
/etc/yum
.repos.d
/CentOS-Base
.repo
/etc/yum
.repos.d
/CentOS-Base
.repo.bak
2. 下載新的yum源
•我用的vagrant centos 7 的box,默認沒有裝wget命令,yum源里也沒有wget包,下載下來替換
tips : 具體的linux版本及系統版本請自行選擇,當然,還有其他的源,選擇你自己喜歡的就可以了。
下載下來復制里面的內容
進入 INSERT 模式 : 剛開始學linux,直接在command 模式下粘貼,總是錯,新手注意下這個
或者wget直接下載
3. 更新列表,安裝軟件
--------------------------------------------------------------------------------------------------------------------------------------
yum clean all
yum makecache
--------------------------------------------------------------------------------------------------------------------------------------
轉自:https://blog.csdn.net/a1779078902/article/details/84670539