APT系列工具可能是Deb软件包管理工具中功能最强大的。Ubuntu将所有的开发软件包存放在Internet上的许许多多镜像站点上。用户可以选择其中最适合自己的站点作为软件源。然后,在APT工具的帮助下,就可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等。
常用的APT实用程序有:apt。
sudo apt install <软件名称>
sudo apt -f install #修复系统的软件安装错误
#例如
sudo apt install sl # 小火车 安装软件, 可以使用LS 去执行这个可执行程序
sudo apt install snake4 # 贪吃蛇游戏 , 可以使用snake4 启动程序
sudo apt remove <软件名称>
sudo apt autoremove # 自动卸载系统不再需要的软件包
# 例如
sudo apt remove sl # 卸载火车软件
sudo apt remove snake4 # 卸载贪吃蛇游戏
linux@ubuntu:~$ sudo apt install sl # 安装软件
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装:
sl
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 26.4 kB 的归档。
解压缩后会消耗 98.3 kB 的额外空间。
获取:1 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 sl amd64 3.03-17build2 [26.4 kB]
已下载 26.4 kB,耗时 0秒 (330 kB/s)
正在选中未选择的软件包 sl。
(正在读取数据库 ... 系统当前共安装有 162585 个文件和目录。)
正准备解包 .../sl_3.03-17build2_amd64.deb ...
正在解包 sl (3.03-17build2) ...
正在设置 sl (3.03-17build2) ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
linux@ubuntu:~$ LS # 运行程序
linux@ubuntu:~$ sudo apt remove sl # 卸载软件
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【卸载】:
sl
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
解压缩后将会空出 98.3 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 162643 个文件和目录。)
正在卸载 sl (3.03-17build2) ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
Llinux@ubuntu:~$ LS # 运行程序失败
Command 'LS' not found, but can be installed with:
sudo apt install sl
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt remove snake4 # 卸载贪吃蛇游戏
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
libshhmsg1 libshhopt1
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:
snake4
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
解压缩后将会空出 272 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 162612 个文件和目录。)
正在卸载 snake4 (1.0.14-1build1) ...
正在处理用于 desktop-file-utils (0.23-1ubuntu3.18.04.2) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 gnome-menus (3.13.3-11ubuntu1.1) 的触发器 ...
正在处理用于 mime-support (3.60ubuntu1) 的触发器 ...
linux@ubuntu:~$
#policy 策略,
sudo apt policy <软件名称>
sudo apt policy gcc # 检查gcc 的安装状态
sudo apt policy sl # 检查sl 软件安装状态
sudo apt policy snake4 # 检查snake4 软件安装状态
例如:
linux@ubuntu:~$ sudo apt policy gcc
gcc:
已安装:4:7.4.0-1ubuntu2.3
候选: 4:7.4.0-1ubuntu2.3
版本列表:
*** 4:7.4.0-1ubuntu2.3 500
500 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages
500 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 Packages
100 /var/lib/dpkg/status
4:7.3.0-3ubuntu2 500
500 http://mirrors.yun-idc.com/ubuntu bionic/main amd64 Packages
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt policy sl
sl:
已安装:(无)
候选: 3.03-17build2
版本列表:
3.03-17build2 500
500 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
linux@ubuntu:~$ sudo apt policy snake4
snake4:
已安装:(无)
候选: 1.0.14-1build1
版本列表:
1.0.14-1build1 500
500 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
100 /var/lib/dpkg/status
linux@ubuntu:~$
sudo apt list # 列出系统所有的软件包清单
sudo apt list <软件名称> # 列出这个软甲的清单
sudo apt list <软件名称> -a # 列出这个软件的所有版本清单
# 例如
sudo apt list gcc
sudo apt list gcc -a
sudo apt list sl -a
sudo apt list snake4
例如
linux@ubuntu:~$ sudo apt list gcc
正在列表... 完成
gcc/bionic-security,bionic-updates,now 4:7.4.0-1ubuntu2.3 amd64 [已安装]
N: 还有 1 个版本。请使用 -a 选项来查看它(他们)。
linux@ubuntu:~$ sudo apt list gcc -a
正在列表... 完成
gcc/bionic-security,bionic-updates,now 4:7.4.0-1ubuntu2.3 amd64 [已安装]
gcc/bionic 4:7.3.0-3ubuntu2 amd64
linux@ubuntu:~$ sudo apt list sl -a
正在列表... 完成
sl/bionic 3.03-17build2 amd64
linux@ubuntu:~$ sudo apt list snake4
正在列表... 完成
snake4/bionic,now 1.0.14-1build1 amd64 [配置文件残留] # 这个软件在卸载后, 有残留, 需要解决
linux@ubuntu:~$
sudo apt purge <软件名称>
sudo apt purge snake4 # 卸载软件和清除配置文件
例如:
linux@ubuntu:~$ sudo apt purge snake4
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
libshhmsg1 libshhopt1
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:
snake4*
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 162597 个文件和目录。)
正在清除 snake4 (1.0.14-1build1) 的配置文件 ... # 残留的配置文件被清除
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt list snake4 # 检查是否把配置文件清除
正在列表... 完成
snake4/bionic 1.0.14-1build1 amd64
linux@ubuntu:~$
在可以用的软件包中搜索制定的包 , 如果找到,该命令将返回名称与搜索词匹配的包。
sudo apt search <软件包名称>
# 例如
sudo apt search snake4
linux@ubuntu:~$ sudo apt search snake4
正在排序... 完成
全文搜索... 完成
snake4/bionic 1.0.14-1build1 amd64
Snake game
从服务器更新软件信息到本地 ,保持本地的软件信息和服务器一致 。
sudo apt update # 更软软件源信息
sudo apt list --upgradable # 查看可升级的软件信息
例如:
linux@ubuntu:~$ sudo apt update
命中:1 http://mirrors.yun-idc.com/ubuntu bionic InRelease
获取:2 http://mirrors.yun-idc.com/ubuntu bionic-backports InRelease [74.6 kB]
获取:3 http://mirrors.yun-idc.com/ubuntu bionic-security InRelease [88.7 kB]
获取:4 http://mirrors.yun-idc.com/ubuntu bionic-updates InRelease [88.7 kB]
获取:5 http://mirrors.yun-idc.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [9,264 B]
获取:6 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages [2,365 kB]
获取:7 http://mirrors.yun-idc.com/ubuntu bionic-security/main i386 Packages [1,225 kB]
获取:8 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [55.3 kB]
获取:9 http://mirrors.yun-idc.com/ubuntu bionic-security/universe i386 Packages [1,032 kB]
获取:10 http://mirrors.yun-idc.com/ubuntu bionic-security/universe amd64 Packages [1,222 kB]
获取:11 http://mirrors.yun-idc.com/ubuntu bionic-security/universe Translation-en [282 kB]
获取:12 http://mirrors.yun-idc.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [61.1 kB]
获取:13 http://mirrors.yun-idc.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]
获取:14 http://mirrors.yun-idc.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2,464 B]
获取:15 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe amd64 Packages [1,837 kB]
获取:16 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe i386 Packages [1,623 kB]
获取:17 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe Translation-en [398 kB]
获取:18 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe amd64 DEP-11 Metadata [302 kB]
获取:19 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 Packages [2,706 kB]
获取:20 http://mirrors.yun-idc.com/ubuntu bionic-updates/main i386 Packages [1,523 kB]
获取:21 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 DEP-11 Metadata [297 kB]
已下载 15.2 MB,耗时 3秒 (5,401 kB/s)
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有 1 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
linux@ubuntu:~$
linux@ubuntu:~$ apt list --upgradable # 查看可升级的软件信息
正在列表... 完成
rsync/bionic-security,bionic-updates 3.1.2-2.1ubuntu1.5 amd64 [可从该版本升级:3.1.2-2.1ubuntu1.4]
N: 还有 2 个版本。请使用 -a 选项来查看它(他们)。
linux@ubuntu:~$
把系统升级到最新

sudo apt upgrade # 把系统所有的软件升级到最新 , 类似windows的更新
linux@ubuntu:~$ sudo apt upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在计算更新... 完成
下列软件包是自动安装的并且现在不需要了:
libshhmsg1 libshhopt1
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被升级:
rsync
升级了 1 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
1 standard security update
需要下载 335 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 rsync amd64 3.1.2-2.1ubuntu1.5 [335 kB]
已下载 335 kB,耗时 1秒 (311 kB/s)
(正在读取数据库 ... 系统当前共安装有 162598 个文件和目录。)
正准备解包 .../rsync_3.1.2-2.1ubuntu1.5_amd64.deb ...
正在将 rsync (3.1.2-2.1ubuntu1.5) 解包到 (3.1.2-2.1ubuntu1.4) 上 ...
正在设置 rsync (3.1.2-2.1ubuntu1.5) ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.53) 的触发器 ...
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt autoremove
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【卸载】:
libshhmsg1 libshhopt1
升级了 0 个软件包,新安装了 0 个软件包,要卸载 2 个软件包,有 0 个软件包未被升级。
解压缩后将会空出 85.0 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 162597 个文件和目录。)
正在卸载 libshhmsg1 (1.4.2-1) ...
正在卸载 libshhopt1 (1.1.7-3) ...
正在处理用于 libc-bin (2.27-3ubuntu1.6) 的触发器 ...
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在计算更新... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
linux@ubuntu:~$ sudo apt autoremove
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
linux@ubuntu:~$
在安装软件时 , 需要先下载软件包到本地, 之后才可以安装软件包
软件包被下载在: /var/cache/apt/archives/
sudo apt autoclean # 清除老版本的软件包 , 保留新版本的软件包
sudo apt clean # 把所有下载的软件包删除掉
linux@ubuntu:~$ ls /var/cache/apt/archives/
apport_2.20.9-0ubuntu7.28_all.deb liblwres160_1%3a9.11.3+dfsg-1ubuntu1.17_amd64.deb
apport-gtk_2.20.9-0ubuntu7.28_all.deb liblzma5_5.2.2-1.3ubuntu0.1_amd64.deb
libklibc_2.0.4-9ubuntu2.2_amd64.deb xwayland_2%3a1.19.6-1ubuntu4.11_amd64.deb
libldap-2.4-2_2.4.45+dfsg-1ubuntu1.11_amd64.deb xxd_2%3a8.0.1453-1ubuntu1.8_amd64.deb
libldap-common_2.4.45+dfsg-1ubuntu1.11_all.deb xz-utils_5.2.2-1.3ubuntu0.1_amd64.deb
liblouis14_3.5.0-1ubuntu0.4_amd64.deb zlib1g_1%3a1.2.11.dfsg-0ubuntu2.1_amd64.deb
liblouis-data_3.5.0-1ubuntu0.4_all.deb zlib1g_1%3a1.2.11.dfsg-0ubuntu2.2_amd64.deb
liblua5.2-0_5.2.4-1.1build1_amd64.deb
linux@ubuntu:~$ du -mh /var/cache/apt/archives/ # 查看目录的大小
du: 无法读取目录'/var/cache/apt/archives/partial': 权限不够
4.0K /var/cache/apt/archives/partial
396M /var/cache/apt/archives/
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt autoclean
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
Del rsync 3.1.2-2.1ubuntu1.4 [334 kB]
Del zlib1g 1:1.2.11.dfsg-0ubuntu2.1 [56.4 kB]
linux@ubuntu:~$
linux@ubuntu:~$ sudo apt clean
linux@ubuntu:~$ du -mh /var/cache/apt/archives/
du: 无法读取目录'/var/cache/apt/archives/partial': 权限不够
4.0K /var/cache/apt/archives/partial
28K /var/cache/apt/archives/
linux@ubuntu:~$
查看软件包的详细信息
sudo apt show <软件的名称>
# 例如
sudo apt show gcc # 查看gcc 软件包的详细信息
sudo apt show snake4 # 查看snake4 软件包的详细信息
linux@ubuntu:~$ sudo apt show gcc
Package: gcc
Version: 4:7.4.0-1ubuntu2.3
Priority: optional
Build-Essential: yes
Section: devel
Source: gcc-defaults (1.176ubuntu2.3)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 51.2 kB
Provides: c-compiler
Depends: cpp (>= 4:7.4.0-1ubuntu2.3), gcc-7 (>= 7.4.0-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Supported: 5y
Download-Size: 5,184 B
APT-Manual-Installed: yes
APT-Sources: http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages
Description: GNU C 编译器
这是 GNU C 编译器,一个高度精炼和优化的 C 编译器。
.
这是一个提供默认 GNU C 编译器的依赖包。
N: 有 1 条附加记录。请加上 ‘-a’ 参数来查看它们
linux@ubuntu:~$ sudo apt show snake4
Package: snake4
Version: 1.0.14-1build1
Priority: optional
Section: universe/games
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Alexandre Dantas <eu@alexdantas.net>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 272 kB
Depends: libc6 (>= 2.14), libshhmsg1 (>= 1.4.2), libshhopt1 (>= 1.1.7), libx11-6, libxaw7, libxpm4, libxt6
Homepage: http://shh.thathost.com/pub-unix/#snake4
Download-Size: 36.2 kB
APT-Sources: http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
Description: Snake game
This is a basic but nice implementation of the snake game. The objective
is to "snake around" and eat fruit, while avoiding the evil headbanger
and not crashing into your tail.
.
Features five levels of difficulty and a site-wid