yum命令

用途

yum(Yellowdog Updater Modified),RedHat系Linux操作系统包管理器,基于rpm,从源远程仓库下载rpm包安装,同时解决依赖关系,使用Python语言编写。除了安装,还可以更新,卸载,查询软件包等。

用法

yum [options] [command] [package ...]

常用命令列表

install

安装源仓库包

update

更新软件包,没有指定包,会更新所有已安装的包

update-to

更新到指定的版本

check-update

检查更新列表,看看是否有新版本

upgrade

和update --obsoletes含义一样

upgrade-to

含义和upgrade一样,只不过指定更新到某个版本

remove

erase

卸载包,包括依赖

list

列出可用的包信息

search

根据关键字搜索包

info

显示包信息

clean

清空缓存

makecache

生成缓存

groupinstall

安装组里所有的包

groupupdate

更新组里所有的包

grouplist

列出仓库里所有的组

groupremove

删除组内所有的包

groupinfo

显示组内包所有的信息

localinstall

安装本地包

localupdate

更新本地包

reinstall

重新安装包

downgrade

降级包或者降级到指定的版本

deplist

显示依赖的包和提供者

repolist

列出源仓库列表

check

检查本地rpmdb数据库,速度比较慢

help

显示帮助信息或者某个命令的帮助信息,如果有指定

常用选项

-h, --help

显示帮助信息

-y, --assumeyes

安装过程中,每一步自动选择同意

--assumeno

每次都选择不同意

-c, --config=[config file]

指定配置文件

-q, --quiet

运行时不输出信息

-v, --verbose

跟-q选项相反,输出详细信息

-d, --debuglevel=[number]

设置调试级别

-e, --errorlevel=[number]

设置错误级别

-C, --cacheonly

仅从缓存读

--version

显示程序版本信息

--showduplicates

显示所有版本,默认是只显示最新的包版本

--enablerepo=repoidglob

启用源仓库,可以是名字,标识,通配符

--disablerepo=repoidglob

禁用源仓库

--obsoletes

更新时,启用过时处理逻辑(不知道是什么鬼?删除不必要的文件?)

-x, --exclude=package

排除指定的包

--nogpgcheck

不进行gpg检验

--downloadonly

不更新,只下载

设置yum源

源文件所在目录

/etc/yum.repos.d

163源

国内一般使用网易源,毕竟是大厂,安全和速度有保障

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
# [base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

yum配置文件(/etc/yum.conf)

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
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
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

实践

1 源仓库搜索指定的包,比如php

[root@vm ~]# yum search php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
gitlab_gitlab-ee/signature | 836 B 00:00
gitlab_gitlab-ee/signature | 1.0 kB 00:00 ...
gitlab_gitlab-ee-source/signature | 836 B 00:00
gitlab_gitlab-ee-source/signature | 951 B 00:00 ...
======================================================== N/S Matched: php =========================================================
cups-php.x86_64 : Common Unix Printing System - php module
graphviz-php.x86_64 : PHP extension for graphviz
php.x86_64 : PHP scripting language for creating dynamic web sites
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
php-imap.x86_64 : A module for PHP applications that use IMAP

2 列出可用的包,比如php,未指定显示所有已安装和未安装可用的包列表

[root@vm ~]# yum list php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
php.x86_64 5.3.3-49.el6 base

3 显示包依赖,比如php依赖的包和提供方

[root@vm ~]# yum deplist php
Loaded plugins: fastestmirror
Finding dependencies:
Loading mirror speeds from cached hostfile
package: php.x86_64 5.3.3-49.el6
dependency: libssl.so.10(libssl.so.10)(64bit)
provider: openssl.x86_64 1.0.1e-57.el6
dependency: libc.so.6(GLIBC_2.8)(64bit)
provider: glibc.x86_64 2.12-1.209.el6
provider: glibc.x86_64 2.12-1.209.el6_9.1
provider: glibc.x86_64 2.12-1.209.el6_9.2
dependency: libxml2.so.2(LIBXML2_2.5.2)(64bit)
provider: libxml2.x86_64 2.7.6-21.el6_8.1
dependency: libz.so.1()(64bit)
provider: zlib.x86_64 1.2.3-29.el6
dependency: libkrb5.so.3()(64bit)
provider: krb5-libs.x86_64 1.10.3-65.el6
dependency: libxml2.so.2(LIBXML2_2.6.5)(64bit)
provider: libxml2.x86_64 2.7.6-21.el6_8.1
dependency: libcrypt.so.1()(64bit)
provider: glibc.x86_64 2.12-1.209.el6
provider: glibc.x86_64 2.12-1.209.el6_9.1
provider: glibc.x86_64 2.12-1.209.el6_9.2
dependency: libm.so.6(GLIBC_2.2.5)(64bit)
provider: glibc.x86_64 2.12-1.209.el6
provider: glibc.x86_64 2.12-1.209.el6_9.1
provider: glibc.x86_64 2.12-1.209.el6_9.2

4 显示包信息,比如php

[root@vm ~]# yum info php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
gitlab_gitlab-ee/signature | 836 B 00:00
gitlab_gitlab-ee/signature | 1.0 kB 00:00 ...
gitlab_gitlab-ee-source/signature | 836 B 00:00
gitlab_gitlab-ee-source/signature | 951 B 00:00 ...
Available Packages
Name : php
Arch : x86_64
Version : 5.3.3
Release : 49.el6
Size : 1.1 M
Repo : base
Summary : PHP scripting language for creating dynamic web sites
URL : http://www.php.net/
License : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
: easy for developers to write dynamically generated webpages. PHP also
: offers built-in database integration for several commercial and
: non-commercial database management systems, so writing a
: database-enabled webpage with PHP is fairly simple. The most common
: use of PHP coding is probably as a replacement for CGI scripts.
:
: The php package contains the module which adds support for the PHP
: language to Apache HTTP Server.

5 删除包,比如已经安装的lynx包

[root@vm ~]# yum -v remove lynx
Loading "fastestmirror" plugin
Config time: 0.006
Yum Version: 3.2.29
rpmdb time: 0.000
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package lynx.x86_64 0:2.8.6-27.el6 will be erased
Checking deps for lynx.x86_64 0:2.8.6-27.el6 - e
--> Finished Dependency Resolution
Dependency Process ending
Depsolve time: 0.183 Dependencies Resolved ===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Removing:
lynx x86_64 2.8.6-27.el6 installed 4.7 M Transaction Summary
===================================================================================================================================
Remove 1 Package(s) Installed size: 4.7 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Member: lynx.x86_64 0:2.8.6-27.el6 - e
Removing Package lynx-2.8.6-27.el6.x86_64
rpm_check_debug time: 0.029
Running Transaction Test
Member: lynx.x86_64 0:2.8.6-27.el6 - e
Removing Package lynx-2.8.6-27.el6.x86_64
Transaction Test Succeeded
Transaction Test time: 1.374
Member: lynx.x86_64 0:2.8.6-27.el6 - e
Removing Package lynx-2.8.6-27.el6.x86_64
Running Transaction
Erasing : lynx-2.8.6-27.el6.x86_64 1/1
Verifying : lynx-2.8.6-27.el6.x86_64 1/1
VerifyTransaction time: 0.125
Transaction time: 1.338 Removed:
lynx.x86_64 0:2.8.6-27.el6 Complete!

6 安装包,比如lynx包

# 仅下载,不安装
[root@vm ~]# yum --downloadonly install lynx
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package lynx.x86_64 0:2.8.6-27.el6 will be installed
--> Finished Dependency Resolution Dependencies Resolved ===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Installing:
lynx x86_64 2.8.6-27.el6 base 1.3 M Transaction Summary
===================================================================================================================================
Install 1 Package(s) Total download size: 1.3 M
Installed size: 4.7 M
Is this ok [y/N]: y
Downloading Packages:
lynx-2.8.6-27.el6.x86_64.rpm | 1.3 MB 00:00
exiting because --downloadonly specified # 直接安装
[root@vm ~]# yum install lynx
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package lynx.x86_64 0:2.8.6-27.el6 will be installed
--> Finished Dependency Resolution Dependencies Resolved ===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Installing:
lynx x86_64 2.8.6-27.el6 base 1.3 M Transaction Summary
===================================================================================================================================
Install 1 Package(s) Total size: 1.3 M
Installed size: 4.7 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : lynx-2.8.6-27.el6.x86_64 1/1
Verifying : lynx-2.8.6-27.el6.x86_64 1/1 Installed:
lynx.x86_64 0:2.8.6-27.el6 Complete!

7 清空所有缓存

[root@vm ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras gitlab_gitlab-ee gitlab_gitlab-ee-source updates
Cleaning up Everything
Cleaning up list of fastest mirrors

参考资料

【1】man yum

【2】linux yum命令详解

http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html

N天学习一个linux命令之yum的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  5. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  6. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  7. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  8. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

  9. N天学习一个linux命令之ip

    用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...

随机推荐

  1. poj1988Cute Stacking

    题目大意:有几个stack,初始里面有一个cube.支持两种操作:1.move x y: 将x所在的stack移动到y所在stack的顶部.2.count x:数在x所在stack中,在x之下的cub ...

  2. 异常强大的Markdown编辑插件-Markdown Preview Enhanced

    最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...

  3. go 简单路由实现

    一.golang 路由实现的简单思路 1.http启动后,请求路径时走统一的入口函数 1.通过统一函数入口,获取request 的url路径 2.通过对url的路径分析,确定具体执行什么函数 二.统一 ...

  4. 个人作业 - Alpha 项目测试

    写在前面 课程链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求:https://edu.cnblogs.com ...

  5. JavaScript入门二

    ******函数****** **函数定义** //普通函数定义 function f1() { console.log("Hello word!") } //带参数的函数 fun ...

  6. 配置Oracle数据库的开机自启动

    每当数据库服务器重启后,都要重新启动数据库的监听和实例,特别是在服务器断电重启.例行维护性的场景下.能否像Windows服务器一样,让实例和监听随着服务的启动而启动呢?答案当然是肯定的,我们可以利用O ...

  7. 355 Design Twitter 设计推特

    设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文.你的设计需要支持以下的几个功能:    postTweet(userI ...

  8. 327 Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

  9. [转]mysql的约束

    转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...

  10. synchronized关键字详解(二)

    synchronized关键字的性质 1.可重入:同一线程的外层函数获得锁之后,内层函数可直接再次获得该锁,好处:避免死锁,提升封装性 证明可重入粒度:1.同一个方法是可重入的 2.可重入不要求是同一 ...