
想在你的Linux服务器上装个Nginx跑网站?或者装个vim
、curl
这样的小工具?是不是觉得不像在Windows上找个 .exe
文件双击那么直接?难道要像远古大神一样去下载源码,然后 ./configure && make && make install
一套操作猛如虎,结果卡在某个依赖库上欲哭无泪?
好消息是:根本不需要! 现代Linux发行版早就为你准备好了超级方便的“软件管家”——包管理器 (Package Manager)。
把它想象成你服务器上的**“应用商店” + “智能安装工” + “更新小助手”** 的结合体。有了它:
- 找软件方便: 它连接着官方或社区维护的软件仓库 (Repositories),里面有成千上万预先编译好的软件包。
- 安装简单: 通常一条命令就能搞定软件安装。
- 自动解决依赖: 这绝对是它的核心价值! 你要装软件A,它发现A需要库B和工具C才能运行?没问题,包管理器会自动把B和C也一并帮你装好,你完全不用操心。
- 更新、卸载轻松: 保持软件最新或清理不再需要的软件同样简单。
今天,我们就来认识一下Linux两大主流发行版阵营的当家包管理器:
- Debian / Ubuntu 及其衍生版: 使用
apt
(Advanced Package Tool) 命令族。 - Fedora / CentOS Stream / RHEL / Rocky Linux / AlmaLinux 等: 使用
dnf
(Dandified YUM) 命令。(yum
在较新系统中通常是dnf
的一个别名,用法基本一致,但推荐用dnf
)。
Debian/Ubuntu 阵营当家:apt
实战
如果你用的是Ubuntu或Debian系统,apt
就是你的好伙伴。
- 更新软件包列表 (极其重要!)
- 在安装或升级任何软件之前,务必先运行这个命令,它会从软件仓库同步最新的可用软件包列表和版本信息。
- Bash
sudo apt update
- (注意:
apt update
只更新列表,不升级软件本身)
- 升级已安装的软件包
- 将你服务器上所有已安装的软件包更新到仓库中可用的最新版本。
- Bash
sudo apt upgrade -y
-y
参数会自动回答“yes”,省去确认环节。- (偶尔你可能会看到
apt full-upgrade
,它在处理依赖关系变化时更“激进”,可能会卸载旧的包,新手建议先用apt upgrade
)
- 安装新软件包
- Bash
sudo apt install <软件包名1> <软件包名2> ... -y #
例如,安装 Nginx, Vim 和 Curl:
sudo apt install nginx vim curl -y
- 可以一次安装多个包,用空格隔开。
- 卸载软件包
- 只卸载包,保留配置文件:
- Bash
sudo apt remove <软件包名> -y
- 彻底卸载包及其配置文件:
- Bash
sudo apt purge <软件包名> -y
- 清理不再需要的依赖包: 安装软件时自动装上的依赖,在卸载主软件后可能就不再需要了,用这个命令清理:
- Bash
sudo apt autoremove -y
- (通常在
remove
或purge
之后运行一次)
- 搜索与查看软件包信息
- 搜索包:
- Bash
apt search <关键词>
# 例如: apt search web server
- 查看包的详细信息:
- Bash
apt show <软件包名> #
例如: apt show nginx
Fedora/RHEL/CentOS 阵营代表:dnf
实战
如果你用的是CentOS Stream, Rocky, AlmaLinux, Fedora等系统,dnf
是你的主力工具 (yum
命令通常也能用,它现在大多是指向dnf
的链接)。
- 检查更新 (可选但推荐)
dnf
在安装时通常会自动检查,但手动检查一下总没错。- Bash
sudo dnf check-update
- 升级已安装的软件包
- Bash
sudo dnf upgrade -y
# 或者 sudo dnf update -y (在新版 dnf 中效果通常一样)
- 安装新软件包
- Bash
sudo dnf install <软件包名1> <软件包名2> ... -y
# 例如:
sudo dnf install nginx vim curl -y
- 卸载软件包
- Bash
sudo dnf remove <软件包名> -y
- 清理不再需要的依赖包:
- Bash
sudo dnf autoremove -y
- (注意:
dnf
没有像apt purge
那样内置的彻底清除配置文件的直接命令,通常remove
就够了,配置文件是否删除取决于包本身的脚本)
- 搜索与查看软件包信息
- 搜索包:
- Bash
dnf search <关键词>
# 例如: dnf search nginx
- 查看包的详细信息:
- Bash
dnf info <软件包名>
# 例如: dnf info nginx
- 检查包是否已安装:
- Bash
dnf list installed <软件包名>
Apt vs DNF 小结
虽然命令细节略有不同,但核心思想是一致的:连接仓库 -> 处理依赖 -> 安装/更新/卸载。记住你所用发行版对应的命令就好!
关于软件仓库 (Repositories)
包管理器默认会从系统自带的官方仓库获取软件。这些仓库里的软件通常经过测试,比较稳定。但有时你可能需要更新版本的软件,或者官方仓库里没有你想要的软件,这时可能需要添加额外的第三方仓库 (比如Ubuntu上的PPA,或者CentOS/RHEL上的EPEL仓库、软件开发商自己的仓库),但这会增加一定的复杂性和潜在风险,操作前要了解清楚。
看,有了 apt
或 dnf
这两位“软件管家”,在Linux服务器上管理软件是不是瞬间感觉清晰、简单多了?它们帮你处理了最头疼的依赖问题,保证了软件来源的相对可靠性,还能方便地保持系统更新。
记住这几个核心操作:更新列表 (apt update
/ dnf check-update
)、安装 (install
)、升级 (upgrade
/update
)、卸载 (remove
/purge
)、搜索 (search
)。养成使用包管理器来安装和管理软件的习惯,这是Linux系统管理的基础,也是保障系统稳定和安全的重要一环。现在,大胆去软件仓库里探索你需要的工具吧!