首先 yum
是软件下载安装管理的客户端,类似各种手机里的“应用商城”
在以前要下载某个应用程序其实并没有那么简单,我们需要下载程序的本体,但光是程序本体远远不够,因为程序是在操作系统上跑的,势必需要加载依赖
而在 Linux 上安装软件有三种方式:
yum
安装没看错,源代码安装是可行的,只是巨麻烦,我们可以把人家开源软件的源代码拿过来在自己的设备环境上编译运行,但你要有强大的心理素质和抗压能力,因为人家的系统和你的系统可能完全不一样,因为环境问题导致的各种交叉编译等等的报错最令人头疼,且动静态库的依赖关系可能也不一样,要安装各种动静态库,所以这种安装软件的方法你自己看着办呗
rpm 包安装比源代码安装要轻松很多,本质上是个压缩包,是被程序员在各种不同平台环境上给你编译好的可执行程序,直接下载和你系统对应且是人家编译好的可执行程序,安装就行。但还是会有库不全的问题(依赖问题)
而 yum
是安装软件最简单的方式,需要什么会完全下载,你的 CentOS 会 内置各种程序所在的目标服务器地址 ,服务器链接,可以直接解决各种平台间不相容的问题,简单来说就是省事
由于在 Linux 中软件包可能有依赖关系,类似某个可执程序依赖一堆动静态库;而 yum
不仅会帮我们下载程序的本体,还会帮我们解决依赖关系的问题;用户只管对需要的应用程序进行 yum
,相关依赖的添加和下载 yum
会帮我们完成
那软件包是谁提供的呢?那就是 Linux 系统(CentOS)的生态的原因了
我们知道 Linux 常被用作后端服务器的操作系统,但使用 Linux 系统仅仅是因为它安全,稳定,高效吗?并不止
一款好的操作系统至少要有社区、官方文档、讨论吧;再怎么说也要有个群吧?不然日后出问题怎么办,找谁呢?
所以一定要有丰富齐全的官方文档,健全功能强大的开源社区,有程序员和大公司心甘情愿选择这款操作系统,有问题可以迅速运维解决,这才具有一定的生态
而我们选择好的操作系统,并不是说系统之间真的有很大差距,而是其对应的生态存在差距
有更多的人来使用,就一定有需求,有需求就有解决方案,写系统的开发者就会提供各种利于开发的软件功能包
但就开源社区来说管理起来真的没成本吗?不收费一直亏钱吗?当然不是,万一有企业非常 依赖 这个开源项目呢?有人用就不会希望这个开源社区倒闭,所以开源也需要钱,只是接受捐赠
罗列出所有关于 XXX 软件:
yum list | grep XXX
安装软件:
[sudo] yum install [-y] XXX
卸载软件:
[sudo] yum remove XXX [-y]
-y
是确定的含义,表示明确就是要删除
如果显示如下信息 :
Loaded plugins: fastestmirror
You need to be root to perform this command.
那就是说明你作为普通用户还没有权限,可以在上述位置添加 sudo
或使用 root
账号
关于 yum
需要进行补充:
对于任何一款操作系统,都会在任何可能的时间更新或者新增软件,那么注定会有稳定和不够稳定的软件分类, 那这些不够稳定的软件就不能直接更新到 yum
软件的软件包的软件集合里,就会有两个基础的 yum
源:
基本软件源(base
):一般都是一些非常稳定的软件,几乎不会出问题
扩展软件源(epel
):是一些更新或者新增软件,不够稳定,提前告知有风险
当 epel
里的软件稳定之后,就会选择性的将它们加进 base
里,但是一般 Linux 系统里默认没有扩展软件源(epel
),需要手动安装(云服务器可能除外):
yum install -y epel-release
之后就可以进入 /etc/yum.repos.d/
目录下查看所有的 yum
源(这里指云服务器,虚拟机地址可能不一样):
ll /etc/yum.repos.d/
那么所谓为 yum
进行本地配置,就是配置 yum
源 (内置目标服务器的地址链接) ,原本 CentOS 系统的 yum
源是国外的,存在网络延迟相关问题,但我这里都改为了 华为云地址 :
基本软件源(base
):
扩展软件源(epel
):
如果要改 yum
源,请注意 不是直接修改源文件 ,而是将源文件(eg: CentOS-Base.repo
)进行改名备份,再从网上找新的配置文件(我偷个懒就不找了)替换进来,记得新配置文件要和原来的文件名一样,像上面的 CentOS-Base.repo
一样,然后依次进行如下操作:
1、 清除缓存
yum clean all
2、 生成缓存
yum makecache
3、 升级更新
yum -y update
最后 yum
的使用一般是要联网的,这里有个好用的 Windows 和 Linux 之间传文件的程序 lrzsz.x86_64
,直接安装即可:
yum install lrzsz.x86_64