在Linux系统中我们可以通过多种方式安装软件,常见方式有以下三种:
1.源代码安装
2.rpm包安装
3.使用yum软件包管理器安装
早期人们通过下载软件源代码,然后再经过交叉编译等一系列工作下载软件,再后来人们为了方便安装软件发明了rpm软件包,这样就可以通过下载rpm包安装软件,但是这样还是太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
yum(全称为 Yellow Dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
语法:
yum [要进行的操作] [选项] [软件包名称]
常用命令选项:
-y:安装过程中提示选项全部“yes”
-h:帮助
-q:不显示安装过程
接下来我们尝试使用yum安装一个有意思的小程序ls
通过yum,我们就可以通过简单的一条指令就完成对软件的下载(下载过程需联网才能访问到远端服务器)
yum install sl
这时yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装.出现 “complete” 字样, 说明安装完成。
如果无法安装sl说明yum未找到sl软件包的链接,需尝试安装扩展源
yum install -y epel-release
这时yum会对安装请求全部默认同意,直接安装,不再访问。
依旧是一条指令
yum remove sl
当然也可以使用-y默认同意
yum remove -y sl
注意:安装和删除软件必须是root账号或者通过sudo提权才能完成。另外yum安装软件一次只能安装一个。
通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:
yum list | grep sl
显示出来的信息都具体代表什么呢?
“x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包.
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
“el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
最后一列, epel 表示的是 “软件源” 的名称。
还通过 yum search 命令可以罗列出当前一共有哪些软件包. 例如:
yum search sl
- 列出所有可更新的软件清单命令:yum check-update
- 更新所有软件命令:yum update
- 更新指定的软件命令:yum update [软件包名]
通过发展历史我们可能感觉到几个疑点。
1.服务器是谁提供的❓
2.软件包是谁提供的❓
3.我们的yum是怎么知道目标服务器地址与下载链接的❓
1.服务器是谁提供的。
大家应该都知道对于我们访问服务器,那肯定希望访问速度越快越好,如果说有机会把服务器安置在国内那对于我们个人,对于企业那是有很大好处的,服务器就是由这一部分人群提供的。
2.软件包是谁提供的
Linux的最大特点就是开源,开源意味着有更多的人可以看到我的程序,也就代表着问题可以更大程度的暴露出来,问题也就相应的能够更快的被解决,这是我们所期待的,因为这样的开源环境对我们有利所以对于这样的开源环境我们希望他能够更加好,也就有更多的人愿意给我们的环境提供软件包。
3.我们的yum是怎么知道目标服务器地址与下载链接的
yum是我们系统中的一款软件,在系统层面存在能够被yum找到的路径,这个路径就在yum源中。
以下就是我们的yum源。
重点关注CentOS-Base.repo(基础软件源)其他的为扩展软件源。
基础软件源中存放的是稳定,使用人群基数大的软件包,而扩展软件源中存放的是那种不常使用并且可能存在一定问题的软件包,当一个软件包被广泛认可后会加入基础软件源。yum搜素也是先从基础软件源搜索,然后才是扩展软件源。
打开他。
如果yum源为国外地址会出现访问慢的情况,可通过更改yum源的方法解决。
1.备份当前的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载新的yum源文件(阿里云)
wget https://mirrors.aliyun.com/repo/Centos-7.repo
3.更换基础软件源
mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
4.清除yum缓存
yum clean all
5.更新yum缓存
yum makecache
关于yum的讲解到此结束,希望对你有所帮助
无论你现在走到哪里,只要你不停止前进,你总会到达目的地。