1. 程式人生 > >linux yum包管理工具

linux yum包管理工具

style 假設 eat too star lis baseurl mdb 啟動服務

yum 構成簡介

C/S架構:Client --> Server
         yum倉庫

            base庫:通常為系統發行版所提供的程序包
            updates庫:
            extra庫:
            epel庫:


                  數據:
                      各個rpm包;
                  元數據:
                      數據文件
                          包名、版本信息、各包所包含的文件列表、依賴關系、包分組信息

                          centos5: xml, centos6,
7: sqlite   createrepo: 制作yum倉庫元數據的工具   yum客戶端:

               指供repo配置文件,指明倉庫訪問路徑及各種屬性信息


               主配置文件(中心配置文件):/etc/yum.conf
               一個或幾個相關倉庫的配置信息可保存為一個文件,文件名都以.repo結尾:/etc/yum.repos.d/


               在.repo文件定義一個yum repo指向的格式:
                  [REPOID]
                  name=Some name for this repository
                  baseurl=file:///media/cdrom
                  ftp://172.16.0.1/pub/ftp/centos


                  Must be a URL to the directory where the yum repository‘s ‘repodata‘ directory lives
                  enabled={0|1}
                  gpgcheck={0|1}
                  gpgkey=URL


                  mirrorlist=URL to a file
                  mirrorlist Specifies a URL to a file containing a list of baseurls


                  cost={1..n}
                  默認為1000,指定訪問此倉庫的開銷

         安裝程序包
                     第一步:獲取倉庫元數據,緩存於本地:/var/cache/yum

                     第二步:安裝程序包:yum客戶端程序在本地分析元數據文件,並結合本地系統環境(已安裝的包)做出要安裝的程序包的決策

                     第三步:獲取程序包: 根據決策聯系Yum倉庫,下載各程序包緩存於本地後,一並進行安裝;

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

                    x-1.3.1
                    x-1.3.2, x-1.3.3, x-2.0.1

                    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"

            12、卸載包組
                yum groupremove "GROUP NAME"

            

          假設:從其它處獲得一個rpm包,如果此包依賴於其它包(在倉庫中),如何安裝?
            如果僅是單次安裝需要: yum install /path/to/packe_file

自建yum倉庫

自建提供yum倉庫的中心服務器 ftp, http, nfs

            http為例,創建步驟:
                (1) 安裝httpd程序,並啟動服務
                    # rpm -ivh httpd-
                    或者
                    # yum install httpd

                    啟動服務
                    # service httpd start
                    # chkconfig httpd on

                (2) httpd的文檔根目錄為/var/www/html:
                    創建子目錄,存放某相關的所有rpm包
                
                (3) 為倉庫生成元數據文件,以使能夠作為倉庫使用
                    # rpm -ivh createrepo-
                    或者
                    # yum install createrepo    

                    # createrepo /path/to/rpm_repo/    

                (4) 配置yum客戶端使用此倉庫即可

linux yum包管理工具