Linux命令——yum
翻译自:20 Linux YUM (Yellowdog Updater, Modified) Commands for Package Management
前言
本篇文章将介绍如何使用RedHat开发的YUM(Yellowdog Updater Modified)工具,在Linux系统上安装,更新,删除,查找,管理软件包和软件仓库。
yum简介
yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。
yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
yum命令使用示例
使用YUM安装包
要安装名为Firefox 14的软件包,只需运行以下命令,它将自动查找并安装Firefox所需的所有依赖项。
# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved ================================================================================================
Package Arch Version Repository Size
================================================================================================
Updating:
firefox i686 10.0.-.el6.centos updates M
Updating for dependencies:
xulrunner i686 10.0.-.el6.centos updates M Transaction Summary
================================================================================================
Install Package(s)
Upgrade Package(s) Total download size: M
Is this ok [y/N]: y
Downloading Packages:
(/): firefox-10.0.-.el6.centos.i686.rpm | MB :
(/): xulrunner-10.0.-.el6.centos.i686.rpm | MB :
------------------------------------------------------------------------------------------------
Total kB/s | MB : Updated:
firefox.i686 :10.0.-.el6.centos Dependency Updated:
xulrunner.i686 :10.0.-.el6.centos Complete!
在系统上安装任何软件包之前,上述命令将询问确认。如果要在不要求任何确认的情况下自动安装软件包,请使用选项-y,如下例所示。
yum -y install firefox
使用YUM删除包
删除包时,如果连依赖一起删除,只需要执行以下命令
yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 :10.0.-.el6.centos set to be erased
--> Finished Dependency Resolution Dependencies Resolved ====================================================================================================
Package Arch Version Repository Size
====================================================================================================
Removing:
firefox i686 10.0.-.el6.centos @updates M Transaction Summary
====================================================================================================
Remove Package(s)
Reinstall Package(s)
Downgrade Package(s) Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : firefox-10.0.-.el6.centos.i686 / Removed:
firefox.i686 :10.0.-.el6.centos Complete!
同样,上面的命令会在删除包之前询问确认。要禁用确认提示,只需添加选项-y,如下所示。
yum -y remove firefox
yum remove有个弊端,例如yum remove -y vim,他只会匹配vim-xxx.rpm这个包,他的依赖包并不会被卸载。比如vim-minimal-7.4.160-4.el7.x86_64,必须单独写在才可以yum -y remove vim-minimal
使用YUM更新包
假设你有一个旧版本的MySQL,你希望将其更新为最新的稳定版本。只需运行以下命令,它将自动解决所有依赖项问题并安装它们。
# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved ============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Updating:
vsftpd i386 2.0.-.el5_8. updates k Transaction Summary
============================================================================================================
Install Package(s)
Upgrade Package(s) Total size: k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : vsftpd /
Cleanup : vsftpd / Updated:
vsftpd.i386 :2.0.-.el5_8. Complete!
使用YUM列出包
使用list参数搜索具有名称的特定包。例如,要搜索名为openssh的包,使用命令
# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: mirror.nus.edu.sg
Installed Packages
openssh.i386 .3p2-.el5_6. installed
Available Packages .3p2-.el5
为了使您的搜索更准确,请使用其版本定义包名称,如果你知道的话。例如,搜索包的特定版本openssh-4.3p2
# yum list openssh-.3p2
使用YUM搜索包
如果你不记得包的确切名称,请使用search参数搜索所有可用包以匹配你指定的包的名称。
# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon
使用YUM获取包的信息
假设您想在安装之前知道包的信息。要获取包的信息,只需发出以下命令。
# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: ftp.iitm.ac.in
Available Packages
Name : firefox
Arch : i386
Version : 10.0.
Release : .el5.centos
Size : M
Repo : updates
Summary : Mozilla Firefox Web browser
URL : http://www.mozilla.org/projects/firefox/
License : MPLv1. or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
: compliance, performance and portability.
使用YUM列出所有可用包
要列出Yum数据库中的所有可用包,请使用以下命令。
# yum list | less
使用YUM列出所有已安装的软件包
要列出系统上所有已安装的软件包,只需发出以下命令,它将显示所有已安装的软件包。
# yum list installed | less
找出文件属于哪个软件包
provides参数用于查找特定文件所属的包。例如,如果您想知道包含/etc/httpd/conf/httpd.conf文件的包名称。
# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.-.el5.centos.i386 : Apache HTTP Server
Repo : base
Matched from:
Filename : /etc/httpd/conf/httpd.conf httpd-2.2.-.el5.centos..i386 : Apache HTTP Server
Repo : updates
Matched from:
Filename : /etc/httpd/conf/httpd.conf httpd-2.2.-.el5.centos.i386 : Apache HTTP Server
Repo : updates
Matched from:
Filename : /etc/httpd/conf/httpd.conf httpd-2.2.-.el5.centos..i386 : Apache HTTP Server
Repo : installed
Matched from:
Other : Provides-match: /etc/httpd/conf/httpd.conf
使用whatprovides 效果是一样的
使用Yum检查可用更新
要查找系统上已安装的软件包有多少可用更新,请检查以下命令。
# yum check-update
使用Yum更新系统
如下命令将为系统安装所有最新补丁和安全更新。
# yum update
列出所有可用的Group Packages
在Linux中,若干个包可以捆绑到特定组。 你可以安装特定组(组中包的依赖会自动安装),而不是使用yum单个组内的软件包。 例如,要列出所有可用组,只需发出以下命令。
# yum grouplist
Installed Groups:
Administration Tools
DNS Name Server
Dialup Networking Support
Editors
Engineering and Scientific
FTP Server
Graphics
Java Development
Legacy Network Server
Available Groups:
Authoring and Publishing
Base
Beagle
Cluster Storage
Clustering
Development Libraries
Development Tools
Eclipse
Educational Software
KDE (K Desktop Environment)
KDE Software Development
安装Group Packages
要安装特定的软件包组,我们使用参数groupinstall。例如,要安装“MySQL数据库”,只需执行以下命令即可。
# yum groupinstall 'MySQL Database'
Dependencies Resolved =================================================================================================
Package Arch Version Repository Size
=================================================================================================
Updating:
unixODBC i386 2.2.-.el5 base k
Installing for dependencies:
unixODBC-libs i386 2.2.-.el5 base k Transaction Summary
=================================================================================================
Install Package(s)
Upgrade Package(s) Total size: k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : unixODBC-libs /
Updating : unixODBC /
Cleanup : unixODBC / Dependency Installed:
unixODBC-libs.i386 :2.2.-.el5 Updated:
unixODBC.i386 :2.2.-.el5 Complete!
更新Group Packages
使用参数groupupdate
# yum groupupdate 'DNS Name Server' Dependencies Resolved
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Updating:
bind i386 :9.3.-.P1.el5_8. updates k
bind-chroot i386 :9.3.-.P1.el5_8. updates k
Updating for dependencies:
bind-libs i386 :9.3.-.P1.el5_8. updates k
bind-utils i386 :9.3.-.P1.el5_8. updates k Transaction Summary
================================================================================================================
Install Package(s)
Upgrade Package(s) Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : bind-libs /
Updating : bind /
Updating : bind-chroot /
Updating : bind-utils /
Cleanup : bind /
Cleanup : bind-chroot /
Cleanup : bind-utils /
Cleanup : bind-libs / Updated:
bind.i386 :9.3.-.P1.el5_8. bind-chroot.i386 :9.3.-.P1.el5_8. Dependency Updated:
bind-libs.i386 :9.3.-.P1.el5_8. bind-utils.i386 :9.3.-.P1.el5_8. Complete!
移除Group Packages
使用参数groupremove
# yum groupremove 'DNS Name Server' Dependencies Resolved ===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Removing:
bind i386 :9.3.-.P1.el5_8. installed 2.1 M
bind-chroot i386 :9.3.-.P1.el5_8. installed 0.0 Transaction Summary
===========================================================================================================
Remove Package(s)
Reinstall Package(s)
Downgrade Package(s) Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : bind /
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
Erasing : bind-chroot / Removed:
bind.i386 :9.3.-.P1.el5_8. bind-chroot.i386 :9.3.-.P1.el5_8. Complete!
列出已启用的Yum仓库
要列出系统中所有已启用的Yum存储库,请使用以下选项。
# yum repolist repo id repo name status
base CentOS- - Base enabled: ,
epel Extra Packages for Enterprise Linux - i386 enabled: ,
extras CentOS- - Extras enabled:
mod-pagespeed mod-pagespeed enabled:
rpmforge RHEL - RPMforge.net - dag enabled: ,
updates CentOS- - Updates enabled:
repolist: ,
列出所有已启用和已禁用的Yum存储库
# yum repolist all repo id repo name status
C5.-base CentOS-5.0 - Base disabled
C5.-centosplus CentOS-5.0 - Plus disabled
C5.-extras CentOS-5.0 - Extras disabled
base CentOS- - Base enabled: ,
epel Extra Packages for Enterprise Linux - i386 enabled: ,
extras CentOS- - Extras enabled:
repolist: ,
从特定yum仓库安装包
要从特定的yum仓库(已启用或已禁用)安装特定软件包,必须在yum命令中使用-enablerepo选项。 例如,要安装PhpMyAdmin 3.5.2软件包,只需执行命令即可。
# yum --enablerepo=epel install phpmyadmin Dependencies Resolved
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Installing:
phpMyAdmin noarch 3.5.-.el6 epel 4.2 M Transaction Summary
=============================================================================================
Install Package(s) Total download size: 4.2 M
Installed size: M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.-.el6.noarch.rpm | 4.2 MB :
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : phpMyAdmin-3.5.-.el6.noarch /
Verifying : phpMyAdmin-3.5.-.el6.noarch / Installed:
phpMyAdmin.noarch :3.5.-.el6 Complete!
交互式yum shell
Yum提供自定义shell,可以在其中执行多个命令。
# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
* base: mirrors.sin3.sg.voxel.net
* epel: ftp.riken.jp
* extras: mirrors.sin3.sg.voxel.net
* updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>
清除Yum缓存
默认情况下,yum再/var/cache/yum及其子目录下保存已启用Yum仓库中的rpm包,要清除这些缓存下来的rpm包,需要定期运行以下命令来清理所有缓存并确保 没有什么不必要的空间正在使用。
# yum clean all
查看Yum历史
查看Yum命令的历史纪录
# yum history Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
| root | -- : | Install |
| root | -- : | Install |
| root | -- : | Erase | EE
| root | -- : | Install |
| root | -- : | Install |
| root | -- : | Install |
| root | -- : | I, U | E<
| root | -- : | Install | >
| root | -- : | I, U | EE
| System | -- : | Install |
history list
Linux命令——yum的更多相关文章
- Linux命令yum和rpm
yum命令使用 可以简化软件安装命令 yum可以做软件的 1自动安装,安装软件的时候会自动安装需要的依赖 yum install 软件名如安装epel源yum install epel-release ...
- Linux命令-yum
定义 yum仓库是为进一步简化RPM管理软件难而设计的,yum能够根据用户的要求分析出所需软件包以及相关依赖关系,自动从服务器下载软件包并安装到系统. 实例
- linux命令-yum工具详解
yum比rpm的优势在于解决依赖关系.可以指定源. [root@wangshaojun ~]# yum list ////列出rpm包资源 网络资源 rrdtool-php. x86_64 ...
- linux命令之:yum
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
- linux文件目录权限和系统基础优化命令(yum源配置)
一.用户 1.介绍 我们都知道linux中有root用户和普通用户,但是同样是普通用户,为什么有些用户的权限却不一样呢?其实这就类似于我们的QQ群,root用户就是QQ群主,他拥有最高的权利,想干什么 ...
- linux中yum命令的解析
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
- Linux关于yum命令Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
Linux关于yum命令Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx. 问题: Linux ...
- Linux apt & yum 及 常用命令
yum yum 语法 yum [options] [command] [package ...] options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes" ...
- Linux教程 Yum命令的使用
在这篇文章中,我们将学习如何安装,更新,删除,查找安装包,管理安装包以及安装包的仓库在Linux系统使用RedHat开发的YUM(Yellowdog Updater Modified)工具.以下这些命 ...
随机推荐
- lnmp 多版本php 同时运行
首先需要装好两个版本以上的PHP(例如:php5.6和php7两个版本).这里假设你已安装完成. .配置并启动php默认版本: (设置 nginx 的 vhost 域名配置文件监听端口就好) ).打开 ...
- Swift4.0复习访问控制与作用域
1.访问等级: open: 可以继承,可以重写. public: “public 访问等级能用于修饰所有文件作用域的函数.对象.协议.枚举.结构体.类以及各种类型中的属性与方法.用 public 所修 ...
- 【docker 使用】创建镜像docker build
创建镜像命令 docker build -t [镜像name]:[镜像tag] -f [dockerfile路径] [资源目录] 执行该命令后,docker会将[资源目录]打包,之后在dockerfi ...
- API SendMessage 带参数
代码未测试 [DllImport("USER32", EntryPoint = "SendMessage", CharSet = CharSet.Auto, S ...
- 开发环境下的 Kubernetes 容器网络演进之路
马蜂窝技术原创文章,更多干货请搜索公众号:mfwtech 使用 Docker+Kubernetes 来简化开发人员的工作流,使应用更加快速地迭代,缩短发布周期,在很多研发团队中已经是常见的做法. 如果 ...
- ip网络
- Python 数据处理库pandas教程(最后附上pandas_datareader使用实例)
0 简单介绍 pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有 ...
- STM32之spi管理模式
1)sip管理模式分为:硬件管理和软件管理:主要由NSS .SSI.SSM决定: NSS是芯片上一个实实在在的引脚,SSI和SSM是SPI_CR1控制器里的的位. 值得注意的是:NSS分外部引脚和内部 ...
- Python30之文件2(文件系统)
一.在python中对于文件系统的访问一般使用的是os模块.python是跨平台的,因此在使用os模块时,不需要关心是在什么系统下使用的 import os >>> os.listd ...
- go 数据渲染到html页面 02
渲染到浏览器页面 //把数据渲染到浏览器 package main import ( "fmt" "text/template" "net/http& ...