目录

前言

一、yum源获取

二、命令介绍

三、命令语法及参数

总结命令


前言

前文说到yum软件仓库是解决RPM软件包安装时的依赖关系,可以自动处理一次性安装所需要的所有软件,无需繁琐的操作。

一、yum源获取

yum软件仓库有三种方式获取,一种是通过本地光盘获取,一个是网络源,还有一个是文件共享源

1) 本地源

需要勾选已连接光盘设备

yum国内仓库 yum仓库路径_linux

 将光盘设备挂载到mnt上

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  3.5G   14G  21% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   21M  1.9G   2% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    378M  4.0K  378M   1% /run/user/42
tmpfs                    378M   48K  378M   1% /run/user/0
/dev/sr0                 4.3G  4.3G     0 100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]# umount /dev/sr0 
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]#

设置yum本地源挂载点,并且写入fstab,重启开机后自动挂载

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim centos7.repo
[root@localhost yum.repos.d]# cat centos7.repo 
[centos]  
name=this is centos7
baseurl=file:///mnt        #注意这里是三条杠,还有一个是根
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# vim /etc/fstab
[root@localhost yum.repos.d]# tail -n 1 /etc/fstab 
/dev/sr0 /mnt iso9660 defaults 0 0

查看已经挂载好了

[root@localhost yum.repos.d]# df -h /mnt/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sr0        4.3G  4.3G     0  100% /mnt
[root@localhost yum.repos.d]#

2)网络源

由于系统自带的软件源安装包有限,涵盖不了市面上所有的程序,可以添加网络源进行一个补充,配置起来也相对简单,网络源可以在阿里云上就能找到

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

yum国内仓库 yum仓库路径_服务器_02

系统是7.6的,所以这里只需要复制CentOS7的repo源

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2023-02-06 15:30:24--  https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 119.96.90.239, 119.96.90.243, 119.96.90.236, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|119.96.90.239|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[======================================>] 2,523       --.-K/s 用时 0.03s   

2023-02-06 15:30:24 (82.8 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

[root@localhost ~]#

提示200 OK 就说明是下载好了,保存在/etc/yum.repo.d

二、命令介绍

yum命令来自于英文词组"YellowdogUpdater,Modified"的缩写,其功能是用于在Linux系统基于RPM技术进行软件包的管理工作。yum技术通用于RHEL、CentOS、Fedora、OpenSUSE等主流系统,可以让系统管理人员交互式的自动化更新和管理软件包,实现从指定服务器自动下载、更新、删除软件包的工作。

三、命令语法及参数

用yum --help可以查看到这个命令的参数也是特别多的

语法:yum [参数]  命令(软件包)

[root@localhost ~]# yum --help
已加载插件:fastestmirror, langpacks
Usage: yum [options] COMMAND

List of Commands:

check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist        列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包
langavailable  Check available languages
langinfo       List languages information
langinstall    Install appropriate language packs for a language
langlist       List installed languages
langremove     Remove installed language packs for a language
list           列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap           Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo     Acts on repository update information
upgrade        更新软件包同时考虑软件包取代关系
version        显示机器和/或可用的源版本。


Options:
  -h, --help            显示此帮助消息并退出
  -t, --tolerant        忽略错误
  -C, --cacheonly       完全从系统缓存运行,不升级缓存
  -c [config file], --config=[config file]
                        配置文件路径
  -R [minutes], --randomwait=[minutes]
                        命令最长等待时间
  -d [debug level], --debuglevel=[debug level]
                        调试输出级别
  --showduplicates      在 list/search 命令下,显示源里重复的条目
  -e [error level], --errorlevel=[error level]
                        错误输出级别
  --rpmverbosity=[debug level name]
                        RPM 调试输出级别
  -q, --quiet           静默执行
  -v, --verbose         详尽的操作过程
  -y, --assumeyes       回答全部问题为是
  --assumeno            回答全部问题为否
  --version             显示 Yum 版本然后退出
  --installroot=[path]  设置安装根目录
  --enablerepo=[repo]   启用一个或多个软件源(支持通配符)
  --disablerepo=[repo]  禁用一个或多个软件源(支持通配符)
  -x [package], --exclude=[package]
                        采用全名或通配符排除软件包
  --disableexcludes=[repo]
                        禁止从主配置,从源或者从任何位置排除
  --disableincludes=[repo]
                        disable includepkgs for a repo or for everything
  --obsoletes           更新时处理软件包取代关系
  --noplugins           禁用 Yum 插件
  --nogpgcheck          禁用 GPG 签名检查
  --disableplugin=[plugin]
                        禁用指定名称的插件
  --enableplugin=[plugin]
                        启用指定名称的插件
  --skip-broken         忽略存在依赖关系问题的软件包
  --color=COLOR         配置是否使用颜色
  --releasever=RELEASEVER
                        在 yum 配置和 repo 文件里设置 $releasever 的值
  --downloadonly        仅下载而不更新
  --downloaddir=DLDIR   指定一个其他文件夹用于保存软件包
  --setopt=SETOPTS      设置任意配置和源选项
  --bugfix              Include bugfix relevant packages, in updates
  --security            Include security relevant packages, in updates
  --advisory=ADVS, --advisories=ADVS
                        Include packages needed to fix the given advisory, in
                        updates
  --bzs=BZS             Include packages needed to fix the given BZ, in
                        updates
  --cves=CVES           Include packages needed to fix the given CVE, in
                        updates
  --sec-severity=SEVS, --secseverity=SEVS
                        Include security relevant packages matching the
                        severity, in updates

  插件选项:

比较常用的参数有

-y

对所有的提问都回答“yes”

install

安装rpm软件包

update

更新rpm软件包

grouplist

列出系统组件

remove

删除指定的rpm软件包

list

列出可以安装的软件包

search

检查软件包的信息

info

显示指定的rpm软件包的描述信息和概要信息

clean

清理yum过期的缓存

provides

查找提供指定内容的软件包

repolist

显示已配置的源

groupinstall

安装系统组件

四、命令常用搭配

1) 安装软件包,用y表示,对所有提问都同意

[root@localhost ~]# yum install -y httpd

2)显示已配置的源

[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
源标识           源名称                                                   状态
base/7/x86_64    CentOS-7 - Base                                          10,072
epel/x86_64      Extra Packages for Enterprise Linux 7 - x86_64           13,744
extras/7/x86_64  CentOS-7 - Extras                                           515
remi-php72       Remi's PHP 7.2 RPM repository for Enterprise Linux 7 - x    472
remi-safe        Safe Remi's RPM repository for Enterprise Linux 7 - x86_  5,108
updates/7/x86_64 CentOS-7 - Updates                                        4,691
webtatic/x86_64  Webtatic Repository EL7 - x86_64                            789
repolist: 35,391

3)显示软件包的详细信息

[root@localhost ~]# yum info lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
已安装的软件包
名称    :lrzsz
架构    :x86_64
版本    :0.12.20
发布    :36.el7
大小    :181 k
源    :installed
来自源:base
简介    : The lrz and lsz modem communications programs
网址    :http://www.ohse.de/uwe/software/lrzsz.html
协议    : GPLv2+
描述    : Lrzsz (consisting of lrz and lsz) is a cosmetically modified
         : zmodem/ymodem/xmodem package built from the public-domain version of
         : the rzsz package. Lrzsz was created to provide a working GNU
         : copylefted Zmodem solution for Linux systems.

4)删除软件包以及对应的依赖包

[root@localhost ~]# yum remove httpd -y
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-98.el7.centos.6 将被 删除
--> 正在处理依赖关系 httpd-mmn = 20120211x8664,它被软件包 php-7.2.34-15.el7.remi.x86_64 需要

5)升级软件包,update和upgrade都是升级软件包的参数,update会连同内核一起升级,而upgrade不升级内核

yum update -y

yum upgrade -y

6)清理yum过期的缓存

[root@localhost ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base epel extras remi-php72 remi-safe updates webtatic
Cleaning up list of fastest mirrors

7)查看命令显示安装的软件包

[root@localhost ~]# yum search lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
============================== N/S matched: lrzsz ==============================
lrzsz.x86_64 : The lrz and lsz modem communications programs

  名称和简介匹配 only,使用“search all”试试。
[root@localhost ~]#

8)查看命令是由哪个源安装的

[root@localhost ~]# which zsh
/usr/bin/zsh
[root@localhost ~]# yum provides /usr/bin/zsh
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
zsh-5.0.2-31.el7.x86_64 : Powerful interactive shell
源    :installed
匹配来源:
文件名    :/usr/bin/zsh

9)列出命令可以安装的软件包 

[root@localhost ~]# yum list lrzsz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
可安装的软件包
lrzsz.x86_64                         0.12.20-36.el7                         base
[root@localhost ~]#

10)列出系统组件

[root@localhost ~]# yum grouplist
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.ustc.edu.cn
 * remi-php72: mirrors.tuna.tsinghua.edu.cn
 * remi-safe: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.ustc.edu.cn
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   Cinnamon 桌面环境
   MATE 桌面环境
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   Cinnamon
   Fedora Packager
   Haskell
   LXQt 桌面环境
   MATE
   Milkymist
   TurboGears 应用程序构架
   Xfce
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   教育软件
   智能卡支持
   电子实验室
   科学记数法支持
   系统管理
   系统管理工具
   通用桌面
完成

如果现在是最小化系统,可以通过组件进行安装带gui的桌面

yum groupinstall 带 GUI 的服务器

总结命令

yum软件仓库基于rpm,解决了包与包之间的依赖关系,看着是不是已经是一个很优秀的命令了,其实如果安装过程中中断了网络,或者突然宕机,那么安装的过程就有可能会终止,继续安装就会报错,这时候也不用着急,可以先把要安装的程序给删了,再重新下载就行了