【Linux】yum命令


1 yum簡介

yum是通過分析RPM(程序包管理器)的標頭數據後,根據各軟件的依賴關係製作出有依賴關係的解決方案,然後可以自動處理軟件的依賴性關係問題,以解決軟件安裝或移除或升級的問題。

由於發行版必須要先釋出軟件,然後將軟件放置於yum服務器上面,以提供用戶端來安裝與升級。因此我們想要使用yum的功能時,必須要找到適合的yum server才行。而每個yum server可能都會提供許多不同的軟件功能,yum server會根據功能進行分類,這裏的分類就是所謂的倉庫,因此,你必須要前往yum server查詢到相關的倉庫網址後(倉庫指向的路徑:repodata目錄所在的父目錄),再繼續處理後續的配置事宜。

事實上CentOS在釋出軟件時已經製作出鏡像網站提供全世界的軟件升級之用。所以,理論上我們不需要處理任何配置值,只要能夠連上Internet,就可以使用yum,接下來我們就來談談yum的使用。


2 yum配置文件

yum本身也有配置文件,主要指向倉庫的位置以及相關的各種配置信息:每個yum命令行可以指向多個倉庫,倉庫間含有優先級等相關的配置,配置文件有兩部分組成:
1.主配置文件:/etc/yum.conf,爲各倉庫指向提供公共配置文件;
2.各倉庫的定義:/etc/yum.repos.d/*.repo

directive=VALUE
注意:文件以.repo結尾;每個repo配置文件中可以配置一個或多個倉庫;
[main]:提供公共配置信息
各倉庫配置
[repositoryid] #對於當前系統的yum來講,此repositoryid用於唯一標識此repository指向,因此,其必須唯一;
name= #當前倉庫描述信息;
baseurl=url:/path/to/repository/
#指明repository的訪問路徑;通常爲一個文件服務器上輸出的某repository;
#url支持的類型:
	ftp服務:ftp://SERVER/PATH/TO/REPOSITY
	http服務:http://SERVER/PATH/TO/REPOSITY
	本地目錄:file://PATH/TO/REPOSITY
enabled={1|0} #此倉庫是否可被使用
gpgcheck={1|0} #是否對程序包做校驗
gpgkey=url://PATH/TO/KEYFILE #指明gpgkey文件路徑
cost= #指明當前repository的訪問開銷,默認爲1000

3 yum命令使用

yum命令的使用:yum [options] [command] [package…]

程序包安裝:
	yum install package1 [package2] [...]
	
程序包覆蓋安裝:
	yum reinstall package1 [package2] [...]
	
程序包降級:
	yum downgrade package1 [package2] [...]
	
檢查有哪些升級可用:
	yum check-update
	
程序包升級:
	yum update [package1] [package2] [...]
	yum update-to [package1] [package2] [...]
	yum upgrade [package1] [package2] [...]
	yum upgrade-to [package1] [package2] [...]

程序包卸載:所有依賴於正卸載的程序包的程序包會被一併卸載
	yum remove  | erase package1 [package2] [...]
	
查詢程序的相關簡要信息:	
	yum info [...]

在包名和summar信息中搜索指定的關鍵字:
	yum search string1 [string2] [...]

查詢指定文件由哪個程序包安裝生成:
	yum provides | whatprovides feature1 [feature2] [...]

yum緩存管理:
	yum clean:清理緩存
	yum clean [packages | metadata | expire-cache | rpmdb | plugins | all]
	yum makecache:緩存創建,自動創建鏈接至每一個可用倉庫,下載其無數據,將其創建爲緩存。
	
程序包查看:
	yum list [all | glob_exp1] [glob_exp2] [...]
	yum grouplist [hidden] [groupwildcard] [...]
	
包組管理:
	列出所有包組:yum grouplist
	顯示指定包組詳情:yum groupinfo group1 [...]
	安裝:yum groupinstall group1 [group2] [...]
	卸載:yum groupremove group1 [group2] [...]
	升級:groupupdate group1 [group2] [...]
	
安裝或升級本地的程序包文件:用於安裝或升級倉庫中並不存在的程序包文件,這些程序包有可能又依賴於倉庫中的某些程序包。
	yum localinstall rpmfile1 [rpmfile2] [...]
	yum localupdate rpmfile1 [rpmfile2] [...]

yum倉庫管理:
	yum repolist:列出已經配置的所有可用倉庫
	yum repolist [all | enabled | disabled]
	
其他:	
	version [all | installed | available | group-* | nogroup* | grouplist | groupinfo]
	history [info | list | package-list | package-info | summary | addon-info | redo | undo | rollback | new | sync | stats]
	load-transaction [txfile]
	check
	help [command]
	distribution-synchronization [package1] [package2] [...]
	shell [filename]
	resolvedep dep1 [dep2] [...]
	deplist package1 [package2] [...]

4 製作本地yum源

使用本地yum源有兩種方式:第一直接使用光盤鏡像,不過此種方法僅限於本機使用;第二種創建本地yum倉庫,然後使用http或者ftp等方式向外部提供yum repository。

第一種:如何使用發行版光盤作爲yum repository
1、掛載光盤到指定掛載點,如/media/cdrom
2、新建yum repo配置文件,類似如下:
[dvbase]
name=CentOS 6.6 X86_64 on dvd1
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1

第二種:創建本地yum倉庫
如果你作爲一個企業的管理員,爲了方便公司內部網絡中的服務器安裝軟件,同時也節省網絡寬帶,此時就可以在公司內部創建一個yum倉庫,那如何去創建一個yum倉庫呢?通過以下步驟可快捷的創建一個yum倉庫。具體操作如下:

  1. 在基於發行版安裝樹安裝createrepo程序包;
  2. 確定repository輸出方式:
    (1)本地輸出:提供一個放置rpm包的本地路徑;以file的形式
    (2)網絡輸出:提供一個文件服務器,配置好ftp服務或http服務;
    ftp服務:
      安裝程序包:vsftpd
      文件存放路徑:/var/ftp/pub
      啓動服務:service vsftpd start
    http服務:
      安裝程序包:httpd
      文件存放路徑:/var/www/html
      啓動服務:service httpd start
    注意:確保防火牆服務關閉
  3. 在準備好的目錄中放置rpm程序包文件:可以通過cp命令 將光盤中的程序包拷貝到以上輸出目錄當中。
  4. 對此目錄運行createrepo命令即可:cd到以上輸出目錄執行createrepo命令即可。

測試所創建的yum倉庫是否可用

  1. 在測試機/etc/yum.repos.d/目錄下創建一個以repo結尾的文件,如my.repo,內容如下:
    [my]
      name=my
      baseurl=http://<repos_host>//Packages
      enabled=1
      gpgcheck=0
      priority=1
    這裏以http爲例,其中<repos_host>是YUM源的機器名或IP地址,Package爲http發佈目錄下的軟件包目錄。
  2. 在測試機上更新本地yum緩存
      清理緩存:yum clean all
      創建緩存:yum makecache
  3. 查詢新的yum倉庫內容
      yum list all
  4. 安裝應用
      yum install vsftpd
    更新應用具體步驟爲:刪除舊的rpm包,將新版本的rpm包cp到倉庫目錄,然後重新執行createrepo命令,在客戶端執行yum update PACKAGE_NAME命令即可。

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