apt 和 dpkg
Debian 软件包管理由多个层级组成。底层由 dpkg 和相关程序组成。处在上层的是「apt 系列工具」,例如 apt、apt-get、apt-cache。用户使用最频繁的命令当属 apt
和 dpkg
。
apt 旨在为最终用户提供一种简单有效的处理软件包的方法。它将软件包集中存储在软件仓库,用户可以集中获取软件而无需到分散的站点逐个下载,可以用一条简单的命令批量完成软件的安装、升级和移除。
dpkg
也可用于安装和移除软件包,但是没有 apt 方便。面对 apt 无法胜任的工作,我们才会选择它。
常用示例
安装 busybox 然后卸载
1
2
3
|
sudo apt update
sudo apt install busybox
sudo apt remove busybox
|
升级所有已安装的软件包
1
2
|
sudo apt update
sudo apt upgrade
|
查看软件包细节
apt 常用命令介绍
update
更新可用软件包列表。
upgrade
升级已安装的软件包,现有软件包不会被删除。
full-upgrade
执行 upgrade
进行升级。此命令进行完整的升级,必要情况下会删除已安装的软件包。
list
根据名称列出软件包。
search
搜索软件包描述。
show
显示软件包细节。
install
安装软件包。
remove
移除软件包。
purge
移除软件包并删除配置文件。
autoremove
卸载所有自动安装且不再使用的软件包。
!!! note
upgrade
可升级所有已安装的软件包,即更新操作系统。升级操作系统大版本通常需要删除一些遗弃的软件包,因此需要使用 full-upgrade
,例如从 Debian 9 升级到 Debian 10。
配置 apt 源
apt 从一个或多个「软件仓库」(源) 下载软件包并将其安装到你的计算机上。源通常是网络服务器,例如官方的 DebianStable 仓库。因为网速问题,我们通常会选择国内的镜像服务器(腾讯软件源、阿里云开源镜像站、清华大学开源软件镜像站),或者使用私有的服务器。
配置国内镜像源
这里以 Debian 10 和 Ubuntu 18.04 为例,其他版本请参考相应的文档:https://developer.aliyun.com/mirror/
Debian 10
1
2
3
4
5
6
7
8
9
|
sudo tee /etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/debian buster main
deb-src https://mirrors.aliyun.com/debian buster main
deb https://mirrors.aliyun.com/debian-security/ buster/updates main
deb-src https://mirrors.aliyun.com/debian-security/ buster/updates main
deb https://mirrors.aliyun.com/debian buster-updates main
deb-src https://mirrors.aliyun.com/debian buster-updates main
EOF
sudo apt update
|
上面的操作可以稍微改进一下,将主机地址和系统版本替换为变量,如下:
1
2
3
4
5
6
7
8
9
10
11
|
sHost="mirrors.aliyun.com"
release="buster"
sudo tee /etc/apt/sources.list <<EOF
deb http://${sHost}/debian ${release} main
deb-src http://${sHost}/debian ${release} main
deb http://${sHost}/debian-security ${release}/updates main
deb-src http://${sHost}/debian-security ${release}/updates main
deb http://${sHost}/debian ${release}-updates main
deb-src http://${sHost}/debian ${release}-updates main
EOF
sudo apt update
|
Ubuntu 18.04
1
2
3
4
5
6
7
8
9
|
sudo tee /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
EOF
sudo apt update
|
!!! note
apt update
根据 sources.list 更新可用软件包列表,修改配置文件后执行 update 才能正式生效。用户可以每次安装或升级软件时都执行一次 update,也可以仅在重要的操作前执行。本书其他地方可能会忽略这一步。
添加第三方源
下面是安装 vscode 的步骤:
1
2
3
4
5
6
7
8
9
10
11
12
|
# 安装 GPG
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
# 添加源
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
# 更新可用软件包列表
sudo apt update
# 安装 vscode
sudo apt install code
|
第三方软件源可以写入 /etc/apt/sources.list
,但更好的安排是在 /etc/apt/sources.list.d
目录下创建一个 list 文件,当不需要时可以删除相应的文件而避免频繁修改一个主配置文件。当 /etc/apt/sources.list.d/vscode.list
被删除后,vscode 仍然可以正常使用,但无法被 apt upgrade
升级。