首页 > 系统相关 >linux基本功系列之yum命令

linux基本功系列之yum命令

时间:2023-04-03 10:10:27浏览次数:55  
标签:-- root linux repo yum 软件包 基本功 安装

1. yum命令介绍

1.1 yum的介绍

yum命令来自于英文词组”YellowdogUpdater,Modified“的缩写,其功能是用于在Linux系统中基于RPM技术进行软件包的管理工作。

YUM是C/S架构的在线软件安装命令,是RPM1的前端工具,依赖于RPM存在的。

能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

当然了 ,其实不懂yum的概念,一点也不妨碍你使用yum去工作,真的。

linux基本功系列之yum命令_加载

1.2 yum的优劣势

yum最大的优势就是能够解决rpm包的依赖问题,自动解决安装时候的依赖。
不过yum也有缺陷,最大的缺陷就是如果有未完成的安装在强行终止的情况下,下次再次安装容易出现无法解决的依赖问题。

为了处理yum本身的缺陷,引入了dnf命令,dnf的使用方法和yum一样。 dnf完全是用python写的,更新了依赖关系解析器的后端,比yum效率更高。

1.3 使用yum的注意事项

使用yum之前要首先配置好本地yum源,或者网络yum源,否则无法使用。

1.3.1 配置本地yum源

1. 挂载镜像

1) 先确保镜像已经挂载

linux基本功系列之yum命令_加载_02

2) 配置yum源文件进行挂载

需要注意的是,这里我们要创建一个以.repo结尾的文件,而且文件必须放在/etc/yum.repos.d目录下

[root@mufeng ~]# cd /etc/yum.repos.d/redhat7.repo

vim  redhat.repo
[rhel-source]
name=mufeng
baseurl=file:///mnt
enabled=1
gpgcheck=0

上面代码的相关备注:

内容

释义

[rhel-source]

yum源名称,在本服务器上唯一,用来区分不同的yum源

name=Redhat

对yum源的描述

baseurl=file:///mnt

yum的挂载路径,file,http,ftp三种形式的路径

enabled=1

为1表示开启yum源,0表示禁用

gpgcheck=0

为1 表示使用公钥检验rpm包正确性,0位不校验

3) 在命令行挂载镜像到/mnt

linux基本功系列之yum命令_加载_03


可以看到/dev/sr0已经挂载到了/mnt上,说明成功了。

linux基本功系列之yum命令_centos_04

1.3.2 配置网络yum源

对网络软件包的理解:

  1. 我们安装软件包,必须先把软件包现在的本地进行安装
  2. 网络软件包的意思就是,这些软件包不在自己电脑上,而是在别人的电脑上(服务上)
  3. 我们要下载一个软件包,但我们不清楚这个软件包在哪台电脑上
  4. 于是电脑在下载软件包的时候会去官网搜索,如果官网连接不通,会去你配置好的网络源搜索,比如阿里云
  5. 为什么阿里云会提供软件包? 因为利益(比如增加网站的访问量和下载量等)

基于以上对网络软件包的理解,你会发现现在配置网络yum源越来越简单了,不用重复造轮子,直接使用阿里云的镜像站即可

1) 阿里云开发者社区-镜像站-点击直达

如下图,选择你要使用的系统版本网络源

linux基本功系列之yum命令_yum源_05

2) 我用的是centos7的系统,所以直接选择 centos7.repo即可

怎么知道自己的操作系统?

[root@mufeng yum.repos.d]# cat /etc/centos-release 
CentOS release 7.9 (Final)

根据自己的系统型号,选择6还是7或者8的repo包,我这里选择6的

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3) 运行 yum makecache 生成缓存
[root@mufeng yum.repos.d]# cat /etc/centos-release

可以愉快的使用yum了

[root@mufeng ~]# yum install vsftpd

2. 语法格式及常用选项

2.1 yum的全部参数

我们还是使用 --help来查看yum的常用参数,可以看到yum的常用参数有很多:

[root@mufenggrow ~]# 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], --cnotallow=[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

2.2 影响yum的配置文件

与yum有关的配置文件一共有三个:

基本设置: /etc/yum.conf
仓库配置: /etc/yum.repo.d/*.repo
日志文件: /var/log/yum.log

2.3 最常用的yum参数

根据2.1我们整理出最常用的参数做一下汇总:

参数

参数描述

install

安装软件包

-y

对安装过程中所有的提问,都默认选择yes

-q

安装模式

-v

详细信息

update

更新软件包

list

列出资源库中所有可以安装的软件包

search

搜寻软件包的信息

info

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

groupinstall

安装程序组件

clean

清空

remove

卸载

3. 参考案例实战

3.1 使用yum进行安装

想要安装,使用的参数是install , 所以这里用install即可。
-y参数是为了出现提问时候,全部输入为y.

案例一: 使用yum安装httpd

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

案例二: 使用yum安装wget

yum install -y  wget

可以看到-y参数可以放在命令的最后,也可以放在 install 后面

案例三: 从硬盘安装rpm包并使用yum解决依赖关系

此时可以使用 yum localinstall ./*.rpm

3.2 使用yum升级和更新软件包

升级软件包使用的是update

[root@mufeng~]# yum update -y

还有个命令也是用来升级: upgrade

yum upgrade -y

yum update 和yum upgrade有什么区别呢?

答: yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版。
唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留(obsoletes=0)。

生产环境中建议使用yum update,防止因为替换,导致旧的软件包依赖出现问题。

案例三: yum源的更新命令

yum clean all
yum makecache
yum update

3.3 软件包的查询

案例一: 查询一个软件包的描述信息

[root@mufeng ~]# yum info httpd

案例二: 查询一个包是哪个命令安装的? 用yum provides

比如我们要查询ab命令是哪个软件包安装的

[root@mufeng ~]# yum provides /usr/bin/ab   # 查看ab命令是哪个包安装的
已加载插件:fastestmirror, refresh-packagekit, security
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile

 * updates: mirrors.aliyun.com
httpd-tools-2.2.15-69.el6.centos.x86_64 : Tools for use with the Apache HTTP Server
Repo        : base
匹配来自于:
Filename    : /usr/bin/ab

httpd-tools-2.2.15-69.el6.centos.x86_64 : Tools for use with the Apache HTTP Server
Repo        : installed
匹配来自于:
Other       : 提供依赖满足:/usr/bin/ab

案例三: 列出所有可安装的软件包

[root@mufenggrow ~]# yum list httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirror.lzu.edu.cn
 * updates: mirror.lzu.edu.cn
可安装的软件包
httpd.x86_64                          2.4.6-97.el7.centos.5                          updates
[root@mufenggrow ~]#

其他使用方法

  • list +软件包 可以列出要安装或者已经安装的软件包
  • list update 表示列出所有可更新的软件包
  • list installed 列出所有已经安装的软件包

3.4 yum卸载软件包

卸载软件包,直接使用remove即可

[root@mufeng~]# yum remove httpd

此时也可以加-y参数,一般不需要加。

3.5 yum 安装开发工具软件组

yum grouplist 查看有哪些安装组
yum groupinstall “开发工具”

使用yum grouplist可以查看到所有需要安装的组件,比如我的系统是最小化系统,此时想安装桌面,这时候就可以安装桌面组件。

4.总结

yum是我们日常用的最多的命令,但yum也有一定的不足,比如正在执行的过程中突然中断,会导致下次使用的时候提示缺少依赖包。

标签:--,root,linux,repo,yum,软件包,基本功,安装
From: https://blog.51cto.com/u_15867943/6165536

相关文章

  • Linux|--sh脚本|--文件执行报错::Error response from daemon: invalid reference for
    前言由于Linux中的docker镜像和容器需要批量处理,所以搞一个脚本,直接一下处理了,1.我在Windows10的本机电脑上新建了一个"test.sh"文件2.将"test.sh"文件上传到Linux环境中3.在Linux中执行"shtest.sh"4.报错了...第一次报错信息[root@VM-4-3-centostest_api]#shdock......
  • linux内核数据结构 --- list_head
    以structkobject为例,讲解如何使用链表structlist_headstructkobject{constchar*name;structlist_headentry;structkobject*parent;...};structlist_head类型变量作为structkobject的成员(从面向对象的角度,也可以看成str......
  • Linux系统下添加防火墙规则(添加白名单)
     Linux系统下添加防火墙规则(添加白名单)防火墙的作用:  可以通过设置ip白名单/黑名单的方式限制外部ip的访问或者限制访问内部某个端口;添加防火墙过滤规则步骤如下;1、查看现有防火墙过滤规则:  iptables-nvL--line-number2、添加防火墙过滤规则(设置白名单):    1......
  • Linux数据分析之九个给力的命令行工具
    导读要对数据进行分析,大家会从哪里入手?对于大多数熟悉了图形工作环境的朋友来说,电子表格工具无疑是第一选项。但命令行工具同样能够更快更高效地解决问题——且只须稍微学习即可上手。要对数据进行分析,大家会从哪里入手?对于大多数熟悉了图形工作环境的朋友来说,电子表......
  • linux下gcc/g++版本切换
    因为一些道不清说不明的原因,经常需要用到不同的gcc版本 这里先提一个事情,自己编译gcc版本的事情,翻自己的记录(doc文件吧) 然后提下,在ubuntu下,默认gcc版本是11,但需要12版本,安装指令:sudoaptinstallgcc-12g++-12-y安装完成后,继续执行下面的指令:sudorm/usr/bin/gcc......
  • Linux系统下Samba服务器的配置
     实训目的:掌握Samba服务器的主配置文件的设置;掌握Samba服务用户的添加及权限设置;掌握Samba客户机的应用。实训环境:操作系统为CentOS7的网络服务器。实训步骤:第1步:将目录/home/media设置为允许所有用户访问,但仅允许用户mary具有修改该目录的权限。其配置步骤简述如下。1)......
  • Linux 常用命令(备忘)
    grep相关命令grep-h-BG|sort-rn|head-n3递归查询最大的三个文件(夹)-BG:以GB为单位输出大小-r:将结果反向输出(降序)-n:只以字符串的数组进行排序-n:以行的形式输出......
  • Elasticsearch 学习-Linux单机和集群安装
    Elasticsearch学习-Linux单机和集群安装3.3linux集群安装3.3.1软件下载软件下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-03.3.2软件安装1)解压软件将下载的软件解压缩#解压缩tar-zxvfelasticsearch-7.8.0-linux-x86_64.tar......
  • 查找linux最大的文件
    可以使用以下命令来查找Linux系统中最大的文件:sudofind/-typef-printf'%s%p\n'|sort-nr|head-10这个命令会在系统根目录下查找所有的文件,并按照文件大小从大到小排序,然后输出前10个最大的文件的大小和路径。如果你想查找指定目录下的最大文件,可以将命令中的“/”......
  • Linux系统下进程回收--waitpid函数
    waitpid函数的作用和wait函数的作用相同,只是有些参数不同。在Linux终端下输入命令:man2waitpid查看waitpid函数的具体描述:SYNOPSIS#include<sys/types.h>#include<sys/wait.h>pid_twaitpid(pid_tpid,int*wstatus,intoptions);......