天天看點

CentOS Yum 軟體包管理

yum 簡介

Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。

yum 安裝:

系統預設是安裝了yum的,是以無需安裝。

CentOS Yum 軟體包管理

如果朋友們系統有未安裝yum的,請自行挂載CD光牒安裝,

yum的基礎安裝包如下,其他的安裝包根據自己需要進行安裝,安裝過程不再示範;

CentOS Yum 軟體包管理

yum配置:

yum的配置檔案分為兩部分:main和repositoy

    · man部分定義了全局配置選項,整個yum配置檔案應該隻有一個main,位于 /etc/yum.conf 中;

    · repository 部分定義了每個源/伺服器的具體配置,可以有一到多個。位于 /etc/yum.repo.d 目錄下的各個檔案中

    [main]

    cachedir=/var/cache/yum/$basearch/$releasever

        //yum 緩存的目錄,yum在此存儲下載下傳的rpm包和資料庫,預設設定為/var/cache/yum

    keepcache=0

        //安裝完成後是否保留軟體包,0為不保留(預設為0),1為保留

    debuglevel=2

        //Debug 資訊輸出登機,範圍為0-10,預設為2

    logfile=/var/log/yum.log

        //yum 日志檔案位置。使用者可以到/var/log/yum.log 檔案中去查詢過去所做的更新

    exactarch=1

        //有1和0兩個選項,設定為1,則yum隻會安裝和系統架構比對的軟體包,例如,yum不會将i686的軟體包安裝在适合i386的系統中。預設為1。

    obsoletes=1

        //這是一個update的參數,具體請閱讀yum(8),簡單的說就是相當于upgrade,允許更新陳舊的PRM包。

    gpgcheck=1

        //gpgcheck是gpg驗證是否開啟的選項,1是開啟,0是不開啟,一般情況可以關掉.

    plugins=0

        //是否啟用插件,預設1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。

    installonly_limit=5

        //允許保留多少個核心,預設為5

    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

    distroverpkg=centos-release

        //指定一個軟體包,yum會根據這個包判斷你的發型版本,預設是centos-release,也可以是安裝的任何針對自己發行版的rpm包。

    #  This is the default, if you make this bigger yum won't see if the metadata

    # is newer on the remote and so you'll "gain" the bandwidth of not having to

    # download the new metadata and "pay" for it by yum not having correct

    # information.

    #  It is esp. important, to have correct metadata, for distributions like

    # Fedora which don't keep old packages around. If you don't like this checking

    # interupting your command line usage, it's much better to have something

    # manually check the metadata once an hour (yum-updatesd will do this).

    # metadata_expire=90m

    # PUT YOUR REPOS HERE OR IN separate files named file.repo

    # in /etc/yum.repos.d

除了上面之外,還有一些可以添加的選項,如:  

    exclude=selinux*  

    //排除某些軟體在更新名單之外,可以用通配符,清單中各個項目要用空格隔開,這個對于安裝了諸如美化包,中文更新檔的朋友特别有用。

    //有1和0兩個選擇,分别代表是否進行gpg(GNU Private Guard)校驗,以确定rpm包的來源是有效的和安全的。這個選項如果設定在[main]部分,則對每個repository都有效。預設值為0。

配置本地yum源:

1、挂載CD光牒(挂載請參考:http://ssc4469.blog.51cto.com/6315913/1602717)這裡不做解釋;

2、本地yum源位于 /etc/yum.repos.d/

    [root@mage 10.19.166.23 /etc/yum.repos.d ] 

    # ls -l /etc/yum.repos.d/

    total 20

    -rw-r--r--. 1 root root 1926 Jan 19 05:36 CentOS-Base.repo

    -rw-r--r--. 1 root root  638 Jan 19 05:36 CentOS-Debuginfo.repo

    -rw-r--r--. 1 root root  630 Jan 19 05:36 CentOS-Media.repo

    -rw-r--r--. 1 root root 3664 Jan 19 05:36 CentOS-Vault.repo

    CentOS-Base.repo 是yum網絡源的配置檔案

    CentOS-Media.repo 是yum本地源的配置檔案

修改CentOS-Media.repo

    # vim CentOS-Media.repo

    # CentOS-Media.repo

    #

    #  This repo can be used with mounted DVD media, verify the mount point for

    #  CentOS-6.  You can use this repo and yum to install items directly off the

    #  DVD ISO that we release.

    # To use this repo, put in your DVD and use it with the other repos too:

    #  yum --enablerepo=c6-media [command]

    #  

    # or for ONLY the media repo, do this:

    #  yum --disablerepo=\* --enablerepo=c6-media [command]

    [c6-media]

    name=CentOS-$releasever - Media

    baseurl=file:///media/CentOS/

            file:///media/cdrom/

            file:///media/cdrecorder/

    enabled=0

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

在baseurl中修改第2個路徑,注(此路徑為CD光牒的挂載點路徑,下面是我的挂載路徑,朋友根據自己路徑進行更改)

CentOS Yum 軟體包管理

将enabled=0改為1

3、禁用預設的yum網絡源方式:

(1)将預設的yum源改名;

(2)将預設的yum源備份放置其他目錄;

注意:如果預設有CentOS-Base.repo系統會自動有限使用網絡源進行尋找合适的包

4、執行,yum install postgresql

自建網絡yum源配置:(由于時間關系,簡寫了,雖然簡寫,按照步棸執行絕對能配置成功)

1、yum install httpd (安裝Apache軟體包,同理也可以使用nginx)

2、進入預設的Apache路徑,建立yum源目錄分類名;我這裡建立了rpmpackage,實際上示範圖省事,把cdrom的包copy過來了。

    # cd /var/www/html/rpmpackage

3、安裝createrepo軟體包

    # yum install createrepo

執行createrepo

    # creataerepo /var/www/html/rpmpackage

    在/var/www/html/rpmpackage目錄下會自動生成repodata目錄,repodata目錄裡是一個資料庫,其中的檔案主要是XML格式,描述了一個rpm包的詳細資訊,如依賴關系,包含檔案,校驗碼資訊。

4、修改apache預設配置

vim /etc/httpd/conf/httpd.conf

在最後加入:     

    NameVirtualHost *:80

    <VirtualHost *:80>

       DocumentRoot /home/yum

       ServerName XXX.XXX.XXX #填寫綁定的域名

       <Directory "/home/yum">

            Options Indexes FollowSymlinks

       </Directory>

    </VirtualHost>

5、重新開機apache

    兩種方式

    (1)# /etc/init.d/httpd restart

    (2)# service httpd restart

顯示如下:

CentOS Yum 軟體包管理

6、配置用戶端的yum源配置檔案

    (1)清空用戶端預設/etc/yum.repos.d/目錄下的源檔案

    (2)建立 

    # vim local-media.repo 

CentOS Yum 軟體包管理

說明:

    [test]:是repo id。

    name:倉庫的描述。

    baseurl:倉庫的位置。

    enabled:是否啟用這個倉庫,1為起用,0為禁用。

    gpgcheck:是否檢查gpg簽名,1為檢查,0為不檢查。

    (XXX.XXX.XXX是綁定的域名)

    注:如果是内部使用,gpgcheck可以設定為0(同時gpgkey也不用設定),如果更新源放在公網上的話還是需要檢查gpg簽名,保證用戶端得到來源的可靠性。

(3)清理緩存

    # yum clean all

(4)檢視yum包

    # yum listall

##########################結束~~

    yum用戶端指令的使用:

    1、列出所有可用repo

        yum repolist {enabled|disabled|all}

    2、列出rpm包

        yum list {all|installed|available} 

        yum list KEYWORD*

    3、包的描述資訊

        yum info package_name

    4、列出所有的包組資訊

        yum grouplist

    5、顯示包組的資訊:例如組中包含的程式包清單

        yum groupinfo "GROUP NAME"

        CentOS6 跟開發相關的包組:

        Development Tools

        Server Platform Development

        Desktop Platform Development

    6、清理緩存

        yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}

    7、安裝程式包

        yum install package_name

        重新安裝:

        yum reinstall package_name

    8、更新

        yum check-update: 檢查可用的更新包     

        yum update package_name     

        yum update x-1.3.2     

        yum downgrade package_name

    9、解除安裝

        yum remove|erase package_name

    10、查詢某檔案是由哪個包安裝生成的

        yum whatprovides|provides /path/to/somefile

    11、安裝包組

        yum groupinstall "GROUP NAME"

繼續閱讀