Skip to content

11. 软件包管理

11.1 APT(Debian/Ubuntu)

bash
# 更新软件源列表
sudo apt update

# 升级所有已安装的包
sudo apt upgrade

# 更新并升级(推荐组合)
sudo apt update && sudo apt upgrade -y

# 安装软件
sudo apt install nginx
sudo apt install git curl wget vim

# 卸载软件
sudo apt remove nginx          # 保留配置
sudo apt purge nginx           # 删除配置
sudo apt autoremove            # 清理不需要的依赖

# 搜索软件
apt search nginx
apt show nginx

# 列出已安装的软件
apt list --installed
apt list --installed | grep nginx
bash
$ sudo apt install nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  nginx nginx-common nginx-core
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,234 kB of archives.
After this operation, 4,567 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 nginx-common all 1.18.0-6ubuntu14.4 [41.2 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 nginx-core amd64 1.18.0-6ubuntu14.4 [1,180 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 nginx amd64 1.18.0-6ubuntu14.4 [4.5 kB]
Fetched 1,234 kB in 2s (617 kB/s)
Selecting previously unselected package nginx-common.
(Reading database ... 185432 files and directories currently installed.)
Unpacking nginx-common (1.18.0-6ubuntu14.4) ...
Setting up nginx (1.18.0-6ubuntu14.4) ...

11.2 DNF(Fedora/CentOS/RHEL)

bash
# 安装
sudo dnf install nginx

# 升级
sudo dnf upgrade

# 搜索
dnf search nginx

# 卸载
sudo dnf remove nginx

# 清理缓存
sudo dnf clean all

11.3 Pacman(Arch Linux)

bash
# 同步数据库并升级系统
sudo pacman -Syu

# 安装
sudo pacman -S nginx

# 搜索
pacman -Ss nginx

# 卸载(连同未被其他包使用的依赖)
sudo pacman -Rns nginx

11.4 源码编译安装

有些软件没有预编译包,需要从源码编译安装。

bash
# 安装编译工具
sudo apt install build-essential

# 典型的编译安装三步曲
tar -xzf software-1.0.tar.gz
cd software-1.0
./configure --prefix=/usr/local
make
sudo make install

# 安装 cmake 项目
git clone https://github.com/example/project.git
cd project
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install

📝 备注: 📝 注意:源码编译安装的软件不会被包管理器管理,升级和卸载都比较麻烦。能用包管理器安装的,尽量用包管理器。