yum使用與總結
1、yum是什麼
yum( Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。
它基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。使用yum需要保持機器可以訪問Internet或者訪問自己構建的私有中心倉庫(repository)。它可以是http 或ftp 站點,也可以是本地軟件池。
yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf)。
yum 的配置文件分爲兩部分:main 和repository
main 部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位於/etc/yum.conf 中。
repository 部分定義了每個源/服務器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各文件中。
2、yum配置文件詳解
2.1、/etc/yum.conf
yum.conf 文件一般位於/etc目錄下,一般其中只包含main部分的配置選項。
# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
//yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認路徑
keepcache=0
//安裝完成後是否保留軟件包,0爲不保留(默認爲0),1爲保留
debuglevel=2
//Debug 信息輸出等級,範圍爲0-10,缺省爲2
logfile=/var/log/yum.log
//yum 日誌文件位置,用戶可以到/var/log/yum.log 文件去查詢過去所做的更新。
exactarch=1
//有1和0兩個選項,設置爲1,則yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將i686的軟件包安裝在適合i386的系統中。默認爲1。
obsoletes=1
//這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包。
gpgcheck=1
// 有1和0兩個選擇,分別代表是否是否進行gpg(GNU Private Guard) 校驗,以確定rpm 包的來源是有效和安全的。
plugins=1
//是否啓用插件,默認1爲允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
//指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是centos-release
,也可以是安裝的任何針對自己發行版的rpm 包。
2.2、repo
講repo之前,先說下linxu軟件包的構成,一般包括base、extras、updates、epel等軟件包。一般裝完系統就會配置幾個默認系統官方的yum 源,都是國外網站的,一般我們會使用國內的yun 源,比如163、阿里雲等。
獲取yun源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
關於repo的格式:
cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
說明:
CentOS-Base.repo :這個源文件的名字,這個根據實際的使用自己定義
[base]:repositry的名字,必須是獨一無二的,不能和其他源文件衝突
name :對於[base]的具體描述,這個可以根據具體使用描述
baseurl:這個是非常重要的一環,表明了repositry的地址,支持ftp協議,http協議和file協議;
enabled=0/1:只有兩個值,爲1時表示repositry可以獲取,0表示關閉
gpgcheck=0/1:有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,默認是檢查的
gpgkey=url:後面接的是gpgkey的地址,如果前面定義gpgcheck=1的話。
3、yum常用命令
# yum clean all 清除緩存目錄下的軟件包
# yum makecache 更新緩存
# yum install xxx 安裝xxx軟件,軟件包安裝後默認緩存目錄會清理掉,如果要讓安裝軟件後不進行清理,可以把/etc/yum.cnf配置文件的keepcache設置爲1,默認軟件包就保存在緩存目錄底下了。
# yum install --downloadonly --downloaddir=/soft java 下載某個軟件包及相關依賴到/soft目錄不進行安裝
# yum info xxx 查看xxx軟件的信息
# yum remove xxx 刪除xxx軟件包
# yum list xxx 列出xxx軟件包,如果有@就表示已經安裝該軟件包
# yum list 列出yun源的所有軟件包,包括安裝與未安裝的。
# yum clean 清除緩衝和就的包
# yum provides xxx 以xxx爲關鍵字搜索包(提供的信息爲關鍵字)
# yum search xxx 搜索軟件包 (注:在rpm包名,包描述等中搜索)
# yum groupupdate xxx 更新xxx軟件分組
# yum grouplist xxx
# yum groupremove xxx
# yum groupinfoinfo xxx
# yum update xxx 僅更新指定的軟件命令:
# yum update 系統升級
# yum list available 列出所有升級源上的包;
# yum list updates 列出所有升級源上的可以更新包;
# yum list installed 列出已經安裝的包;
# yun update kernel 升級內核;
# yum history 查看以前執行的yum命令
# yum history undo N 回滾yum history 中ID爲N的命令
# yum history redo N 重做yum history 中ID爲N的命令
4、構建私有yum倉庫
4.1、用光盤鏡像構建本地的yun倉庫
1. 掛載光盤
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d
#vim dvd.repo
2.製作本地yum
# vi /etc/yum.repos.d/dvd.repo
[dvd]
enabled=1
name=dvd
baseurl=file:///mnt/
gpgcheck=0
#gpgkey = file:///mnt/RPM-GPG-KEY-redhat-release
3. 測試
#yum install vnc
4.2、用ftp構建本地化yum倉庫
1、安裝vsftpd並啓動
# yum -y install vsftpd
# systemctl start vsftpd
2、下載nginx並創建ftp目錄
# mkdir -p /var/ftp/nginx
#yum install --downloadonly --downloaddir=/var/ftp/nginx nginx
3、安裝createrepo軟件包
# yum -y install createrepo
4、創建能夠讓yum識別的軟件包目錄倉庫
# cd /var/ftp/nginx
# createrepo -v ./
5、配置目標機器指向nginx yum倉庫的repo文件
# cd /etc/yum.repos.d
# vim nginx.repo
[nginx]
name=nginx
baseurl=ftp://127.0.0.1/nginx
gpgcheck=0
enabled=1
# yum -y clean all
# yum makecache
# yum install nginx