首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux包管理器:高效安装软件的秘诀

Linux包管理器:高效安装软件的秘诀

作者头像
用户11831438
发布2025-12-30 12:23:49
发布2025-12-30 12:23:49
1130
举报

一. 认识软件包管理器:Linux的 “应用商店”

在Linux中存在多种软件安装的方法:

  1. 源代码安装
  2. rmp包
  3. yum/apt:包管理器

通过上面列举的3种软件安装的方法中,最推荐使用是:yum/apt:包管理器,源代码和rmp包不太推荐。

那接下来,我们就要来看看包管理器是什么?

1.1 包管理器:Linux系统的“软件管家”

ok,我们知道在手机上会提供应用商店,并且windows上也存在应用商店,不管是手机上的应用商店还是windows中的应用商店,无非就是一个app或者应用程序,本质上就是一个客户端。

当我们在应用商店中下载软件时,实际上并非直接从应用商店下载安装包,而是通过商店提供的链接,从托管该软件文件的服务器进行下载。

那包管理器就类似于Linux下的应用商店,也是一个客户端!!!

  • yum(Yellow dog Update,Modified)是Linux下非常常用的一种包管理器,主要应用在Fedora,RedHat,Centos等发行版上
  • Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能

Linux下载软件的过程(ubuntu、centos、other)——

ok,聊完了这个,接下来我们来聊一下Linux软件包生态的问题——

1.2 Linux软件包生态:开源世界的“应用商店”体系

这里的核心就是:如何评估一款操作系统的好坏?

也许会有uu想说,一款操作系统系统的好坏不就是:看他是否稳定,是否被大多数人使用吗?

ok,这是对的,但是如果你这样和你的老板说的话,老板有可能不是那么认可。

一款操作系统的好坏是看这款操作系统是否有完善的生态!!!

一个完善的生态应该包含这些:

社区完善,论坛活跃,官方文档完善,软件体系非常丰富,维护更新速度及时,有bug及时修,操作系统本身比较稳定,并且富有大量针对性的客户群体……

作为Linux系统的开发者,你就必须想办法让更多人用起来,那Linux操作系统就必须要有完善的操作系统生态——

我们知道Linux系统是一款开源的操作系统,既然是开源的并且Linux具有完善的生态,那自然就会有人愿意给Linux写相应的引用软件,并且提供云服务器让你下载

并且开源的本质也是一种商业模式!!!

CentOS的社区论坛:The CentOS Project

Ubuntu Releasesubuntu的社区论坛:Ubuntu Releases

在使用yum/apt时,你的Linux机器是怎么知道软件包在全球的哪台机器上的呢?

ok,其实在你的云服务器内部会存在某种配置文件,这个配置文件里面会保存目标服务器的下载链接官方地址,然后在使用yum/apt时,你的Linux机器就会去相应的官方下载链接中去下载相应的软件。

但是,我们知道不管是centos,还是ubuntu,他们的服务器都是在国外的,那既然在国外,我们在国内对这些服务器进行访问的时候,就会有些问题,那在我们的国内就有国内Linux软件安装源的官方链接——

1. 清华大学开源软件镜像站(官方镜像)

代码语言:javascript
复制
https://mirrors.tuna.tsinghua.edu.cn/
  • 官方状态:被各大发行版列为官方镜像
  • 支持:Ubuntu, Debian, CentOS, Arch Linux, Fedora等

2. 中国科学技术大学镜像站(USTC)

代码语言:javascript
复制
http://mirrors.ustc.edu.cn/
  • 官方状态:官方镜像站
  • 支持:几乎所有主流发行版

3. 阿里云开源镜像站

代码语言:javascript
复制
https://developer.aliyun.com/mirror/
  • 官方状态:官方合作镜像
  • 支持:Ubuntu, Debian, CentOS, Fedora等

4. 华为云开源镜像站

代码语言:javascript
复制
https://mirrors.huaweicloud.com/
  • 官方状态:官方镜像
  • 支持:主流发行版

以上所列举的都是国内镜像源。其工作原理是:各大服务商将官方软件仓库同步到位于国内的服务器上,我们实际上是从这些境内服务器下载软件包,从而获得更快的速度与更稳定的连接。

那接下来的问题就是:我们为什么选择使用yum/apt进行下载相应的软件呢?

这是因为:

  • 那为什么要有yum/apt呢?

因为yum/apt方便,并且可以解决软件依赖,直接帮我们下载软件和该软件所依赖的软件包

ok,解决了操作系统生态的问题,我们也知道了yum/apt在下载软件的时候,会去Linux机器中的配置文件中保存的官方下载链接去下载相应的软件,那接下来我们就要来学习一下:我们该怎么使用yum/apt进行下载操作呢?

二、yum与apt实战指南:掌握两大主流包管理器

2.1 查看软件包
2.1.1 yum

通过 yum list 命令可以罗列出当前centos一共有哪些软件包。

代码语言:javascript
复制
# yum list 查看centos中的所有软件
[carrot@VM-0-16-centos ~]$ yum list

由于包的数量过多,这里我们就要使用grep命令来帮我们来筛选我们所关注的包,例如:

代码语言:javascript
复制
[carrot@VM-0-16-centos ~]$ yum list | grep lrzsz
lrzsz.x86_64                             0.12.20-36.el7                @os  
  • 软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.CPU架构
  • “x86_64”后缀表示64位系统的安装包,“i686”后缀表示32位系统安装包。在选择包时要和系统匹配
  • “el7”表示操作系统发行版的版本。“el7”表示的是centos7/redhat7。“el7”表示centos6/redhat6
  • 最后一列,base表示的是“软件源”的名称(@os 就是 @base,只是显示的名称不同),类似于“小米应用商店”,“华为应用商店”……

这样我们就可以在众多软件包中找到 lrzsz。

2.1.2 apt
  • apt search 你的包名字 可以在ubuntu的众多软件包中找到你所关注的包
  • apt show 你的包名字 可以查看你所关注包的更详细的信息
代码语言:javascript
复制
# Ubuntu

# apt search 你的包名字  可以在ubuntu的众多软件包中找到你所关注的包

$ apt search lrzsz
Sorting... Done
Full Text Search... Done
cutecom/focal 0.30.3-1build1 amd64
Graphical serial terminal, like minicom
lrzsz/focal,now 0.12.21-10 amd64 [installed]
Tools for zmodem/xmodem/ymodem file transfer

# apt show 你的包名字   可以查看你所关注包的更详细的信息

$ apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
Priority: optional
Section: universe/comm
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Martin A. Godisch <godisch@debian.org>
...

对于ubantu中的软件包就有详细的介绍!!!

2.2 下载和卸载软件
2.2.1 yum下载和卸载软件
代码语言:javascript
复制
# 下载软件
# -y 表示下载软件的时候不会被询问,直接自动确认
sudo yum install [-y] 软件包名

# 卸载软件
# -y 表示卸载软件的时候不会被询问,直接自动确认
sudo yum remove [-y] 软件包名

yum会自动找到都有哪些软件包需要下载/卸载,加上 -y 选项 直接敲“enter”安装/卸载即可

注意事项:

  • 安装软件和卸载软件时需要向系统目录中写入内容,一般需要sudo或者切到root账户下才能完成
  • yum安装软件只能一个安装完之后才能再安装另一个。正在yum安装一个软件的过程中,如果再尝试用yum安装另一个软件,yum会报错
  • 报错自行查资料

我们知道所谓的软件安装就是将软件拷贝到/usr/bin的路径下,/usr/bin是root(管理员)创建的

代码语言:javascript
复制
[carrot@VM-0-16-centos ~]$ ll -d /usr/bin
dr-xr-xr-x. 2 root root 36864 Dec 22 21:22 /usr/bin

作为普通用户没有权限在/usr/bin/路径下进行操作,所以我们需要 su 切换成root,或者对命令进行提权才能进行下载和删除软件,我们一般使用命令提权

代码语言:javascript
复制
# 命令提权可以下载
[carrot@VM-0-16-centos ~]$ sudo yum install -y lrzsz

# 切换成root可以下载
[carrot@VM-0-16-centos ~]$ su 
Password: 
[root@VM-0-16-centos carrot]# yum install -y lrzsz

卸载软件同样如此!!!

代码语言:javascript
复制
[carrot@VM-0-16-centos ~]$ sudo yum remove -y lrzsz

[carrot@VM-0-16-centos ~]$ su
Password: 
[root@VM-0-16-centos carrot]# yum remove -y lrzsz

补充命令:

代码语言:javascript
复制
# -d 选项表示不要显示该目录下的内容,只查看当前目录本身
[root@VM-0-16-centos carrot]# ll -d /usr/bin
dr-xr-xr-x. 2 root root 36864 Dec 25 21:27 /usr/bin
2.2.2 apt下载和卸载软件
代码语言:javascript
复制
# 下载软件
# -y 表示下载软件的时候不会被询问,直接自动确认
sudo apt install [-y] 软件包名

# 卸载软件
# -y 表示卸载软件的时候不会被询问,直接自动确认
sudo apt remove [-y] 软件包名

apt会自动找到都有哪些软件包需要下载/卸载,加上 -y 选项 直接敲“enter”安装/卸载即可

注意事项:

  • 安装软件和卸载软件时需要向系统目录中写入内容,一般需要sudo或者切到root账户下才能完成
  • apt安装软件只能一个安装完之后才能再安装另一个。正在apt安装一个软件的过程中,如果再尝试用apt安装另一个软件,apt会报错
  • 报错自行查资料

这里有个问题:那我怎么知道我要用的包的名字是什么?装什么包呢?

  • 这是和应用场景有关的!!!需要什么包就下载什么包
2.3 关于Linux / Windows下多用户软件安装次数的问题
  • Linux中软件安装,如果是多用户,安装几次呢?

1次,因为是以root的权限进行安装的,在/usr/bin路径下安装的

Windows在安装软件的时候会询问是多用户安装还是单用户安装,前者和Linux一样,装了就所有的用户都装好了,后者则只会安装指定用户。

Windows系统一般只有一个用户。

2.4 注意事项

关于yum/apt的所有操作必须保证主机(虚拟机)网络畅通

可以通过ping指令验证——

代码语言:javascript
复制
ping www.baidu.com

# 当天yum / apt也能离线安装,但是和我们当前⽆关,暂不关⼼。

那这里还有一个问题:yum/apt怎么知道我要安装的软件在什么位置?

在CentOS和Ubuntu中,包管理器通过配置文件获知软件仓库的地址,然后下载仓库的索引文件。这些索引包含了每个软件包在仓库中的具体存储路径,从而定位到确切的下载位置。

项目

CentOS/RHEL (yum)

Ubuntu/Debian (apt)

配置文件

/etc/yum.repos.d/*.repo

/etc/apt/sources.list 和 /etc/apt/sources.list.d/*.list

索引文件

repodata/primary.xml.gz

Packages.gz

ok,那接下来我们就要来聊聊安装源了——

2.5 安装源
  • Cetnos 安装源路径:
代码语言:javascript
复制
$ ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源
-rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源

# 安装扩展源
# $ sudo yum install -y epel-release
[root@VM-0-16-centos carrot]# ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root  641 Sep 11 11:52 CentOS-Base.repo
-rw-r--r-- 1 root root  230 Sep 11 11:52 CentOS-Epel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo

Base 表示稳定软件源;epel 表示扩展软件源

@Base 在稳定软件源中下载;@epel 在扩展软件源中下载

  • Ubuntu 安装源路径:
代码语言:javascript
复制
$ cat /etc/apt/sources.list # 标准源
$ ll /etc/apt/sources.list.d/ # 扩展源
# ubuntu 安装扩展源,就结合未来具体场景
2.6 更新安装源

更新安装源,云服务器不用考虑,因为软件源都是国内的了,其它需要的话可以参考——CentOS 更新yum源及yum命令详解_cnteos更新源命令-CSDN博客

好玩的命令Linux命令行的有趣命令_linux有趣的命令-CSDN博客

结尾

希望对学习Linux相关内容的uu有所帮助,不要忘记给博主“一键三连”哦!

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:

https://cloud.tencent.com/developer/support-plan?invite_code=bg03csc6h92

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 认识软件包管理器:Linux的 “应用商店”
    • 1.1 包管理器:Linux系统的“软件管家”
    • 1.2 Linux软件包生态:开源世界的“应用商店”体系
  • 二、yum与apt实战指南:掌握两大主流包管理器
    • 2.1 查看软件包
      • 2.1.1 yum
      • 2.1.2 apt
    • 2.2 下载和卸载软件
      • 2.2.1 yum下载和卸载软件
      • 2.2.2 apt下载和卸载软件
    • 2.3 关于Linux / Windows下多用户软件安装次数的问题
    • 2.4 注意事项
    • 2.5 安装源
    • 2.6 更新安装源
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档