目录
前言
前文说到yum软件仓库是解决RPM软件包安装时的依赖关系,可以自动处理一次性安装所需要的所有软件,无需繁琐的操作。
一、yum源获取
yum软件仓库有三种方式获取,一种是通过本地光盘获取,一个是网络源,还有一个是文件共享源
1) 本地源
需要勾选已连接光盘设备
将光盘设备挂载到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)网络源
由于系统自带的软件源安装包有限,涵盖不了市面上所有的程序,可以添加网络源进行一个补充,配置起来也相对简单,网络源可以在阿里云上就能找到
系统是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,解决了包与包之间的依赖关系,看着是不是已经是一个很优秀的命令了,其实如果安装过程中中断了网络,或者突然宕机,那么安装的过程就有可能会终止,继续安装就会报错,这时候也不用着急,可以先把要安装的程序给删了,再重新下载就行了