欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

yum search 的用法 有大用

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 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
  yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
  yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

配置

yum 的配置文件分为两部分:main 和repository

main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。

cat /etc/yum.conf

[main]
cachedir=/var/cache/yum
  //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum
keepcache=0
  //安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2
  //Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
  //yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
pkgpolicy=newest
  //包的策略。一共有两个选项,newest 和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository 中同时存在,yum 应该安装哪一个,如果是newest,则yum 会安装最新的那个版本。如果是last,则yum 会将服务器id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
  //指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。
tolerant=1
  //有1和0两个选项,表示yum 是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum 不会出现错误信息。默认是0。
exactarch=1
  //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
retries=6
  //网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.
obsoletes=1
  //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
plugins=1
  //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
yum.conf

除了上述之外,还有一些可以添加的选项,如:

exclude=selinux*  // 排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
 gpgcheck=1  // 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。

  1. 配置本地yum源

(1) 挂载光盘

mount /dev/cdrom /mnt/

(2)配置本地yum源

查看/etc/yum.repo.d/下有多个文件

微信截图_20210427151706.png

CentOS-Base.repo 是yum 网络源的配置文件

CentOS-Media.repo 是yum 本地源的配置文件

修改CentOS-Media.repo文件

cat /etc/yum.repo.d/CentOS-Media.repo

# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-6.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c6-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c6-media [command]

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

CentOS-Media.repo

在baseurl 中修改第2个路径为 /mnt/(即为光盘挂载点)

将enabled=0改为1

(3)禁用网络yum源

将CentOS-Base.repo 重命名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。
(4) 执行yum命令测试

yum install bind

关于repo的格式

所有repository 服务器设置都应该遵循如下格式:

[serverid]
name=Some name for this server
baseurl=url://path/to/repository/
  • serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;

  • name 是对repository 的描述,支持像releaseverbasearch这样的变量;

  • baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:

baseurl=url://server1/path/to/repository/
     url://server2/path/to/repository/
     url://server3/path/to/repository/

其中url 支持的协议有 http:// ftp:// file:// 三种。baseurl 后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl 只能有一个,也就是说不能像如下格式:

baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/

其中url 指向的目录必须是这个repository header 目录的上一级,它也支持releaseverbasearch 这样的变量。
url 之后可以加上多个选项,如gpgcheck、exclude、failovermethod 等,比如:

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
     http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
     http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority

其中gpgcheck,exclude 的含义和[main] 部分相同,但只对此服务器起作用,failovermethode 有两个选项roundrobin 和priority,意思分别是有多个url可供选择时,yum 选择的次序,roundrobin 是随机选择,如果连 ·接失败则使用下一个,依次循环,priority 则根据url 的次序从第一个开始。如果不指明,默认是roundrobin。

配置阿里云YUM源

阿里云Linux安装镜像源地址:
  http://mirrors.aliyun.com/
  http://mirrors.aliyun.com/repo/

CentOS系统更换软件安装源
第一步:备份你的原镜像文件,以免出错后可以恢复。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

第三步:运行yum makecache生成缓存

yum clean all  //清理缓存
yum makecache  //更新缓存

yum工具的使用

rpm的更新

检查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade

rpm包的安装和删除

安装rpm包,如xmms-mp3
yum install xmms-mp3
删除rpm包,包括与该包有倚赖性的包
yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text

yum暂存(/var/cache/yum/)的相关参数

清除暂存中rpm包文件
yum clean packages
清除暂存中rpm头文件
yum clearn headers
清除暂存中旧的rpm头文件
yum clean oldheaders
清除暂存中旧的rpm头文件和包文件
yum clearn 或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders</pre>

包列表

列出资源库中所有可以安装或更新的rpm包
yum list
列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list mozilla#yum list mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
列出资源库中所有可以更新的rpm包
yum list updates
列出已经安装的所有的rpm包
yum list installed
列出已经安装的但是不包含在资源库中的rpm包
yum list extras
注:通过其它网站下载安装的rpm包</pre>

rpm包信息显示(info参数同list)

列出资源库中所有可以安装或更新的rpm包的信息
yum info 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
yum info mozilla#yum info mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
列出资源库中所有可以更新的rpm包的信息
yum info updates
列出已经安装的所有的rpm包的信息
yum info installed
列出已经安装的但是不包含在资源库中的rpm包的信息
yum info extras
注:通过其它网站下载安装的rpm包的信息</pre>

搜索rpm包

搜索匹配特定字符的rpm包
yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
yum provides realplay </pre>

增加资源库

例如:增加rpm.livna.org作为资源库
安装Livna.org rpms GPG key
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
检查GPG Key
rpm -qa gpg-pubkey* 显示Key信息
rpm -qi gpg-pubkey-a109b1ec-3f6e28d5
(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)</pre>

yum常用的命令

 yum install xxx              安装xxx软件
 yum info xxx                  查看xxx软件的信息
 yum remove xxx             删除软件包
 yum list                      列出软件包
 yum clean                     清除缓冲和就的包
 yum provides xxx              以xxx为关键字搜索包(提供的信息为关键字)
 yum search xxx              搜索软件包(以名字为关键字)
 yum groupupdate xxx       更新xxx软件分组
 yum grouplist xxx
 yum groupremove xxx
 yum groupinfoinfo xxx

这三个都是一组为单位进行升级 列表和删除的操作。。比如 "Mysql Database"就是一个组会同时操作相关的所有软件包;
 yum update                  系统升级
 yum list available          列出所有升级源上的包;
 yum list updates            列出所有升级源上的可以更新包;
 yum list installed          列出已经安装的包;
 yun update kernel           升级内核;

示例:

yum search +软件名或者关键字 //查找相关功能的包,然后下载,如:

yum search iperf3

yum search ifconfig

  1. 找到后安装

yum install +找到的包名

yum search php | grep redis

0人点赞
更多精彩内容,就在简书APP

来自 https://www.jianshu.com/p/bedc41a8c825


普通分类: