Linux 包管理工具之Yum
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 包管理工具之Yum相关的知识,希望对你有一定的参考价值。
Yum(全称为 Yellow dog Updater, Modified)是基于RPM包的包管理工具,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。至于RPM的介绍,请参考 http://blog.51cto.com/marvin89/2107904
yum简单流程图:
yum配置文件查看
[[email protected] Packages]# rpm -q yum
yum-3.4.3-154.el7.centos.noarch
[[email protected] Packages]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
配置文件分2端
[[email protected] Packages]# man yum.conf
#主配置
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0 #
debuglevel=2
logfile=/var/log/yum.log
exactarch=1 #centos6 centos7 之类是否精确匹配
obsoletes=1
gpgcheck=1 #来源合法性
plugins=1 #支持插件机制
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
#仓库配置
[repositoryID]
name=Some name for this repository #介绍
baseurl=url://path/to/repository/ #必须跟repodata同一个目录
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL #公钥
enablegroups={1|0} #用组的方式管理程序包
failovermethod={roundrobin|priority}
默认为:roundrobin,意为随机挑选; baseurl
cost=默认为1000 权重越高优先使用
配置以centos光盘为仓库的yum
准备yum源 cd盘?
[[email protected] rpm]# cd /mnt/dvd/
[[email protected] dvd]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
配置仓库
[[email protected] yum.repos.d]# vim /etc/yum.repos.d/local.repo
[base]
name=Base repo from cd
baseurl=file:///mnt/dvd/
gpgcheck=1
gpgkey=file:///mnt/dvd/RPM-GPG-KEY-CentOS-7
1、显示仓库列表:
#repolist [all|enabled|disabled]
[[email protected] yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
!base Base repo from cd 9,591
repolist: 9,591
2、安装
[[email protected] yum.repos.d]# yum install zsh-html [#-y] 默认安装最新版本,安装老版本需要手动指定
3、升级、检查升级 (也可以是本地程序包)
#升级
[[email protected] yum.repos.d]# yum update zsh-html
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
No packages marked for update
-----------------------------------------------------------
#检查升级
[[email protected] yum.repos.d]# yum check-update zsh-html
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
4、卸载 只会卸载当前包和依赖当前包的包
不会删除安装时候依赖ImageMagick的包 ?因为这些包依赖ImageMagick,而不是被依赖
[[email protected] yum.repos.d]# yum install ImageMagick
Dependencies Resolved
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Installing:
ImageMagick x86_64 6.7.8.9-15.el7_2 base 2.1 M
Installing for dependencies:
OpenEXR-libs x86_64 1.7.1-7.el7 base 217 k
avahi-libs x86_64 0.6.31-17.el7 base 61 k
cairo x86_64 1.14.8-2.el7 base 713 k
cups-libs x86_64 1:1.6.3-29.el7 base 356 k
fontconfig x86_64 2.10.95-11.el7 base 229 k
fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k
gdk-pixbuf2 x86_64 2.36.5-1.el7 base 567 k
ghostscript x86_64 9.07-28.el7 base 4.3 M
ghostscript-fonts noarch 5.50-32.el7 base 324 k
graphite2 x86_64 1.3.6-1.el7_2 base 112 k
harfbuzz x86_64 1.3.2-1.el7 base 177 k
ilmbase x86_64 1.0.3-7.el7 base 100 k
jasper-libs x86_64 1.900.1-31.el7 base 150 k
.....
[[email protected] yum.repos.d]# yum remove ImageMagick
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick.x86_64 0:6.7.8.9-15.el7_2 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Removing:
ImageMagick x86_64 6.7.8.9-15.el7_2 @base 7.6 M
Transaction Summary
=============================================================================================
Remove 1 Package
卸载ImageMagick的依赖包OpenEXR-libs,会把ImageMagick也卸载
[[email protected] yum.repos.d]# yum remove OpenEXR-libs
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package OpenEXR-libs.x86_64 0:1.7.1-7.el7 will be erased
--> Processing Dependency: libIlmImf.so.7()(64bit) for package: ImageMagick-6.7.8.9-15.el7_2.x86_64
--> Running transaction check
---> Package ImageMagick.x86_64 0:6.7.8.9-15.el7_2 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Removing:
OpenEXR-libs x86_64 1.7.1-7.el7 @base 844 k
Removing for dependencies:
ImageMagick x86_64 6.7.8.9-15.el7_2 @base 7.6 M
个人觉得这个卸载方式不是很好,会残留很多无用的包
?
5、显示程序包:
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
[[email protected] yum.repos.d]# yum list
Installed Packages
GeoIP.x86_64 1.5.0-11.el7 @anaconda #@表示安装过的。anaconda表示操作系统
....
zziplib-devel.i686 0.13.62-5.el7 base #还未安装的
zziplib-devel.x86_64 0.13.62-5.el7 base
zsh-html.x86_64 5.0.2-28.el7 @base #base源安装的
6、具体包信息查看
[[email protected] yum.repos.d]# yum info ImageMagick
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name : ImageMagick
Arch : x86_64
Version : 6.7.8.9
Release : 15.el7_2
Size : 7.6 M
Repo : installed
From repo : base
Summary : An X application for displaying and manipulating images
....
7、查看指定的特性(可以是某文件)是由哪个程序包所提供:相当于rpm -qf
# provides | whatprovides feature1 [feature2] [...]
[[email protected] yum.repos.d]# yum provides /etc/passwd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
setup-2.8.71-7.el7.noarch : A set of system configuration and setup files
Repo : base
Matched from:
Filename : /etc/passwd
setup-2.8.71-7.el7.noarch : A set of system configuration and setup files
Repo : @anaconda
Matched from:
Filename : /etc/passwd
8、查看 以指定的关键字搜索程序包名及summary信息;
[[email protected] yum.repos.d]# yum search zsh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
===================================== N/S matched: zsh ======================================
zsh-html.x86_64 : Zsh shell manual in html format
zsh.x86_64 : Powerful interactive shell
Name and summary matches only, use "search all" for everything.
9、依赖包查看
[[email protected] yum.repos.d]# yum deplist bash
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
package: bash.x86_64 4.2.46-28.el7
dependency: libc.so.6(GLIBC_2.15)(64bit)
provider: glibc.x86_64 2.17-196.el7
dependency: libdl.so.2()(64bit)
......
10、查看yum事务历史:
#history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
[[email protected] yum.repos.d]# yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
17 | root <root> | 2018-04-25 21:53 | Install | 1
16 | root <root> | 2018-04-25 21:49 | Erase | 1
15 | root <root> | 2018-04-25 21:49 | Install | 48
11、包组查看
[[email protected] yum.repos.d]# yum grouplist
Installed Groups:
.....
Available Groups:
Compatibility Libraries
Console Internet Tools
Graphical Administration Tools
Development Tools
.....
12、安装包组
[[email protected] yum.repos.d]# yum groupinstall "Development Tools"
# 升级 groupupdate group1 [group2] [...]
13、移除包组
[[email protected] yum.repos.d]# yum groupremove "Development Tools"
14、包组信息查看
[[email protected] yum.repos.d]# yum groupinfo "Development Tools"
建立自己的yum源
1、添加几个rpm包,为yum源
[[email protected] yum.repos.d]# mkdir -p /yum/repo
[[email protected] yum.repos.d]# cp /mnt/dvd/Packages/z* /yum/repo/
2、centos7需要安装createrepo
[[email protected] repo]# yum install createrepo
3、初始化仓库
[[email protected] repo]# pwd
/yum/repo
[[email protected] repo]# createrepo ../ #在上级目录下创建repodata
Spawning worker 0 with 5 pkgs
Spawning worker 1 with 5 pkgs
Spawning worker 2 with 5 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[[email protected] repo]# cd ..
[[email protected] yum]# ls repodata
447ec135b1c7f6b6270eefc3c48487b7111af058b6a8e69d2752dff8fe692f10-filelists.sqlite.bz2
5bf5f6ef05024c6fa8323255156d043213eac62f765d4106d71e57e133e16990-other.xml.gz
6c2ee7607b3b821acc6907604067e85d101fb4eecc6e10baa45086f26e0343f8-primary.sqlite.bz2
c881c0f911ca54a1ade1d96280a04b8224a5d782522d555f7c6d1b528c2ddd7f-other.sqlite.bz2
e018c8c524d20f6f30d26b42c909757eb2966a55c2f1a90d543602848db03384-filelists.xml.gz
ed266c67e84620208b4124883f03e6a8eaf0ba1d98a0dddd85c5a57beb8efbc4-primary.xml.gz
repomd.xml
4、编辑配置文件
[myrepo]
name=test repo
baseurl=file:///yum
gpgcheck=0
5、使用自己的yum源
[[email protected] repodata]# yum remove zsh
[[email protected] repodata]# yum install zsh
Loaded plugins: fastestmirror
myrepo | 2.9 kB 00:00
myrepo/primary_db | 9.2 kB 00:00
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package zsh.x86_64 0:5.0.2-28.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================
Package Arch Version Repository Size
===============================================================================
Installing:
zsh x86_64 5.0.2-28.el7 myrepo 2.4 M
Transaction Summary
===============================================================================
Install 1 Package
Total download size: 2.4 M
Installed size: 5.6 M
Is this ok [y/d/N]:
以上是关于Linux 包管理工具之Yum的主要内容,如果未能解决你的问题,请参考以下文章