CentOS7下yum源的配置與使用

  Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。(bing 詞典)
php

 

    yum能夠檢測軟件間的依賴性,並提示用戶解決,將發佈的軟件放到yum server,而後分析這些軟件的依賴關係,而後將軟件相關性記錄成列表。當客戶端有軟件安裝請求時,yum客戶端在yum服務器上下載記錄列表,而後通 過列表信息與本機rpm數據庫已安裝軟件數據對比,明確軟件的依賴關係,可以判斷出那些軟件須要安裝。前端

    列表信息保存在yum客戶端的/var/cache/yum中,每次yum啓動都會經過校驗碼與yum服務器同步更新列表信息。git

    使用yum須要有yum repositories,用來存放軟件列表信息和軟件包。yum repositories能夠是http站點,ftp站點,本地站點。web

    路徑格式:sql

       ftp://hostname/PATH/TO/REPO   REPO指repodata所在路徑的父目錄
         http://hostname/PATH/TO/REPO  
         file:///PATH/TO/REPO     數據庫

 



yum配置vim

  •  /etc/yum.conf 全局配置,對全部倉庫都適用的配置centos

[root@localhost ~]# cat /etc/yum.conf 
[main]
#yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認設置爲/var/cache/yum
cachedir=/var/cache/yum/$basearch/$releasever
 
#安裝完成後是否保留軟件包,0爲不保留(默認爲0),1爲保留
keepcache=0
 
#Debug 信息輸出等級,範圍爲0-10,缺省爲2
debuglevel=2
 
#yum 日誌文件位置。用戶能夠到/var/log/yum.log 文件去查詢過去所作的更新。
logfile=/var/log/yum.log
 
#有1和0兩個選項,設置爲1,則yum 只會安裝和系統架構匹配的軟件包
exactarch=1
 
#容許更新陳舊的RPM包
obsoletes=1
 
#是否啓用插件,默認1爲容許,0表示不容許。
plugins=1
 
#容許保留多少個內核包
installonly_limit=5
 
#bug管理
bugtracker_url=
 
#指定一個軟件包,yum會根據這個包判斷你的發行版本,
#默認是redhat-release,也能夠是安裝的任何針對本身發行版的rpm包。
distroverpkg=centos-release
  • /etc/yum.repos.d/*.repo 一個文件一般用於一個或一組功能相近或相關的倉庫瀏覽器

[root@localhost yum.repos.d]# cat CentOS-Base.repo 
[base]
#[REPO_ID] 用於區別各個不一樣的repository,惟一性
 
 
name=CentOS-$releasever - Base name,
#name 是對repository的描述,支持像$releasever $basearch這樣的變量;
 
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#mirrorlist指定一個鏡像服務器的地址列表,將$releasever和$basearch替換成本身對應的版本和架構,
#例如10和i386,在瀏覽器中打開,咱們就能看到一長串鏡可用的鏡像服務器地址列表。
 
#baseurl=
 
enabled = 1 
#這個選項表示這個repo中定義的源是啓用的,0爲禁用 
 
gpgcheck=1
#啓用gpg的校驗,肯定rpm包的來源安全和完整性 0爲禁止
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#定義用於校驗的gpg密鑰
 
#cost=
#cost開銷,默認是1000,開銷越大,優先使用級越低。
.....

注意:[REPO_ID]中不能有空格,不然報錯緩存

 

定義倉庫指向可用變量:
     $releasever: 引用當前系統的主版本號;從[main]部分的distroverpkg獲取;

     $basearch: 當前系統的基本架構;i386, i486, i586, i686: i386

    例如:http://mirror.centos.org/centos/$releasever/os/$basearch/

示例:配置aliyun的yum源

[root@localhost yum.repos.d]# vim CentOS-aliyun.repo
  1 [aliyun]
  2 name=CentOS-$releasever-aliyun
  3 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
  4 enabled=1
  5 gpgcheck=1
  6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  
 #列出可用yum repository 發現阿里雲已經在列表中
 [root@localhost yum.repos.d]# yum repolist enabled
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.skyshe.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.pubyun.com
repo id                   repo name                            status
aliyun                    CentOS-7-aliyun                      8,652
base/7/x86_64             CentOS-7 - Base                      8,652
extras/7/x86_64           CentOS-7 - Extras                     181
updates/7/x86_64          CentOS-7 - Updates                   1,480

 


yum命令:

語法:yum [options] [command] [package ...]

選項:

安裝: install package1 [package2] [...]


[root@localhost ~]# yum install php

卸載:remove | erase package1 [package2] [...] 卸載指定包

 


[root@localhost ~]# yum remove php

           autoremove [package1] [...]   同時卸載相關依賴包

升級:update [package1] [package2] [...]

          check-update 檢測已安裝包的更新信息

#檢查已安裝包的可用更新
[root@localhost ~]# yum check-update
......
NetworkManager.x86_64           1:1.0.0-16.git20150121.b4ea599c.el7_1            updates
NetworkManager-adsl.x86_64      1:1.0.0-16.git20150121.b4ea599c.el7_1            updates
NetworkManager-libnm.x86_64     1:1.0.0-16.git20150121.b4ea599c.el7_1            updates
NetworkManager-tui.x86_64       1:1.0.0-16.git20150121.b4ea599c.el7_1            updates
bind-libs-lite.x86_64           32:9.9.4-18.el7_1.5                              updates
......
 
#更新指定包
[root@localhost ~]# yum update sqlite
#更新所有包
[root@localhost ~]# yum update

 從新安裝:reinstall package1 [package2] [...]

#從新安裝相同版本的軟件包
[root@localhost ~]# yum reinstall net-tools

降級安裝:downgrade package1 [package2] [...]


[root@localhost packages]# yum downgrade package

  

 查詢:info [...]

 

#查詢資源庫中指定包的相關信息
[root@localhost ~]# yum info php
......
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.4.16
Release     : 36.el7_1
Size        : 1.4 M
Repo        : updates/7/x86_64
Summary     : PHP scripting language for creating dynamic web sites
......
#查詢資源庫中全部能夠安裝或更新的rpm包的信息
[root@localhost ~]# yum info 
#查詢資源庫中全部能夠更新的rpm包的信息
[root@localhost ~]# yum info updates
#查詢已經安裝的全部的rpm包的信息
[root@localhost ~]# yum info installed
#列出已經安裝的可是不包含在資源庫中的rpm包的信息
[root@localhost ~]# yum info extras

rpm包列表:list [...]

#列出資源庫中全部能夠安裝或更新的rpm包
[root@localhost ~]# yum list 
#列出資源庫中特定的能夠安裝或更新以及已經安裝的rpm包
[root@localhost ~]# yum list zip
[root@localhost ~]# yum list zip*
#注:能夠在rpm包名中使用匹配符,如列出全部以zip開頭的rpm包
#列出資源庫中全部能夠更新的rpm包
[root@localhost ~]# yum list updates
#列出已經安裝的全部的rpm包
[root@localhost ~]# yum list installed
#列出已經安裝的可是不包含在資源庫中的rpm包
[root@localhost ~]# yum list extras

搜索rpm包:search string1 [string2] [...]

#搜索匹配特定字符的rpm包
#search KEYWORD
[root@localhost ~]# yum search php
#注:在rpm包名,包描述等中搜索
 
#搜索有包含特定文件名的rpm包
#provides /PATH/TO/SOMEFILE
[root@localhost ~]# yum provides php

 

 


清理緩存:clean [ packages | headers | metadata | expire-cache | rpmdb | plugins | all ]

 


#清除暫存中rpm包文件
[root@localhost ~]# yum clean packages
#清除暫存中rpm頭文件
[root@localhost ~]# yum clean headers
#清除暫存中包文件
[root@localhost ~]# yum clean metadata 
#清除暫存中過時數據
[root@localhost ~]# yum clean expire-cache

建立緩存:makecache [fast]


[root@localhost packages]# yum makecache

包組:groups [...]


#包組列表
[root@localhost packages]# yum grouplist
.......
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
 
#包組信息
[root@localhost packages]# yum group info  "Security Tools"
 
#安裝包組
[root@localhost packages]# yum group install  "Security Tools"
 
#卸載包組
[root@localhost packages]# yum group remove "Security Tools"

 


倉庫命令:

#repolist [all|enabled|disabled] 列出所有/可用/不可用倉庫
 
[root@localhost ~]# yum repolist enabled
......
repo id                                      repo name                                      status
aliyun/7/x86_64                              CentOS-7-aliyun                                8,652
base/7/x86_64                                CentOS-7 - Base                                8,652
extras/7/x86_64                              CentOS-7 - Extras                                181
updates/7/x86_64                             CentOS-7 - Updates                             1,480
repolist: 18,965
 
#repoinfo [all|enabled|disabled] 列出所有/可用/不可用倉庫信息
 
[root@localhost ~]# yum repoinfo enabled
......
Repo-id      : aliyun/7/x86_64
Repo-name    : CentOS-7-aliyun
Repo-revision: 1427842153
Repo-updated : Wed Apr  1 06:50:46 2015
Repo-pkgs    : 8,652
Repo-size    : 6.3 G
Repo-baseurl : http://mirrors.aliyun.com/centos/7/os/x86_64/
Repo-expire  : 21,600 second(s) (last: Thu Sep 17 09:22:44 2015)
Repo-filename: /etc/yum.repos.d/CentOS-aliyun.repo
......

 



使用光盤做爲本地庫:

    1 掛載光盤至某目錄

    2 定義倉庫,使用file:///指明訪問路徑

示例:


#掛載光盤
[root@localhost cdrom]# mount -r /dev/cdrom /mnt/cdrom/
 
#定義倉庫
[root@localhost yum.repos.d]# vim centos-local-ISO.repo 
[centos7-ISO]
name=centos-local-iso
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
cost=100
 
#查看可用repository
root@localhost yum.repos.d]# yum repolist enabled
......
repo id               repo name                                      status
centos7-ISO           centos-local-iso                                 325
aliyun/7/x86_64       CentOS-7-aliyun                                8,652
......

 

 


建立本地倉庫:
    1 安裝createrepo工具


[root@localhost ~]# yum install createrepo

    2  創建repository資源,創建header文件

#createrepo /PATH/TO/RPMFILES/
[root@localhost ~]# createrepo packages/
Spawning worker 0 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
 
#生成repodata文件  
[root@localhost ~]# ls packages/
2048-cli-0.9-4.git20141214.723738c.el7.x86_64.rpm      repodata
openstack-ceilometer-alarm-2014.2.2-1.fc22.noarch.rpm

     3 能夠在/etc/yum.repos.d目錄下定義本地repository

[root@localhost yum.repos.d]# cat local.repo 
[localrepo]
name=local-repo
baseurl=file:///root/packages
gpgcheck=0
enabled=1
相關文章
相關標籤/搜索