yum筆記

1.1 語法:

yum [options] [command] [package ...]

1.2 描述:

yum 是一個交互式的,基於rpm包的管理工具。它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

1.3 選項

-h:顯示幫助信息;

-y:對所有的提問都回答“yes“。 常用

-c:指定配置文件;

-q:安靜模式;

-v:詳細模式;

-d:設置調試等級(0-10);

-e:設置錯誤等級(0-10);

-R:設置yum處理一個命令的最大等待時間;

-C:完全從緩存中運行,而不去下載或者更新任何頭文件。 

1.4 命令:

install用來安裝最新版本的軟件包或組,並且會自動安裝所需的依賴軟件包。

update:如果沒有指定軟件包名稱,則會升級已經安裝的所有軟件到最新版本。如果指定了軟件包,則只升級指定的軟件包。

update-to:類似於update命令,但需要指定升級後的版本號。

check-update:用於檢查軟件包可用的最新版本。如果不指定軟件包,則列出所有本地以及安裝的軟件可用升級版本。

upgrade:類似於update,當yum.conf文件中的obsoletes=1時,update和upgrade參數意思相同。當然,從本質上講,update,是修補bug,或功能少量增加。而upgrade一般是是大的版本不同。改變比較大。要搞清楚其中不同。

upgrade-to:類似於update-to。

distribution-synchronization or distro-sync:把本地的軟件版本變成和yum源上最新的版本一直。可能升級也可能降級。關鍵看你本地已安裝軟件版本和yum源上版本。最軟件包組不生效。

remove or erase:刪除指定的軟件包。已經依賴當前軟件的其他軟件。

list:用來顯示軟件包的各種信息。內容簡單了點。想要複雜內容,查看後面的list命令的選項。

# yum list iftop

iftop.x86_64                                1.0-0.14.pre4.el6                                @epel

info顯示軟件包各種信息。常用

provides or whatprovides :該命令輸出內容包含在info命令中。

search:強大的命令,用於在yum源中搜索目標軟件包。使用頻率更高

clean:清楚緩存。還有特定的選項。查看後面的《CLEAN OPTIONS》部分

makecache: 下載header和元數據到本地。下次安裝軟件時,就會搜索本地的元數據。默認緩存時間是6小時,即6h。

#yum makeache

Loaded plugins: fastestmirror

Determining fastest mirrors

epel/metalink

* elrepo: mirrors.tuna.tsinghua.edu.cn

* epel: mirrors.ustc.edu.cn

base

base/group_gz

base/filelists_db

base/other_db

epel

epel/filelists_db

epel/updateinfo

epel/primary_db

epel/other_db

Metadata Cache Created

groupinstall:安裝軟件包組。

groupupdate:更新軟件包組。

grouplist: 顯示所有的可用軟件包組。

groupremove: 刪除軟件包組。

groupinfo:顯示軟件包組信息。

shell :把安裝命令放到文件中。通過shell命令調用該文件。

resolvedep:顯示指定軟件包的依賴。但好像不全。只能顯示一個依賴軟件包。

localinstall:用於安裝本地的一組rpm文件。如果需要,會調用倉庫依賴關鍵庫。前提是你要把相關rpm文件都下載好,否則無法安裝。

localupdate:用於升級本地rpm文件。

reinstall:先檢查指定軟件包的完整性。如果發生問題才重新安裝

downgrade:降級

deplist:顯示軟件包依賴關係,比resolvedep詳細多了。

repolist:顯示所有的yum源:

# yum repolist

repo id               repo name                                                             status

base                  CentOS-6 - Base - 163.com                                              6,706

elrepo                ELRepo.org Community Enterprise Linux Repository - el6                   263

epel                  Extra Packages for Enterprise Linux 6 - x86_64                        12,327

extras                CentOS-6 - Extras - 163.com                                               64

updates               CentOS-6 - Updates - 163.com                                             270

LIST OPTIONS (較少使用)

yum list all:列出所有可用的軟件包。等同於yum list available

yum list updates:列出所有可以升級的軟件。

yum list installed: 列出所有已經安裝的軟件。好用,常用。

yum list extras:系統上的已經安裝的軟件包,其不在所有倉庫中列表。很少用。

yum list obsoletes :

yum list recent:顯示最近被加入到倉庫中的軟件列表。

CLEAN OPTIONS(較少使用)

yum clean expire-cache

yum clean packages

yum clean headers   #執行yum makecache會緩存headers。

yum clean metadata #執行yum makecache會緩存metadata

yum clean dbcache

yum clean rpmdb

yum clean plugins

yum clean all

2、yum配置文件

# cat /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever #yum下載的RPM包的緩存目錄

keepcache=1 #緩存是否保存,1保存,0不保存。

debuglevel=2 #調試級別(0-10),默認爲2(具體調試級別的應用,我也不瞭解)。

logfile=/var/log/yum.log #yum的日誌文件所在的位置

exactarch=1  #在更新的時候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。

obsoletes=1  #當等於1時,參數update和upgrade意思相同。默認是1.

gpgcheck=1 #是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。

plugins=1 #是否允許使用插件,默認是0不允許,但是我們一般會用yum-fastestmirror這個插件。

installonly_limit=5 #允許保留多少個內核包。

exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多個RPM包之間使用空格分離。

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

distroverpkg=centos-release

#還有一個我找了很久的東西,其實默認配置文件中就有的,只是被註釋了。

metadata_expire=90m #當執行yum makecache後,產生的metadata cache多久會失效,過期。h表示小時,m表示分鐘。默認是6h。never表示永不過期。

關於yum.conf配置文件的詳細幫助,查看man yum.conf手冊。

3、yum源文件repo說明:

[base] #倉庫id(repositoryid),必須是唯一的。

name=CentOS-$releasever - Base - 163.com   #倉庫的名字,描述倉庫作用。

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

#baseurl 必須一個目錄,是yum倉庫repodata目錄,即按照repodata格式要求存放各種文件。協議支持多種:http://, ftp:// or file://。 也可以指定多個basesurl。比如:

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

                     url://server2/path/to/repository/

                     url://server3/path/to/repository/

#mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el6

#mirrorlist url指向一個文件,其中包含所有的baseurl地址。該選項可以baseurl替代。只要把其中所有內容都放到baseurl選項中即可。另外,還有一個metalink選項,類似於mirrolist。啓用metalink,就會禁用mirroslist選項。

enabled=1 #yum根據此標識判斷是否啓用該倉庫

gpgcheck=1 #是否對所下載的軟件進行GPG簽名檢查。可以選擇關閉。不影響使用。

repo_gpgcheck=0  #是否對這個倉庫的repodata數據做GPG簽名檢查。默認不設置。

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#gpgkey用於該倉庫的GPG key文件。和gpgcheck選項配合使用,如果設置爲1,則會調用當前選項的url。可以指定多個url。

4、yum公共源

用於php的rpm安裝

rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm

社區企業Linux倉庫

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

查看官網,可以看到更多其他yum源:

http://elrepo.org/tiki/tiki-index.php

rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -Uhv 

https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

163鏡像源:

官方網站查看:http://mirrors.163.com/.help/centos.html

操作:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

cd /etc/yum.repos.d/

Centos 6:

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

最好下載最新版本。因爲yum源會定期更新。看說明是每4小時更新一次。

Centos 7:

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

Centos 5:

http://mirrors.163.com/.help/CentOS5-Base-163.repo

運行以下命令生成緩存

#yum clean all #yum makecache

4、創建本地yum源

目標:

把ES6.3的光盤中的Packages RPM包當做yum本地安裝源。RPM包放到/var/ftp/pub中。

步驟:

1.首先掛着光盤:

#mount -iso9660 /dev/cdrom /mnt/cdrom

2.安裝ftp服務

#cd /mnt/cdrom/Packages

#rpm -ivh vsftpd        

#service vsftpd start

3.把光盤的Packages文件夾中的RPM包都拷貝到/var/ftp/pub中。

#cp -rv /mnt/cdrom/Packages  /var/ftp/pub

 備註:此時,Packages文件夾被拷貝到/var/ftp/pub下了。-rv參數的意思是把文件夾拷貝到目標目錄中,並顯示拷貝過程。

4.安裝Createrepo程序

     #cd /mnt/cdrom/Packages

#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

  #rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

  #rpm -ivh createrepo-0.9.8-5.el6.noarch.rpm

5. 拷貝光盤上的comps-rhel6-Server.xml文件到/var/ftp/pub/Packages

# cp /mnt/cdrom/Server/repodata/c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml  /var/ftp/pub/Packages

6. 使用Createrepo程序更新c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml。這個文件中存儲的是所有RPM包的索引,執行完成後,將在Packages中新生成repodata文件夾。用於存儲索引。

#cd /var/ftp/pub/Packages

#createrepo -g c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml /var/ftp/pub/Packages

7. 修改yum文件,調用本地源

#cd /etc/yum.repos.d

#cp rehl-source.repo   rehl-source.repo.bak  

#vi rehl-source.repo 

   編輯該文件:

   [Packages]                                                            

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=file:///var/ftp/pub/Packages/                              

enabled=1                                                                      

gpgcheck=0                                                                  

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 


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