linux软件包管理工具,Linux 软件包管理器-----yum配置详解一
一、yum簡介
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應用程序相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。
yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便于管理大量系統的更新問題。
yum 可以同時配置多個資源庫(Repository)。
二、yum的配置
yum的配置文件分為兩種:主配置文件和輔配置文件
1、主配置文件又稱全局配置文件:/etc/yum.conf
2、輔配置文件是/etc/yum.repos.d/目錄下所有以.repo結尾的文件,該配置文件定義了每個源/服務器的具體配置,可以有一個或多個。
主配置文件/etc/yum.conf詳解:#cat?/etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
//yum?緩存的目錄,yum?在此存儲下載的rpm?包和數據庫,默認設置為/var/cache/yum
keepcache=0?????//安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留
debuglevel=2????//Debug?信息輸出等級,范圍為0-10,缺省為2(類似于rpm?-v??|-vv?)
logfile=/var/log/yum.log????//yum?日志文件位置。用戶可以到/var/log/yum.log?文件去查詢過去所做的更新。
exactarch=1????//是否只安裝與當前平臺架構匹配的軟件包
obsoletes=1????//這是一個update?的參數,允許更新陳舊的RPM包。
gpgcheck=1????///程序包安裝之前檢查其合法性與包完整性
plugins=1????//是否啟用插件,默認1為啟用,0表示不啟用。
installonly_limit=5????//一次安裝程序包個數限定
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
//bug追蹤路徑
distroverpkg=centos-release????//發行版本程序包應該以什么為例
#??This?is?the?default,?if?you?make?this?bigger?yum?won't?see?if?the?metadata
#?is?newer?on?the?remote?and?so?you'll?"gain"?the?bandwidth?of?not?having?to
#?download?the?new?metadata?and?"pay"?for?it?by?yum?not?having?correct
#?information.
#??It?is?esp.?important,?to?have?correct?metadata,?for?distributions?like
#?Fedora?which?don't?keep?old?packages?around.?If?you?don't?like?this?checking
#?interupting?your?command?line?usage,?it's?much?better?to?have?something
#?manually?check?the?metadata?once?an?hour?(yum-updatesd?will?do?this).
#?metadata_expire=90m
#?PUT?YOUR?REPOS?HERE?OR?IN?separate?files?named?file.repo
#?in?/etc/yum.repos.d
更多信息請參考man yum.conf 來獲取
yum?變量:
$basearch:?自動切換至yum倉庫所適用的平臺?如i686和athlon同屬i386,alpha和alphaev6同屬alpha。
$arch:cpu體系,如i686,athlon等
$releasever?:發行版版本??自動切換成yum發行版本的版本號
-----------------------------------------
eg:
baseurl=http://mirrors.163.com/centos/$releasever/$basearch
如果當前系統為CentOS?6.6?x86_64
現實結果為:http://mirrors.163.com/centos/6/x86_64
輔配置文件/etc/yum.repo.d/*.repo倉庫配置[repositoryid]
//對于當前系統的yum來講,此repositoryid用于唯一標識此repository指向,因此,其必須唯一;
name=????????//?當前倉庫描述信息;
baseurl=url://path/to/repository/
//指明repository的訪問路徑,通常為一個文件服務器輸出的某repository;
baseurl格式如下:
ftp服務
ftp://SERVER/PATH/TO/REPOSITORY
http服務:
http://SERVER/PATH/TO/REPOSITORY
本地目錄:
file:///PATH/TO/REPOSITORY????//注意此處有三個“/”
enabled={1|0}????//此倉庫是否可被使用???不寫默認是啟用
gpgcheck={1|0|}????//?是否對程序包做校驗
gpgkey=url://path/to/keyfile????//指明gpgkey文件路徑;
cost=#????//用于指明當前repository的訪問開銷,默認為100
注:上述baseurl可以指向多個url,格式如下baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/???//注意:此url不能頂格寫
url://server3/path/to/repository/
三、創建國內yum源
===========制作國內163yum源==========[163]
name=CentOS-$releasever-$basearch-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[163-SCL]
name=CentOS-$releasever-$basearch-SCL-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/SCL/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[updates]
name=CentOS-$releasever-$basearch-updates-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[163-OS]
name=CentOS-$releasever-$basearch-OS-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS-$releasever-$basearch-extras-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[centosplus]
name=CentOS-$releasever-$basearch-centosplus-mirrors.163
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
驗證:[root@linux?yum.repos.d]#?yum?repolist
repo?id??????????????????????????????????repo?name????????????????????????????????????????????????????????????status
163??????????????????????????????????????CentOS-6-x86_64-mirrors.163??????????????????????????????????????????????0
163-OS???????????????????????????????????CentOS-6-x86_64-OS-mirrors.163???????????????????????????????????????6,518
163-SCL??????????????????????????????????CentOS-6-x86_64-SCL-mirrors.163????????????????????????????????????????676
centosplus???????????????????????????????CentOS-6-x86_64-centosplus-mirrors.163??????????????????????????????????50
extras???????????????????????????????????CentOS-6-x86_64-extras-mirrors.163??????????????????????????????????????37
updates??????????????????????????????????CentOS-6-x86_64-updates-mirrors.163????????????????????????????????????993
repolist:?8,274
[root@linux?yum.repos.d]#
利用已做好的yum源安裝tree命令包[root@linux?yum.repos.d]#?yum?-y?install?tree
Setting?up?Install?Process
Resolving?Dependencies
-->?Running?transaction?check
--->?Package?tree.x86_64?0:1.5.3-2.el6?will?be?installed
-->?Finished?Dependency?Resolution
Dependencies?Resolved
====================================================================================================================
Package??????Arch??????????Version??????????Repository?????????????????Size
====================================================================================================================
Installing:
tree?????????x86_64???????1.5.3-2.el6?????????163-OS????????????????36?k
......
驗證是否安裝成功
[root@linux yum.repos.d]# rpm -q tree
tree-1.5.3-2.el6.x86_64
[root@linux yum.repos.d]#
四、其他國內yum源列表如下:1.?企業貢獻:
搜狐開源鏡像站:http://mirrors.sohu.com/
網易開源鏡像站:http://mirrors.163.com/
2.?大學教學:
北京理工大學:
http://mirror.bit.edu.cn?(IPv4?only)
http://mirror.bit6.edu.cn?(IPv6?only)
北京交通大學:
http://mirror.bjtu.edu.cn?(IPv4?only)
http://mirror6.bjtu.edu.cn?(IPv6?only)
http://debian.bjtu.edu.cn?(IPv4+IPv6)
蘭州大學:http://mirror.lzu.edu.cn/
廈門大學:http://mirrors.xmu.edu.cn/
清華大學:
http://mirrors.tuna.tsinghua.edu.cn/?(IPv4+IPv6)
http://mirrors.6.tuna.tsinghua.edu.cn/?(IPv6?only)
http://mirrors.4.tuna.tsinghua.edu.cn/?(IPv4?only)
天津大學:http://mirror.tju.edu.cn/
中國科學技術大學:
http://mirrors.ustc.edu.cn/?(IPv4+IPv6)
http://mirrors4.ustc.edu.cn/
http://mirrors6.ustc.edu.cn/
東北大學:
http://mirror.neu.edu.cn/?(IPv4?only)
http://mirror.neu6.edu.cn/?(IPv6?only)
電子科技大學:http://ubuntu.uestc.edu.cn
五、常用命令
1、語法格式:
yum [options] [command] [package ...]
2、常用選項
-y :自動回答為“yes"
--disablerepo=:臨時禁用在配置文件中配置并啟用的某repository;
--enablerepo=: 臨時啟用指定的某repo:
--nogpgcheck: 禁止做包效驗;
3、常用命令
倉庫管理:
repolist:列出已經配置的所有可用倉庫
repolist [all|enabled|disabled]
緩存管理:
clean: 清理緩存
clean [ packages | metadata | expire-cache | rpmdb | plugins | all][root@linux?yum.repos.d]#?yum?clean?all
Cleaning?repos:?163?163-OS?163-SCL?centosplus?extras?updates
Cleaning?up?Everything
[root@linux?yum.repos]
-------------
注:為了徹底清除緩存還應刪除/var/cache/yum/目錄下的所有文件:
[root@linux?yum.repos.d]#?rm?-rf?/var/cache/yum/*
makecache:緩存創建
自動連接至每一個可用倉庫,下載其元數據,將其創建為緩存;
程序包查看:
list [...]
yum list [all | glob_exp1] [glob_exp2] [...]
eg : yum list php*
yum list {available|updates|installed|extras|obsoletes|recent} [glob_exp1] [...]
available:可安裝尚未安裝的包
updates:可用于升級的包
installed:安裝過額包
extras:倉庫內未提供,但已經安裝了
obsoletes:
recent:新包
grouplist [hidden] [groupwildcard] [...]
程序包安裝:
install package1 [package2] [...]Note:只需要提供包名:
如果某包有在不同倉庫中有多個不同版本,默認會安裝最新版本
如果要安裝指定版本?:install?PACKAGE-VERSION
重新安裝(覆蓋安裝)
reinstall package1 [package2] [...]
程序包升級:
update [package1] [package2] [...]如果只想升級指定版本使用:update?PACKAGE-VERSION
程序包降級:
downgrade package1 [package2] [...]
檢查有哪些升級可用:
check-update
卸載:
remove | erase package1 [package2] [...]
所有依賴于正卸載的程序包的程序包會被一并卸載
eg: yum remove php-common
查詢:
查詢程序的相關簡要信息: info [...]eg:
[root@linux?yum.repos.d]#?yum?info?tree
Installed?Packages
Name????????:?tree
Arch????????:?x86_64
Version?????:?1.5.3
Release?????:?2.el6
Size????????:?65?k
Repo????????:?installed
From?repo???:?163-OS
Summary?????:?File?system?tree?viewer
URL?????????:?http://mama.indstate.edu/users/ice/tree/
License?????:?GPLv2+
Description?:?The?tree?utility?recursively?displays?the?contents?of?directories?in?a
:?tree-like?format.??Tree?is?basically?a?UNIX?port?of?the?DOS?tree
:?utility.
search KEYWORD ...
在包名和簡要(sumary)信息中搜索指定的關鍵字:
provides | whatprovides /PATH/TO/SOMEFILE
查詢指定文件由哪個程序包安裝生成:[root@linux?yum.repos.d]#?yum?provides?/usr/bin/tree??//查詢/usr/bin/tree文件由哪個程序包安裝所生成
tree-1.5.3-2.el6.x86_64?:?File?system?tree?viewer
Repo????????:?163-OS
Matched?from:
Filename????:?/usr/bin/tree
tree-1.5.3-2.el6.x86_64?:?File?system?tree?viewer
Repo????????:?installed
Matched?from:
Other???????:?Provides-match:?/usr/bin/tree
包組管理:
列出所有包組:grouplist
顯示指定包組詳情:groupinfo group1 [...]
安裝:groupinstall group1 [group2] [...]
卸載:groupremove group1 [group2] [...]
升級:groupupdate group1 [group2] [...]
eg:列出yum源中的所有包組:[root@linux?yum.repos.d]#?yum?grouplist
Setting?up?Group?Process
Installed?Groups:
Additional?Development
Base
Desktop
Dial-up?Networking?Support
Directory?Client
E-mail?server
Emacs
Fonts
General?Purpose?Desktop
Graphical?Administration?Tools
Hardware?monitoring?utilities
Input?Methods
Internet?Browser
Legacy?UNIX?compatibility
Legacy?X?Window?System?compatibility
Network?Infrastructure?Server
Network?file?system?client
Networking?Tools
Performance?Tools
Perl?Support
Print?Server
Printing?client
SNMP?Support
Security?Tools
Server?Platform
System?administration?tools
X?Window?System
Installed?Language?Groups:
Arabic?Support?[ar]
......
OK ?有關yum的講解到此就告一段落了,有不足之處還請各位看官斧正........
參考博文:http://www.cnblogs.com/mchina/archive/2013/01/04/2842275.html
總結
以上是生活随笔為你收集整理的linux软件包管理工具,Linux 软件包管理器-----yum配置详解一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux开权限变绿了,解读Linux文
- 下一篇: linux逻辑分区最小值,linux 逻