Debian Linux uses dpkg packaging system. A packaging system is a way to provide programs and applications for installation.
APT (Advanced Package Tool) is the command line tool to interact with the packaging system in Debian, and Debian-based Linux Distributions.
There is already dpkg commands to manage it. But APT is a more friendly way to handle packaging. You can use it to find and install new packages, upgrade packages, remove the packages etc.
APT VS apt-get
Debin系统使用高级包装工具(APT)系统即Advanced Packaging Tool–与命令行apt不是同一个概念–来管理系统软件的功能,且可以从软件源获取并解析软件包依赖。
可以使用Debin包管理系统工具有很多,常用的有:
- Aptitude是一个命令行工具,它同时提供一个基于文本的用户界面。该程序提供了一些改进功能,例如对软件包元信息的增强搜索。
- apt-get和apt-cache等命令是标准apt软件包中的命令行工具。apt-get用于安装和删除软件包,apt-cache用于搜索软件包及显示软件包信息。
- 新版apt软件包提供了apt命令作为面向用户使用的工具。与传统apt-get和aptitude相比,它提供了进度条显示、彩色字符支持等用户友好的新功能。
apt第一个稳定版本是在2014年发布的,但在2016 随着Ubuntu 16.04的发布,大众才慢慢关注到这个工具。从之前的apt-get install package慢慢变成了apt install package
apt包含了部分 apt-get及apt-cache的用于包管理的指令,并且对于用户更友好。
apt-get may be considered as lower-level and “back-end”, and support other APT-based tools. apt is designed for end-users (human) and its output may be changed between versions.
The
aptcommand is meant to be pleasant for end users and does not need to be backward compatible like apt-get(8).
This is the correct answer (for Debian and Ubuntu as well as other derivatives like Mint). In particular, running sudo apt upgrade will perform the same operations as sudo apt-get upgrade –with-new-pkgs. It will install new packages but, unlike sudo apt-get dist-upgrade, it will not remove old ones (except when installing a new version of the same package, of course–which sudo apt-get upgrade will also do). man apt further corroborates that this answer is correct. – Eliah Kagan
Install apt
On Debian based systems
从这里apt Source-Debian找到apt的资源及其版本。
- 使用
wget下载
wget http://ftp.us.debian.org/debian/pool/main/a/apt/apt_2.4.2_amd64.deb -O apt.deb -O apt.deb
- 使用
dpkg安装apt
sudo dpkg -i apt.deb or without sudo pkexec dpkg -i apt.deb
On Ubuntu based system
apt Commands
包数据库及更新
sudo apt update // 只更新package数据库。如果有新版本,会知道有新版本,但不会安装
更改包数据库源
更改文件/etc/apt/sources.list中的url为想设置的源url。
如:
1 | $ cat /etc/apt/sources.list |
更新已安装的包
sudo apt upgrade // 根package数据库,来更新安装所需要的包。如果package数据库没有更新,可能会安装不到最新的版本
sudo apt full-upgrade // 会移除更新需要移除的已经安装了的旧包
所以最方便更新包及包库的命令为:
sudo apt update && sudo apt upgrade -y
搜索安装包
apt search <search item>
显示安装包信息
apt list <search item>
安装-包
sudo apt install <pack_name>
sudo apt install <package_1> <package_2> <package_3> // 同时安装多个包sudo apt install <package_name> --no-upgrade // 只安装,不更新sudo apt install <package_name> --only-upgrade // 只更新,不安装sudo apt install <package_name>=<version_number> // 安装特别版本的包
移除安装包
sudo apt remove <package_name> // 称除可执行行文件,保留配置文件,下次安装后会有相同的配置
或者:
sudo apt purge <package_name> // 移除所有包括配置文件
可以在remove之后运行purge,通常来说apt remove对卸载一个包来说足够了。
查看安装包
apt list 列出所有可用包apt list --upgradable // 列出可更新的包apt list --installed // 列出已安装的包apt list --all-versions // 列出当前系统所有可用包
管理
sudo apt autoremove
或者
sudo apt-get autoremove
当安装一些有依赖的包时,对应的依赖包也会安装,但当remove有依赖的包的包时,这些依赖包并不会移除掉,会保存在系统中。 这个命令会移除这些‘失主’的依赖包。
apt cache 文件
apt 包管理系统会缓存DEB包于/var/cache/apt/archives,会缓存一些你卸载了的包,时间长了可能会占很大的存储空间。使用下面的命令查看文件大小:
sudo du -sh /var/cache/apt
如果文件大,有两种方式管理这个缓存文件
sudo apt-get autoclean // 删除过期的或停用的版本缓存
sudo apt-get clean // 删除缓存整个
参考资料: