从仓库出发的命令
显示所有仓库
apt-cache policy
apt 仓库没有可用不可用概念,只要写上就可用
查询已经安装的所有软件包
dpkg -l
查询仓库中的所有软件包
apt list
查询仓库中的已经安装的所有包
无
查询仓库中的可安装还没安装的所有包
无
查询仓库中的可安装还没安装的更新包
无
从软件包出发的命令
查询对应的安装包(acl)有什么文件
dpkg -L acl
查询对应的安装包(acl)的信息
dpkg -s acl
apt show ruby-chunky-png
查询对应的安装包(acl)的依赖
apt-cache depends acl
查询对应的安装包(acl)的反向依赖
apt-cache rdepends acl
查询软件包是否在仓库中存在
apt search ruby-chunky-png
查询未安装且在仓库中的包有什么文件
apt-file list libdssialsacompat-dev
下载source代码
apt-get source xxx
查询对应的安装包(acl)有什么文件
dpkg -c xxx.deb
查询对应的安装包(acl)的信息
无
查询对应的安装包(acl)的依赖
无
https://pkgs.org/
从文件出发相关的命令
查询已经安装的文件属于什么包
$ dpkg -S /bin/ls
coreutils: /bin/ls
查询一个未安装的文件属于什么包
$ apt-file search alsa/asoundlib.h
libasound2-dev: /usr/include/alsa/asoundlib.h
libdssialsacompat-dev: /usr/include/dssi/alsa/asoundlib.h
本地数据库相关
为安装包时安装包/ 已安装包时升级包
apt install xxx
重新安装包
apt-get --reinstall install xxx
不完全卸载包
apt-get remove xxx
完全卸载包
apt-get --purge remove
将所有软件包(包括内核)升级到最高版本
apt-get upgrade
安装中途退出后继续安装
apt-get -f install
修改仓库配置后重新构建缓存
apt-get update
清理本地缓存
apt-get clean
清空重复的低版本的软件包
apt-get autoclean
/var/lib/dpkg
/var/lib/apt
/var/cache/apt/archives 下载后的deb文件存放位置
APT仓库配置
/etc/apt/sources.list 文件
/etc/apt/sources.list.d 目录中的文件
5 deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
6 deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
每一行 格式如下 : {
必选} [可选]
{
deb/deb-src} {
URL} {
发行版代号及扩展} {
分类1} [分类2] [分类3] [分类4]
每一个字段解释如下
{
deb/deb-src} : deb 表示二进制可执行文件 deb-src 表示包的源代码
{
URL} : 仓库地址
{
发行版代号及扩展} :
发行版代号: 16.04为 xenial 12.04为focal
另外还有 扩展 xenial-security xenial-updates xenial-proposed xenial-backports
{
分类1} : 和分类2 分类3 分类4 一样
从 main restricted universe multiverse 中4选1
main 包是免费的/开源的,并受 ubuntu 官方的支持
restricted 包含各种设备的专用驱动程序
universe 包是免费的/开源的,由社区支持
multiverse 由于法律/版权问题,这些软件包受到限制
分类1...分类4 在 apt update 过程中是怎么被解析的?
apt 将 软件分类4类(main restricted universe multiverse)
如果一行中只有一类,那么意思是只包括该类的软件包
如果一行中只有4类,那么意思是包括所有类的软件包
http://us.archive.ubuntu.com/ubuntu/indices/ 中 有 一些文件
每个文件描述了一类软件包
在这些文件中
override.xenial.main 对应 deb http://us.archive.ubuntu.com/ubuntu/ xenial main
override.xenial.restricted 对应 deb http://us.archive.ubuntu.com/ubuntu/ xenial restricted
override.xenial.main.src 对应 deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main
override.xenial.restricted.src 对应 deb-src http://us.archive.ubuntu.com/ubuntu/ xenial restricted
|
自由软件 |
非自由软件 |
官方支持的 |
Main |
Restricted |
非官方支持的 |
Universe |
Multiverse |
可以这么说,apt 只有一个仓库,但是 仓库 按级别分类
1.第1级别(xxxx yyyy zzzz 分别为不同版本的发行版代号)
xxxx
yyyy
zzzz
2.第2级别
deb
deb-src
3.第3级别 (xxxx为发行版代号)
xxxx
xxxx-security
xxxx-updates
xxxx-proposed
xxxx-backports
4.第4级别
main
restricted
universe
multiverse
所以一个发行版共 1*2*5*4=40个类
在 http://us.archive.ubuntu.com/ubuntu/indices/ 中 xenial 发行版相关的文件共80个
其中 5(第3级别的类数目)*4(每个第3级别类由4个文件描述) = 20 个文件
其中 5(第3级别的类数目)*4(第4级别的类数目)*3(第2级别的类数目+1(1为debian-installer))= 60 个文件
http://us.archive.ubuntu.com/ubuntu/ 针对每一个ubuntu发行版做了80个文件(表明deb类)及文件对应的deb包
只要有 类似的网站 针对 每一个ubuntu发行版做了80个文件(表明deb类)及文件对应的deb包 ,就可以被称为 ubuntu 的apt仓库
一般来说我们只更改 链接就行,不需要更改其他内容
sudo sed -i 's/us.archive.ubuntu/mirrors.aliyun/' /etc/apt/sources.list
ubuntu可选的 配置 : https://wiki.ubuntu.org.cn/模板:16.04source