今天来初步认识一下yum——Linux下软件包管理器。
既然说到Linux下软件包管理器,那我们不妨来先谈论一下什么是软件包的概念。
1. 什么是软件包?
软件的下载需要源代码编译链接之后生成可执行文件进行运行。无论是Windows系统下还是Linux系统下,想要进行软件安装,我们平常人很少有去直接把源代码拿下来然后进行自己编译生成可执行程序的,因为如果要自己拿到源码进行编译,往往需要自己配置编译环境、一些链接库…甚至在自己编译时候会出现各种问题…显然,这种方式不利于客户下载软件,毕竟有点复杂。
把软件编译好,为用户提供更良好的下载体验。为了帮助用户减轻下载软件的负担,许多企业和个人开发者、甚至说是社区维护者(比如Linux)都会把一些成熟的软件自行将源代码进行编译,然后测试,把自己打包编译好的这个软件包放到自己对应的云服务器上,把下载链接给到对应的软件商店,让用户只需要在软件商店点下载即可自动下载,省去了用户对源代码进行编译的过程。我们把这种已经编译好的软件的打包合集称为软件包
,对应的软件商店我们称之为软件包管理器
。
其中,我们安卓手机上有小米商店、OPPO商店、华为应用市场…等各种软件包管理器,Windows电脑上则有自带的微软商店,而Linux系统作为世界三大操作系统之一,自然也有属于自己的软件包管理器——yum
Linux系统下谁为用户编译好软件? 我们清楚,帮助用户把源代码编译好的一些公司、企业往往是为了盈利,但是Linux系统作为以开源为著称的操作系统,谁会去愿意拿着自己的时间、精力甚至说是自己去购买服务器来为用户提供编译服务和下载服务呢???这不得不来简单说一下Linux系统生态问题。
2. Linux的生态
什么是生态? 评判一个操作系统的好坏,不仅仅要看这个操作系统是否好用,更要看这个操作系统是否有配套的齐全社区、详细的文档说明和开发者与使用者之间频繁交流…
而我们把除了操作系统本身是否好用之外,把操作系统对应的社区、文档、交流等都统称为生态
。
Linux开发人员的资金与维护。 我们知道Linux系统属于开源系统,各种对应的软件都是免费开源的、免费使用的。作为一个普通开发者把对应自己写的代码放到上面之后,会有很多其他开发者/使用者会对代码提供意见(也可以说是挑毛病),当一个好项目发展到一定程度,往往会很多人对其产生依赖,这里不乏有些企业,一旦项目开发者缺少资金,开发者往往会发布通知自己因为资金问题暂停项目,如果这个项目是没有多少人依赖的,自然会退出舞台,停止维护,但是一旦这个项目是有很多公司在用,项目一旦停止维护那些用这个项目的公司往往会愿意自己出钱资助Linux开发者继续维持项目,等同于是好的项目一定有人愿意花钱。
更为重要的是,一个好项目最初可能由一个人来进行维护更新,随着项目的推进,可能会有更多人参与进来,这也就大大保证了项目的维护力度和速度,同时又有那么多人去用去测试这个项目的代码是否安全可靠,所以其实Linux下好项目并不差钱也不差维护和更新人员,自然也不差对应的服务器和为软件打包编译的人了。
结论就是:因为Linux的特殊生态原因,即使Linux下软件是开源免费的,也会有人自主去做编译和打包工作。
通过上面的了解,我们下面简单谈论一下yum的极简单/基本用法:
3. yum的基本操作
yum由 指令 + 仓库 组成,仓库可以分为base仓库和eoel仓库,通常base仓库是一个云服务器自带的下载仓库,epel仓库需要自己额外下载安装。
这些仓库存放的是一些找到对应服务器进行下载软件的地址链接。
yum list | grep xxx // 搜索特定软件 yum install -y xxx // 下载特定软件 yum remove xxx // 移除特定软件 // yum的内置下载链接仓库:ls/etc/yum.repos.d/ // 下载epel扩展软件源链接 yum install epel-release
具体详见Linux下:man yum
4. 配置yum源
yum源是什么? yum源是yum中的仓库链接,我们上面说到yum仓库内的链接指向对应软件的下载地址,所以说yum源是十分重要的。
为什么要配置yum源? 虽然说yum有自带的base仓库,但是这个base仓库里默认是指向的是官方下载地址,大部分都在国外,而我们国家访问国外网站往往速度一言难尽,所以说我们建议把yum源修改为国内的yum源,下载速度更快更加稳定。
yum源配置为谁? 国内有许多提供yum源配置的组织/机构,比如清华大学、163…他们得到国家和Linux官方特殊批准,允许把国外下载链接镜像到国内。
centos7配置yum源说明:https://www.cnblogs.com/xrg-blog/p/13208562.html
阿里云开源镜像站:https://mirrors.aliyun.com/repo/
yum源一键配置 挨个去查看对应网站的配置信息往往很繁琐,直接套用别人已经整理好的配置链接就行。
wget -0 /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
EOF