搭建局域网YUM源
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。
[root@android-55aba78065642f3d ~]# yum install -y httpd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 8.3 kB 00:00:00 * base: mirror.vpshosting.com.hk* epel: mirrors.aliyun.com* extras: mirror.vpshosting.com.hk* updates: mirror.vpshosting.com.hk?
3.2?安裝createrepo
reaterepo是什么?createrepo是linux下創建倉庫的軟件包。create是創建的意思,repo是repository的縮寫,是倉庫的意思。
只有安裝createrepo這個軟件,才能在yum服務器創建軟件倉庫。
createrepo的安裝很簡單,我們現在通過yum進行安裝,如下:
yum -y install createrepo
[root@android-55aba78065642f3d ~]# yum -y install createrepo Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile* base: mirror.vpshosting.com.hk* epel: mirror.pregi.net* extras: mirror.vpshosting.com.hk* updates: mirror.vpshosting.com.hk Resolving Dependencies --> Running transaction check ........................................................................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包放到目錄下。。
[root@android-55aba78065642f3d ~]# mkdir /var/www/html/repl/ [root@android-55aba78065642f3d ~]# cd /var/www/html/repl/ [root@android-55aba78065642f3d repl]# ls yum-cron-3.2.29-81.el6.centos.noarch.rpmcreaterepo ./ 這一步非常重要,生成一個repodata文件
[root@android-55aba78065642f3d repl]# createrepo ./ Spawning worker 0 with 1 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@android-55aba78065642f3d repl]# ls /var/www/html/repl repodata ?yum-cron-3.2.29-81.el6.centos.noarch.rpm現在我們到服務器上查看一下剛剛上傳的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源做備份
| 1 | 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包,下載下來替換
| 1 | vim /etc/yum.repos.d/CentOS-Base.repo |
阿里yum源
tips : 具體的linux版本及系統版本請自行選擇,當然,還有其他的源,選擇你自己喜歡的就可以了。
?下載下來復制里面的內容
進入 INSERT 模式 : 剛開始學linux,直接在command 模式下粘貼,總是錯,新手注意下這個
或者wget直接下載
| 1 | wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
3. 更新列表,安裝軟件
| 1 2 | yum clean all yum makecache |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
- 上一篇: 微信公众号新变动!你都发现了吗?
- 下一篇: 2017暴雪php,动视暴雪2017Q4