【Linux】基础开发工具---yum / apt
欢迎拜访:Madison-No7个人主页
文章主题:基础开发工具---yum / apt
隶属专栏:🌈🌈从0到1掌握Linux
写作日期:✏️ 2025年10月6号✏️
目录
🚀关于Linux中安装软件的问题:
🚀操作系统的生态
🚀Linux中安装软件操作
🪐查看软件包信息:
🪐下载软件
🪐卸载软件
🪐 安装源
🪐更新安装源
🚀关于Linux中安装软件的问题:
在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进⾏编译, 得到可执⾏程序,但是这种方法很麻烦,因为要依赖系统已安装的编译工具(如 gcc、make)和依赖库,缺少依赖时会导致编译失败;安装后难以通过统一工具(如 apt、yum)管理和卸载。所以这种方法几乎不用。
还有一种方法是开发人员把软件提前编译好了, 做成软件包(可以理解成windows上的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进⾏安装。软件包和包管理器它们之间就好⽐windows中 "App" 和 "应⽤商店" 这样的关系。
说明:软件包是将软件的二进制可执行文件、配置文件、各种依赖库、文档等相关文件,按特定格式打包而成的归档文件。
如果我们自己去下载软件包的话,由于软件之间存在复杂的依赖关系,很有可能下好后缺失一这些图形库,数学库等等各种库,即便依赖库问题解决了,但是还有可能存在版本兼容的问题。
🌸所以在Linux中,推荐使用包管理器安装软件,因为管理器会自动帮我们解决依赖问题。
🌸Linux 主要分为两大包管理器:
-
yum(Yellow dog Updater, Modified)包管理器。主要应⽤在Fedora, RedHat, Centos等发⾏版上。
-
apt包管理器,主要应⽤在Ubuntu发⾏版上。
🌸Linux下载软件的过程:
简单的过程就是向远端服务器发送下载请求后,通过网络下载到本地,然后进行安装,其实就是拷贝,把相关的配置文件以及库拷贝到Linux对应的目录下。这就是为什么Linux根目录下,存在各种目录,它们是用来存储下载软件的配置文件和一些库的。
根目录下的这些文件,都是属于root的,对于other来说,很多文件都没有写(W)的权限,所以安装软件必须使用root权限,root用户安装好后,其他人也能使用,因为对于其他人,这些文件都有r和x权限。
🌸所以安装软件到系统里,只安装一次,任何人都可以使用了。
🚀操作系统的生态
🌸评估一款操作系统好坏要从操作系统的生态去考虑。
大家都知道Linux是开源的,我们可以在云服务上下载各种软件,它们都是免费的,那为什么会有人免费的为社区提供各种软件呢,还发布?还提供云服务器让你下载?这是因为里面存在商业利益。
🌸分析一下Linux的生态是如何运转的:
我们想要安装的这些软件,都是由Linux社区提供的,Linux 社区是由全球范围内的开发者、用户、企业和组织共同组成的松散协作网络,核心目标是维护、发展 Linux 系统及相关开源软件,社区里面有很多的开发者和企业,它们开发出来软件,会进行源代码的编译,然后把它做成各种版本的软件包,上线到Ubuntu 官方仓库、RedHat 官方仓库等等,我们就可以通过网络下载使用了。我们下载一个软件要通过链接找到它,而操作系统里面内置链接,但是不同版本的linux大多是外国人发明的,所以操作系统的生态在国外,系统的内置下载链接都是国外的链接,在我国访问国外的链接是要翻墙的,所以Linux社区的中国人把国外的网站镜像在内网,就是把外网的资源都拷贝过来,同时要更改下载链接(为了在国内能用),也就是切换镜像源。
这就好比:我们平时刷视频的抖音,它是由字节跳动这家公司开发,开发完后,进行源代码的编译,然后把它做成各种软件包,以适配不同的平台,最后将其上线到各品牌手机的应用商店,我们就可以在手机或电脑的应用商店里下载了。
🚀Linux中安装软件操作
🪐查看软件包信息:
Centos下:
yum list
,查看当前环境下支持的所有软件。也可以配合管道|
和行文本过滤器grep
来筛选出我们关注的包。比如:yum list | grep lrzsz ,筛选出lrzsz文件。
各字段含义:
lrzsz:软件名
.x86_64:表示64位系统下的安装包。_86后缀表示32位系统的安装包。选择包的时候要和系统匹配。
0.12.20-36:该软件包的具体版本号
el7:表示操作系统发行版的版本,也就是centos7
@os:表示软件是“软件源”的名称,类似于 "⼩⽶应⽤商店" 这样的概念.
Ubuntu下:
各字段含义:
lrzsz
:这是软件包的名称
/jammy
:表示该软件包属于 Ubuntu 22.04 LTS 系统("jammy" 是 Ubuntu 22.04 的代号)
now 0.12.21-10
:now
表示当前系统中已安装的版本是0.12.21-10
,这是该软件包的具体版本号。
amd64
:表示软件包的架构,适用于 64 位 x86 处理器(常见的 PC 或服务器大多是此架构)。
[installed]
:明确标识该软件包已经安装在当前系统中。
Tools for zmodem/xmodem/ymodem file transfer
:这是软件包的简要描述,说明其用途是提供 zmodem、xmodem、ymodem 协议的文件传输工具。
🪐下载软件
Centos下:
指令:
- yum install
示例:
-
yum install lrzsz.x86_64
:安装前询问,.x86_64可以不带 -
yum install -y lrzsz.x86_64
:安装前不询问
Ubuntu下:
指令:
- apt install
示例:
-
apt install lrzsz
:安装前询问 -
apt install -y lrzsz
:安装前不询问
🪐卸载软件
Centos下:
指令:
- yum remove +软件名
示例:
-
yum remove lrzsz
:卸载前询问 -
yum remove -y lrzsz
:卸载前不询问
Ubuntu下:
指令:
- apt remove +软件名
示例:
-
apt remove lrzsz
:卸载前询问 -
apt remove -y lrzsz
:卸载前不询问
lrzsz软件是个啥?其中rz和sz用于windows和Linux之间互传文件。只要安装了lrzsz,就可以使用rz和sz指令,其中rz表示receive zip,接收压缩文件,sz表示send zip表示发送压缩文件,我在Linux入门指南:从零掌握基础指令中的zip指令具体讲到了sz和rz的用法。
🪐 安装源
前面说了,每一个云服务器都内置了下载软件的链接。那它在哪里呢?
/etc/yum.repos.d/
其中CentOS-Base.repo
是官方认可的yum源,里面就存放的有下载链接,可以通过指令vim /etc/yum.repos.d/CentOS-Base.repo
去查看。

🪐更新安装源
云服务器不⽤考虑,因为软件源都是镜像的了。更新安装源本质就是更新配置文件(CentOS-Base.repo
)。
🔍参考博客:
- 更改CentOS7 yum源
- Ubuntu 更换apt-get源
🔍一些好玩的命令,大家可以安装来玩一玩:
-
Linuxcentos7版本下一些好玩有趣的命令
-
让您爱上Ubuntu的14条有趣命令
完。
今天的分享就到这里,感谢各位大佬的关注,还请大家多多支持,你们的支持是我前进的最大动力!