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 nginxbash
$ 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 all11.3 Pacman(Arch Linux)
bash
# 同步数据库并升级系统
sudo pacman -Syu
# 安装
sudo pacman -S nginx
# 搜索
pacman -Ss nginx
# 卸载(连同未被其他包使用的依赖)
sudo pacman -Rns nginx11.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📝 备注: 📝 注意:源码编译安装的软件不会被包管理器管理,升级和卸载都比较麻烦。能用包管理器安装的,尽量用包管理器。