Linux 软件包管理器 yum
关于yum
我们在手机或者电脑的应用商店里面去下载一些软件的时候,这些软件是从本地直接下载的呢还是从远端的服务器下载的?
手机应用商店下载的软件是通过互联网从远端服务器下载到用户设备的。远端服务器存储着应用程序的安装包,当用户发起下载请求时,服务器会将安装包传输给用户的设备。所以我们手机上的应用商店只是帮我们下载软件的,而软件本身并不在手机上,而是在远端的服务器上。应用商店会去帮我们找我们要下载的软件。
在Linux上,也需要有一个类似于应用商店的东西,在对应的服务器端去帮助我们下载和安装Linux需要的一些软件。
那在Linux上,这个类似于应用商店的东西就是yum——Linux 软件包管理器。
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上.
补充: 在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包(软件包和软件包管理器,就好比 “App” 和 “应用商店” 这样的关系),直接进行安装。
yum的使用
注意事项
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通, 可以通过 ping 指令验证:
查看软件包:
通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如我现在把yum list的结果输出重定向到yumlist.txt文件里方便查看一共有多少软件包:
可以看到软件包数量是非常多的
所以我们可以使用要使用管道和 grep 命令只筛选出我们关注的包:
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
"x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
"el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.
如何安装软件
在Linux上安装软件的时候我们一般都把用户切换成root安装,或者加上sudo。
指令: (sudo) yum install 软件包名
yum 会自动找到都有哪些软件包需要下载,这时候按 “y” 确认安装,当然我们可以直接带上-y选项跳过确认.
出现 “complete” 字样, 说明安装完成.
运行sl:
注意事项:
1.安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
2.yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
如何卸载软件
指令: (sudo) yum remove 软件包名
这次加上-y选项没有出现需要确认的交互.
sl指令无法使用了:
yum源
Linux的软件其实分为官方软件和扩展软件,新出来的软件是不能直接进官方软件的队列里的,而是到扩展软件源里面,被人们用上一段时间,如果比较不错,才会纳入到官方软件源里面。所以我们一般下软件都建议下官方软件源里面的,一般比较常见的软件都是官方的,但是有些其实没有被纳入官方源里面,比如我们刚才安装的sl,他就是一个扩展的。
我们用手机的应用商店下载软件的时候,它是怎么知道要去哪里下载的呢?
它们之所以知道,一般都是它们内置的有下载链接的地址或者配置文件。即我们下载应用商店的时候,不仅下载了这个软件,还包含了对应的一些配置文件,这里有对应各种软件的下载地址。
yum对应的配置文件,我们把它叫做yum源。
进入/etc/yum.repos.d这个路径下:其中的这个CentOS-Base.repo我们称为基础yum源
在这里我们就可以看到当前机器上默认的一个下载路径,这里的是阿里镜像源.
这个yum源是可以更新的,可以参考: 配置国内yum源
另外:如果在安装某些软件的时候提示找不到,那它有可能就是在扩展的yum源中。
yum install -y epel-release
这条指令会根据你的base yum源,帮你找到和他匹配的扩展yum源