yum函數介紹以及自建yum倉庫

一、前言

    在之前介紹了yum的配置(詳細請移步 http://www.www58058.com/archives/6445)。但是有沒有發現一個問題,雖然我們已將倉庫指向一個可用的倉庫服務器,但是隨著Linux的不斷升級和改版,我們是否還需要不斷的去修改倉庫的配置文件,如果只有一臺還好,那如果我們有多臺Linux系統,那么修改工作量將會很大,那么我們要怎么保證自己的倉庫永遠指向的是最新的倉庫呢? 這就是yum函數的魅力。


二、yum函數介紹

    在RPM介紹(詳細請移步 http://www.www58058.com/archives/6383 )中我們介紹2個國內比較有名的RPM包下載路徑(mirrors.163.com 和mirrors.sohu.com),其中會有一個特殊文件夾路徑,這為理解yum函數很重要,下面用 mirrors.163.com ,以CentOS6系統為例介紹

   倉庫 6.png4.png

讓我們查看yum倉庫中的“CentOS-Base.repo”中的文件

5.png

其中畫了紅色框框的就是yum的函數

    $releaserver:代表系統的版本,對Yum而言指的是redhat-releaser版本,指向發行版的主版本號;只替換為主版本號,如RedHat 6.5 ,則替換為6

    $basearch:系統基本架構,如果是i686,i586等基本架構就為i386

    $arch:系統架構

#比如我現在的系統是CentOS6.5,系統架構是x86_64,則
#baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 會自動替換為 baseurl=http://mirrors.163.com/centos/6/os/x86_64/


三、如何自建yum倉庫

    3.1、引言:

        雖然系統自帶的倉庫已經很常用,只要連接到互聯網我們就能很容易有獲取到互聯網的yum倉庫。但是如果是在企業內網,企業內部不允許訪問互聯網,又或者如果企業服務器眾多,如果都要從互聯網去獲取yum倉庫,那將很占用帶寬?;谶@種情況,我們就需要自己在企業內部創建yum倉庫。

    3.2、自建倉庫需要使用的命令介紹

        createrepo(create repo):創建倉庫,在自建倉庫時,使用命令createrepo會自動幫我們生成repodata文件作為軟件的倉庫,而其目錄下有四個必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出現的找不到repodata目錄或文件的錯誤的原因通常有三個:一是路徑問題;二是沒有生成repodate目錄;三是*.repo配置文件沖突(這個需要特意注意)。

小貼士createrepo命令默認是沒有安裝,所以我們需要提前安裝,createrepo的安裝包為“createrepo-0.9.9-17.el6.noarch.rpm”,可以使用RPM或yum先將此程序包安裝。

#安裝方法:
#yum -y install createrepo 或 rpm -ivh createrepo-0.9.9-17.el6.noarch.rpm (路徑一定要寫對)

    3.3、自建yum倉庫有2種方法

        1)、基于關盤鏡像創建yum倉庫

        2)、根據服務自建提供yum倉庫的服務器(ftp、http、nfs)

    3.4、基于關盤鏡像創建yum倉庫

        3.4.1、先將光盤掛載至/mnt目錄下

            mount /dev/cdrom /mnt

        3.4.2、配置yum倉庫文件(詳細方法請移步查閱 http://www.www58058.com/archives/6445)

[root@www yum.repos.d]# vim /etc/yum.repos.d/local-media.repo  #如果local-media.repo不存在,請直接創建
[Meida-repo]
name=This is Local media repo
baseurl=           #指向光盤鏡像路徑
enabled=1                     #是否啟動該倉庫
gpgcheck=0                    #是否檢查包完整性
[root@www yum.repos.d]# yum clean all   #清除所有的包緩存和元數據
[root@www yum.repos.d]# yum list        #列出所有的倉庫和程序包

倉庫1.png

倉庫2.png

    3.5、根據服務自建提供yum倉庫的服務器(這里以http服務為例)

        3.5.1、首先安裝http服務

                yum -y install httpd 或 rpm -ivh httpd

        3.5.2、關閉Linux防火墻和Selinux

#防火墻和Selinux可能會影響用戶訪問HTTP,所以這里需要將其禁用
[root@www yum.repos.d]# service iptables stop    #關閉防火墻服務
[root@localhost ~]# chkconfig iptables off       #關閉防火墻自動啟動
[root@www yum.repos.d]# getenforce               #查看Selinux狀態 Enforcing表示啟用 Permissive表示不啟用
Enforcing
[root@www yum.repos.d]# setenforce 0             #關閉Selinux  0表示關閉 1表示開啟
[root@www yum.repos.d]# getenforce               
Permissive                                
[root@localhost ~]# vim /etc/selinux/config     #關閉Selinux開機啟動,編輯confg文件,將其中SELINUX字段改為如下設置    
        SELINUX=disabled

        3.5.3、啟動httpd服務和開機自動服務

[root@www yum.repos.d]# service httpd start   #開啟httpd服務
[root@www yum.repos.d]# chkconfig on          #設置httpd服務開機自動啟動
[root@localhost ~]# netstat -tunlp | grep http  #查看http服務是否已啟用
tcp        0      0 :::80                       :::*                        LISTEN      1532/httpd

        3.5.4、編輯httpd的文檔目錄

#httpd默認的目錄文檔路徑為/var/www/html

[root@localhost html]# mkdir /var/www/html/rpm-repo   #創建倉庫路徑

[root@localhost rpm-repo]# cp -a /mnt/Packages/xcb* /var/www/html/rpm-repo/   #拷貝RPM程序包為測試使用

        3.5.5、使用createrepo配置yum倉庫

[root@localhost rpm-repo]# createrepo /var/www/html/rpm-repo/

create.png

1.png

blob.png

        3.5.6、驗證和查看http倉庫的文件

2.png

        3.5.7、配置和驗證yum倉庫

[root@localhost yum.repos.d]# vim /etc/yum.repos.d/local.repo   #編輯yum倉庫文件,讓倉庫路徑指向http的yum倉庫
[http-repo]
name=http yum repo
baseurl=http://192.168.80.150/rpm-repo
enabled=1
gpgcheck=0
[root@localhost ~]# yum list

3.png

實驗完成!

小貼士:之前有介紹過yum的函數,有興趣的話可以在這個實驗中也嘗試使用yum函數調用倉庫,熟悉使用yum倉庫對日后工作有很大幫助。

 

原創文章,作者:螃蟹,如若轉載,請注明出處:http://www.www58058.com/6510

(0)
螃蟹螃蟹
上一篇 2015-07-24
下一篇 2015-07-24

相關推薦

  • 制作本地yum源與編譯安裝http

    1、制作本地yum源(centos7) [root@centos7 ~]# yum install -y lftp   #安裝lftp程序 lftp 10.1.0.1:~> cd pub/Sources/sources/xen/ &n…

    Linux干貨 2016-08-25
  • 網絡班N22期第五周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@bogon ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&nb…

    Linux干貨 2016-09-15
  • Linux文件權限管理及目錄文件的深入理解。

    文件權限及目錄 初學Linux,感覺這個東西該復雜,而且邏輯非常的強。難~! 自己根據學習到的理論和實踐,得出的對文件權限,進程,以及特殊權限的深入理解。希望能解決初學者對于權限的困惑。如有錯誤請指正。 文件的權限,指定的是什么? 是文件的權限位上的權限,針對三類用戶,任何用戶都必須是三類用戶中的一種,屬主屬組和其他人的權限rwx   &…

    Linux干貨 2016-08-10
  • shell腳本編程之數組

       數組就是相同數據類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區分他們的變量的集合,這個名字稱為數組名,編號稱為下標。組成數組的各個變量稱為數組的元素。數組是在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來的一種形式。 一、數組的表示方式   1、下標數組 &…

    Linux干貨 2016-01-05
  • 馬哥教育網絡班22期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@director2 ~]# cp -a /etc/skel /home/tuser1   &n…

    Linux干貨 2016-08-29
  • Linux系統啟動流程、內核及模塊管理、linux啟動故障排除和自制linux

    Linux系統啟動流程、內核及模塊管理 Linux系統的組成部分組成:內核+根文件系統(kernel+rootfs)內核(kernel): 進程管理(創建、調度、銷毀等)、內存管理、網絡管理(網絡協議棧)、驅動程序、文件系統、安全功能IPC:Inter Process Communication機制本地進程間通信機制:消息隊列、semerphor、shm(共…

    2016-09-29
欧美性久久久久