1、yum 介紹
YUM: Yellowdog Update Modifier, rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具
yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下)
文件服務器:
ftp://
http://
file:/// (第三個 / 代表根 )
2、yum配置文件
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
倉庫指向的定義:
(repodate文件所在父目錄即視為倉庫)
主要項目定義即可,無需全部定義
若重建.repo 倉庫指向配置,建議/etc/yum.repos.d/只留下一個新建的.repo
否則其他存在的.repo的文件,容易干擾配置文件,造成無法找到指向的倉庫
*.repo內容解析:
[repositoryID] #倉庫ID
name=Some name for this repository #倉庫名
baseurl=url://path/to/repository/ #倉庫地址
enabled={1|0} #禁用 | 啟用 倉庫
1: 啟用 0: 禁用
gpgcheck={1|0} #啟用|禁用gpg key檢測
gpgkey=URL #key 地址
enablegroups={1|0}
failovermethod={roundrobin|priority}
cost= 默認為1000
(#failovermethode 有兩個選項roundrobin和priority,意思分別是有多個url可供選擇時,
yum選擇的次序,roundrobin是隨機選擇,如果連接失 敗則使用下一個,依次循環,
priority則根據url的次序從第一個開始。如果不指明,默認是roundrobin。)
#
eg:
[base] ——->id
name=CentOS-$releasever – Base
release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64-1503/
file:///media/cdrom
http://mirrors.aliyun.com/centos/$releasever/os/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
倉庫管理工具– yum-config-manager
eg:
生成172.16.0.1_cobbler_ks_mirror_CentOS-Xx86_64_.repo
yum-config-manager –add-repo=
http://172.16.0.1/cobbler/ks_mirror/CentOS-Xx86_64/
執行后,將自動生在/etc/yum.repos.d/中生成172.16.0.1_cobbler_ks_mirror_CentOS-Xx86_64_.repo 文件
? yum-config-manager –disable “倉庫名" 禁用倉庫
? yum-config-manager –enable “倉庫名” 啟用倉庫
3.yum 命令使用
? 顯示倉庫列表:
? repolist [all|enabled|disabled]
? 顯示程序包:
? list tool_name 顯示XX的程序包
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1]
[…]
? 安裝程序包:
install package1 [package2] […]
reinstall package1 [package2] […] (重新安裝)
? 升級程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降級)
? 檢查可用升級:
check-update
? 卸載程序包:
remove | erase package1 [package2] […]
? 查看程序包information:
info […]
eg: yum info tree
? 查看指定的特性(可以是某文件)是由哪個程序包所提供:
provides | whatprovides feature1 [feature2] […]
? 清理本地緩存:
clean [ packages | metadata | expire-cache |
rpmdb | plugins | all ]
當倉庫已經更新時候,需要清理緩存,更新各文件的新路徑
? 構建緩存:
makecache
? 搜索: search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary信息
? 查看指定包所依賴的capabilities:
deplist package1 [package2] […]
? 查看yum事務歷史:
history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
? 日志 文件:
/var/log/yum.log
? 安裝及升級本地程序包:
* localinstall rpmfile1 [rpmfile2] […]
(用install替代)
* localupdate rpmfile1 [rpmfile2] […]
(用update替代)
? yum的命令行選項:
–nogpgcheck:禁止進行gpg check
-y: 自動回答為“ yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
4.包組管理的相關命令:
groupinstall group1 [group2] […]
包組的名字有空格時候,需要用”“引起
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]
groupremove group1 [group2] […]
groupinfo group1 […]
eg:
yum grouplist 查詢可用包組
安裝包組:
yum groupinstall "Development Tools"
5.使用光盤當作本地yum倉庫:
? (1) 掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
(/dev/cdrom—>sr0 ,救援模式下只能直接訪問sr0,軟鏈接不可用)
(2) 創建配置文件(在原repo 文件下面追加內容就可以)
[cdrom]
name=centos7 cdrom
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
注意:需要配置自動掛載cdrom 才能一直使用,否則重啟會失效
6中,可以掛載/misc/cd ,需要時候則自動掛載,無需在/etc/fstab中配
置自動掛載
(添加完成后,yum repolist ,可以查看倉庫信息)
6.yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號
$arch: 平臺, i386,i486,i586,x86_64等
$basearch:基礎平臺; i386
$YUM0-$YUM9:自定義變量
? 實例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
7.創建yum倉庫文件repodata (自建倉庫):
生成倉庫文件repodata:(需要在倉庫目錄下執行)
createrepo [options] <directory>
-v 顯示詳情
注: yum視倉庫目錄是否有repodata 為倉庫標志
示例: 手動創建倉庫
1. 建立倉庫文件夾
/tmp下建立test_repo文件夾,復制tree的rpm包至該目錄
2:復制倉庫中的rpm包到倉庫中
略
3: 進入倉庫目錄,使用命令 createrepo ,生成倉庫文件repodata
4:配置 .repo 文件,禁用其他倉庫,并創建新倉庫地址
其中,baseurl為倉庫文件夾路徑
配置/etc/yum.repos.d/base.repo 文件,添加 test_repo 倉庫信息:
(注意:需要停用其他倉庫,設置其他倉庫的enabled=0)
(添加完成后,yum repolist ,可以查看倉庫信息)
5. 測試倉庫,安裝 tree
原創文章,作者:ldt195175108,如若轉載,請注明出處:http://www.www58058.com/39760