什么是软件包
在linux中,软件包和软件包管理器, 就好比手机中 "App" 和 "应用商店" 这样的关系:
我们在 Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 但是这样操作很麻烦, 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序) 放在一个服务器上 , 通过包管理器可以很方便的获取到这个编译好的软件包 , 直接进行安装 .
软件包 (SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。
软件包管理器实际上是一种工具,它允许用户在操作系统上安装,删除,升级,配置和管理软件包。软件包管理器可以是像“应用商店Microsoft Store”这样的图形化应用,也可以是像 apt-get 或 pacman 这样的命令行工具。
yum(Yellow dog Updater, Modified)就是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版Linux上.
yum的使用
一般的三句命令:
查看软件包
我们通过 yum list 命令可以罗列出当前一共有哪些软件包 . 由于包的数目可能非常之多 , 这里我们需要使用 grep 命令只筛选出我们关注的包。
命令: yum list | grep lrzsz
注:这里从左至右依次表示
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
"x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
"el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示centos6/redhat6.
最后一列, os 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.
如何安装软件
命令:sudo yum install lrzsz
yum 会自动找到都有哪些软件包需要下载 , 这时候键盘敲 "y" 确认安装 .出现 "complete" 字样 , 说明安装完成 .
我们也可以之间在yum 后面添加-y,这时yum会直接进行安装,绕过需要敲‘y’确认的步骤:
命令:sudo yum -y install lrzsz
注:
安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户(root身份来进行软件包的下载,装上了所有用户均能使用)下才能完成.
yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
如何卸载软件
命令:sudo yum-y remove lrzsz
此时yum会直接卸载软件
yum工具的常用选项有:
- install 表示安装软件包
- list 列出所有可供安装的软件包
- search 搜索包含指定关键字的软件包
- remove 卸载指定的软件包
- yum -y update : 升级所有包同时,也升级软件和系统内核
- yum -y upgrade : 只升级所有包,不升级软件和系统内核
为什么用老版本
我们在下载使用软件时通常会选择老版本:因为老版本虽然会一定有问题,但至少问题都暴露了,出现过的坑前人已经都踩过了,如果出现了问题我们能有足够的经验进行解决。
yum源配置
yum是如何实现软件包的下载?
yum作为软件包管理器保存着各个软件在服务器中的下载地址,这些下载地址内置在yum的配置文件中。配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。它们不是在程序中进行硬编码,而是用户可配置的,通常存储在纯文本文件中。
yum有自己的配置文件,我们将其称之为yum源。yum在下载软件包时,是要先去他自己的配置文件里面查找对应的软件包的地址,然后根据地址去搜索特定的软件,最后进行下载。
如何查看配置文件
我们的yum源路径:/etc/yum.repos.d (.d是列出目录)
在CentOS中,CentOS-Base.repo是我们yum唯一的配置文件。
命令:cd /etc/yum.repos.d
如何更换yum源
在centOS中:
- 将原yum源文件 CentOS-Base.repo重命名(让Linux不再认为它是基础yum源)
- 运行wget 获取新的yum源配置文件(通过网络搜索得到 )
- 对获取到的新的yum源配置文件,进行mv重命名为CentOS-Base.repo(让Linux重新认为yum源配置文件是我们新获取的配置文件)
- 运行yum clean all && yum makecache 清理老的缓存并生成新的缓存
找不到想安装的软件?
如果你找不到想安装的软件,那么此软件就有可能就是在扩展的yum源中:epel.repo
我们可以运行 命令:sudo yum install -y epel-release 进行解决
注:此命令会根据你的base yum源,找到与之配的扩展yum源
本节完