yum應用

yum歷史:  yellowdog update  modifier的縮寫

好處之一:可以自行解決linux下程序安裝時的依賴關係。

yum是 c/s架構


文件服務的服務器:ftp http NFS 本地文件

yum 通過一個配置文件可以獲取多個yum repo 的位置

   yum repo   數據:  程序包

yum      --------   yum repo   元數據 : repodata

repodata yum repo createrepo

yum 相對於rpm來說:

rpm爲基礎包管理器

yum則是rpm的前端工具

倉庫指向的路徑: repodata目錄所在的父目錄

    http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/

http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/(試驗教室倉庫)

yum 命令行工具:

配置文件:指向倉庫的位置以及相關的各種配置信息:每個yum命令行可以同時指向多個倉庫,倉庫間可以優先級等相關的配置:

有兩部分組成:

主配置文件: /etc/yum.conf

爲各倉庫指向提供公共配置文件:

各倉庫的定義:/etc/yum.repos.d/*.repo

directive(指令)=value(值)

注意:文件以.repo結尾;每個repo配置文件可以配置一至多個倉庫

[main]提供公共配置 


各倉庫配置

[repositoryid]

#對於當前系統的yum來講,此repositoryid用於唯一標識此repository指向,必須唯一.

name=

#當前倉庫描述信息

baseurl=url://path/to/repository/

#指明repository的訪問路徑,通常爲一個文件服務器上輸出的某repository。(指向多個路徑時:可以有多個但是:從第二行起,要空格,不要頂格寫)

        (mirrorlist效果和baseurl效果相似,不可以公用。mirrorlist可分析開銷選擇,選最小開銷的)


url:

ftp 服務

ftp://SERVER/PATH/TO/REPOSITORY(repodata的父目錄)

http 服務

http://SERVER/PATH/TO/REPOSITORY(repodata的父目錄)

nfs服務

nft://SERVER/PATH/TO/REPOSITORY(repodata的父目錄)

本地目錄

file:///PATH /TO /REPOSITORY(repodata的父目錄)


enabled={1|0}

此倉庫是否可被使用

gpgcheck={1|0}

是否對程序包做校驗

gpgkey=url://path/to/keyfile

指明gpgkey文件路徑(如果設置了gpgcheck=1.需要設置這項,不然無法檢測)

cost=#

指明當前repositor的訪問開銷。默認1000(優先級)

教室環境可用倉庫:

DVD1:http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/

DVD2:http://172.16.0.1/centos/6/extras/x86_64

epel:http://172.16.0.1/fedora-epel/6/x86_64


        新建倉庫緩存路徑    /var/cache/yum/


yum 命令

command is one of:

        * install package1 [package2] [...]

        * update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        *  distribution-synchronization [package1] [pack- age2] [...]

        * remove | erase package1 [package2] [...]

        * list [...]

        * info [...]

        *  provides  |  whatprovides  feature1  feature2] [...]

        *  clean  [  packages | metadata | expire-cache | rpmdb | plugins | all ]

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained  for  legacy  reasons  only  -  use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained  for  legacy  reasons  only  -  use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available |  group-*| nogroups* | grouplist | groupinfo ]

        * history   [info|list|packages-list|packages-

       info|summary|addon-info|redo|undo|roll-

       back|new|sync|stats]

        * load-transaction [txfile]

        * check

        * help [command]

    倉庫管理:

    yum repolist:列出已經配置的所有可用倉庫。

    repolist [all|enabled|disabled]

    緩存管理:

    yum clean:清理緩存

     clean  [  packages(包)| metadata(元數據) | expire-cache (過期緩存)| rpmdb(數據庫) | plugins (插件)| all ]

    makecache:緩存創建

    自動連接至每個可用倉庫,下載其下數據,將其創建爲緩存。

    程序包查看:

    yum list [all | glob_exp1] [glob_exp2] [.....]

    yum list{available(可安裝爲安裝)|updates(可升級)|installed|extras(未包含在倉庫中的)

    |obsoletes(可被廢棄)|recent(剛加入倉庫的)} [glob_exp1] [...]

    查看組:

    grouplist [hidden] [groupwildcard] [...]

    程序包安裝:

    yum install pachage1 [pachage2][...]

    只需要包名

    如果某個包在不同倉庫中有多個不同版本,默認會安裝最新版本。

    安裝指定版本 

        yum install PACKAGE-VERSION(版本名)(如果還有依賴關係。默認都安裝最新的版本,不然都需要指定新版本) 

    覆蓋安裝(重新安裝)

    yum  reinstall package1 [package2][...]

    程序包升級

    yum update [package1][package2][...]

    程序包降級

    yum downgrade package1 [package2][...]


    檢查有哪些升級可用:

    yum check-update(需要配置升級路徑,不然無法使用,依託於配置文件)


    卸載:yum 

    remove | erase package1 [package2] [...]


    所有依賴於正卸載的程序包的程序包  會被一併卸載。

    查詢:

    1.查詢程序相關簡要信息

    yum info [...]

    2.在包名和sumary信息中搜索指定關鍵字:

        yum search KEYWORD 

    3.查詢指定文件由哪個程序安裝生成:

    yum provides|whatprovides /PATH/TO/SOMEFILE

    安裝本地程序包文件:

    yum localinstall rpmfile1 [rpmfile2][...](R7版本中也忽視了。直接 install就可以了)

    用於安裝倉庫中並不存在的程序包文件,這些程序包有可能又依賴於倉庫中的某些程序包.

        yum localupdate(升級) 

    包組管理:

        需要引用有空格的組名是用“”  不然會解釋成多個組

    列出所有包組詳情:yum grouplist 

    顯示指定包組詳情  yum  groupinfo group1 [....]

    安裝: yum groupinstall group1 [....]

    卸載:yum groupremove group1 [....]

    升級:yum groupupdate  group1[....]


    R7 版本中可直接用 install ,remove或update來管理包組。

     @GROUP_NAME(在組名前+@.組名中有空格+"GROUP_NAME")

     以安裝包組“Server Platform Development"爲例:

     yum install @"Server Platform Development"


    yum 命令的可用選項

    -y : 自動回答爲:yes

    --disablerepo= 臨時禁用在配置文件中配置並啓用的某repository

    --enablerepo=  臨時啓用指定的某repo

    --nogpgcheck  禁止做包校驗


yum有內置變量:用於保存當前平臺的相關信息。

   (1)$raleasever:當前OS發行版的主版本號

例如:對CentOS 6.6 x86_64: 主版本號爲:6

(2)$arch :平臺

i386  i486

(3)$basharch:基礎平臺,例如i686,i586,及i386的基礎平臺同爲i386

(4)$YUM0-$YUM9

例如:

baseurl=http://repo.magedu.com/centos/$releasever/$basearch

當前的系統爲 CentOS 6.6 x86_64

$releasever :6  $basearch:x86_64

%%%%%%%% (鏈接法則: 6.0 6.1   ln 6 6.0)%%%%%%%%%


利用光盤使用yum 

1:掛載光盤:mount -o ro -t iso9660 /dev/dvd /media/repo

    (如果mount-point(/media/repo)沒有要先創建:此目錄下不要創建別的文件了,不然掛載後讀不出來)

2:創建yum倉庫: 先移除原來的yum倉庫

進入 /etc/yum.repos.d     mv test.repo  test.repo.bak

3: yum repolist 查看是否移除

4:重新配置 yum倉庫(vim test.repo   這裏後綴名必須  .repo路徑要在

        /etc/yum.repos.d下面)

#cd /etc/yum.repos.d

# vim sr0.repo

[dvdrepo]([repositoryid]是唯一的重名,讀取會出錯)

name=CentOS 6.6 X86_64 dvd1(這個是相關的描述信息便於查找理解)

baseurl=file:///media/repo(///追後一個/表示路徑)

enabled=1(是否可以加載)

gpgcheck=0(是否校驗)

5.測試: 

# yum repolist(查看是否建倉成功)

# yum install -y php(查看是否倉庫可以用)

自己創建yum倉庫:

    (1)基於發行版安裝樹安裝createrepo 程序(這個命令作用:創建repodata元數據)

        #yum install createrepo

    (2)創建文件用於存放軟件包文件

        #mkdir -pv /var/yum/xen

    (3)安裝ftp 服務用於獲取文件存放並存放到/var/yum/xen下

        #yum install lftp(安裝服務)

        #cd /var/yum/xen

        #lftp 172.16.0.1/pub/Sources/6.x86_64/xen-4.1/(連接到ftp服務器)

        #mget *.rpm(下載所有的關於xen的.rpm包)

    (4)基於剛纔下載的文件構建yum倉庫所需的repodata 元數據

        #createrepo /var/yum/xen

        (查看效果

        [root@localhost xen]# pwd

        /var/yum/xen

        [root@localhost xen]# ls                                 

        xen-ocaml-4.1.3-2.el6.x86_64.rpm

        repodata  )

    (5)配置本地文件連接到yum倉庫

        #cd /etc/yum.repos.d

        #vim test.repo

        [xenlocal]

        name=xen loacl /var/yum/xen

        baseurl=file:///var/yum/xen

        gpgcheck=0

        enbaled=1

    (6)查看是否構建成功

        #yum repolist

        repo id                repo name                     status

        xenlocal               xen loacl /var/yum/xen                  41







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章