文章目录

  • 1 dpkg(debian系统的包管理工具)
    • 1.1 相关介绍
      • 1.1.1 deb软件包名规则
      • 1.1.2 dpkg软件包相关文件介绍
      • 1.1.3 dpkg数据库
      • 1.1.4 dpkg子命令
    • 1.2 dpkg使用
      • 1.2.1 常用参数
  • 2 Apt
    • 2.1 apt工作原理
      • 2.1.1 apt update
      • 2.1.2 apt安装过程
    • 2.2 apt相关文件
    • 2.3 源文件sources.list
      • 2.3.1 换源
    • 2.3 基本语法
      • 2.3.1 常见options选项
      • 2.3.1 常用command参数
  • 3 apt-get
    • 3.1 apt与apt-get之间的区别
    • 3.2 apt和apt-get命令之间的区别
  • 参考资源

软件厂商先在他们的系统上面编译好了我们用户所需要的软件,然后将这个编译好并可执行的软件直接发布给用户安装。不同的Linux发行版使用不同的打包系统,一般而言,大多数发行版分别属于两大包管理技术阵营: Debian的”.deb”,和 Red Hat的”.rpm”。也有一些重要的例外,比方说 Gentoo, Slackware,和 Foresight,但大多数会使用这两个基本系统中的一个。这里将要介绍的是Debian系列发行版的dpkg与apt-*的详细使用方法。

1 dpkg(debian系统的包管理工具)

dpkg即package manager for Debian ,是Debian和基于Debian的系统中一个主要的包管理工具,可以用来安装、构建、卸载、管理deb格式的软件包。。通过命令man dpkg查看使用说明。也可以通过如下网址查询:dpkg(1) — Linux manual page

dpkg这个机制最早由Debian Linux社区所开发出来的,通过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时能提供安装后的软件信息,实在非常不错。只要派生于Debian的其它Linux distributions大多使用dpkg这个机制来管理,包括B2D,Ubuntu等。

1.1 相关介绍

1.1.1 deb软件包名规则

dpkg安装的包一般都以.deb作为后缀,其安装包的命名规则:

Package_Version-Build_Architecture.deb

如:nano_1.3.10-2_i386.deb

  • 软件包名称(Package Name): nano
  • 版本(Version Number):1.3.10
  • 修订号(Build Number):2
  • 平台(Architecture):i386

1.1.2 dpkg软件包相关文件介绍

  • /etc/dpkg/dpkg.cfg
    dpkg包管理软件的配置文件
  • /var/log/dpkg.log
    dpkg包管理软件的日志文件
  • /var/lib/dpkg/available
    存放系统所有安装过的软件包信息
  • /var/lib/dpkg/status
    存放系统现在所有安装软件的状态信息
  • /var/lib/dpkg/info
    记安装软件包控制目录的控制信息文件

1.1.3 dpkg数据库

dpkg使用文本文件作为数据库来维护系统中软件,包括文件清单, 依赖关系, 软件状态, 等等详细的内容,通常在 /var/lib/dpkg 目录下:

  • status文件中存储软件状态和控制信息。
  • info/目录下备份控制文件, 并在其下的.list文件中记录安装文件清单,其下的mdasums保存文件的MD5编码。

例:查询dpkg数据库(显示所有已安装的Deb包)。

(base) pang@pang-HP:/var/lib/dpkg$ dpkg -l
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称                                       版本                                       体系结构     描述
+++-==========================================-==========================================-============-===============================================================================
ii  accountsservice                            0.6.55-0ubuntu14.1                         amd64        query and manipulate user account information
ii  accountsservice-ubuntu-schemas             0.0.7+21.10.20210712-0ubuntu1              all          AccountsService schemas for Ubuntu
ii  acl                                        2.2.53-10ubuntu2                           amd64        access control list - utilities
ii  acpi-call-dkms                             1.2.2-0~impish                             all          Kernel module that enables you to call ACPI methods
ii  acpi-support                               0.143build1                                amd64        scripts for handling many ACPI events
ii  acpid                                      1:2.0.32-1ubuntu2                          amd64        Advanced Configuration and Power Interface event daemon
ii  adduser                                    3.118ubuntu5                               all          add and remove users and groups
ii  adwaita-icon-theme                         40.1.1-1ubuntu1                            all          default icon theme of GNOME (small subset)
ii  aisleriot                                  1:3.22.9-1build1                           amd64        GNOME solitaire card game collection
ii  alsa-base                                  1.0.25+dfsg-0ubuntu7                       all          ALSA driver configuration files
ii  alsa-topology-conf                         1.2.5.1-2                                  all          ALSA topology configuration files
ii  alsa-ucm-conf                              1.2.4-2ubuntu5                             all          ALSA Use Case Manager configuration files
ii  alsa-utils                                 1.2.4-1ubuntu4                             amd64        Utilities for configuring and using ALSA
...

注意每条记录的第一、二、三个字符,这就是软件包的状态标识,后边依此是软件包名称、版本号和简单描述。

  1. 第一字符为期望值(Desired=Unknown/Install/Remove/Purge/Hold),它包括:

    • u - Unknown状态未知,这意味着软件包未安装,并且用户也未发出安装请求.
    • i - Install用户请求安装软件包.
    • r - Remove用户请求卸载软件包.
    • p - Purge用户请求清除软件包.
    • h - Hold用户请求保持软件包版本锁定.
  2. 第二列,是软件包的当前状态(Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend),它包括:

    • n - Not软件包未安装.
    • i - Inst软件包安装并完成配置.
    • c - Conf-files软件包以前安装过,现在删除了,但是它的配置文件还留在系统中.
    • u - Unpacked软件包被解包,但还未配置.
    • f - halF-conf试图配置软件包,但是失败了.
    • h - Half-inst软件包安装,但是但是没有成功.
    • w - trig-aWait触发器等待
    • t - Trig-pend触发器未决
  3. 第三列标识错误状态,第一种状态标识没有问题,为空. 其它符号则标识相应问题(Err?=(none)/Reinst-required (Status,Err: uppercase=bad))

    • none - 为空,表示没有问题.
    • h - 软件包被强制保持,因为有其它软件包依赖需求,无法升级.
    • r - Reinst-required,软件包被破坏,可能需要重新安装才能正常使用(包括删除).
    • x - 软包件被破坏,并且被强制保持.

案例说明:

  • ii —— 表示系统正常安装了该软件
  • pn —— 表示安装了该软件,后来又清除了
  • un —— 表示从未安装过该软件
  • iu —— 表示安装了该软件,但是未配置
  • rc —— 该软件已被删除,但配置文件仍在

查看处于 rc 状态的软件包:

dpkg -l | grep ^rc

1.1.4 dpkg子命令

为了方便用户使用,dpkg不仅提供了大量的参数选项, 同时也提供了许多子命令。比如:

dpkg-deb、dpkg-divert、dpkg-query、dpkg-split、dpkg-statoverride、start-stop-daemon

这里就不做展开了,详细可以参考下如下的文章:

  • Chapter 8. The Debian package management tools

1.2 dpkg使用

dpkg语法格式:dpkg [参数] 包名

1.2.1 常用参数

参数 说明 示例
-i --install 安装软件包,必须是deb包的完整名称。(软件的安装可被拆分为两个对立的过程“解包”和“配置”) dpkg -i avg71flm_r28-1_i386.deb
-R 安装一个目录下面所有的软件包 dpkg -R /usr/local/src
--unpack “解包”:解开软件包到系统目录但不配置;如果和-R一起使用,参数可以是一个目录 dpkg –unpack avg71flm_r28-1_i386.deb
--configure “配置”:配置软件包。如果和-a一起使用,将配置所有没有配置的软件包 dpkg –configure avg71flm_r28-1_i386.deb
-r 删除软件包保留其配置信息) dpkg -r avg71flm
-l --list 显示已安装软件包列表 dpkg -l [package-name]
-L --listfiles 显示一个包安装到系统里面的文件目录信息 dpkg -L apache2
--update-avail 替代软件包的信息 dpkg --update-avail <Packages-file>
--merge-avail 合并软件包信息 dpkg --merge-avail <Packages-file>
-A 从软件包里面读取软件的信息 dpkg -A <Packages-file>
-P 删除一个包(包括配置信息) dpkg -P <Packages-file>
--forget-old-unavail 丢失所有的Uninstall的软件包信息 dpkg --forget-old-unavail
--clear-avail 删除软件包的Avaliable信息 dpkg --clear-avail
-C 查找只有部分安装的软件包信息 dpkg -C
--compare-versions 比较同一个包的不同版本之间的差别 dpkg --compare-versions ver1 op ver2
--help 显示帮助信息 dpkg --help
--licence --license 显示dpkg的Licence dpkg --licence dpkg --license
-b 建立一个deb文件 dpkg -b direc×y [filename]
-c 显示软件包内文件列表 dpkg -c filename
-s --status 报告指定包的状态信息 dpkg -s ssh
-S --search 搜索指定包里面的文件(模糊查询) dpkg -S filename-search-pattern
-p 显示包的具体信息 dpkg -p cacti

2 Apt

Apt的全称是Advanced Packaging Tool是Linux系统下的一款安装包管理工具,是dpkg的前端工具。起初Apt的命令包括:apt-getapt-chacheapt-config、Aptitude等,这些命令都比较低级又包含众多功能,普通的Linux用户也许永远都不会使用到。换种说法来说,就是最常用的Linux包管理命令都被分散在了apt-getapt-cachapt-config这三条命令当中。

apt命令的引入就是为了解决命令过于分散的问题,它包括了apt-get命令出现以来使用最广泛的功能选项,以及 apt-cacheapt-config命令中很少用到的功能。

简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

相关网站:

  • Debian APT Wiki
  • Debian AptCLI:
  • Debian 软件包管理:
  • Debian 说明文档
  • Debian 软件包查找
  • Ubuntu Manpage (APT)
  • Ubuntu Manpages
  • Ubuntu 软件包查找

2.1 apt工作原理

虽然我们在使用dpkg时,已经解决掉了 软件安装过程中的大量问题,但是当依赖关系不满足时,仍然需要手动解决,而apt这个工具解决了这样的问题,linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg已存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。

Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源。

2.1.1 apt update

软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。

apt update命令就是用于刷新软件源,然后在本地建立更新软件包列表。

在Ubuntu Linux中,apt-get update命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists/目录中。

使用apt执行安装、更新操作时,都将依据这些索引文件,向软件源服务器申请资源。因此,在计算机设备空闲时,经常使用apt update命令刷新软件源,是一个好的习惯。

由此一般apt安装的过程过下:

2.1.2 apt安装过程

  • 1)执行apt update
  • 2)程序分析/etc/apt/sources.list
  • 3)自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录
  • 4)然后 apt install 相应的包 ,下载并安装。

2.2 apt相关文件

  • var/lib/dpkg/available
    文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包。
  • /etc/apt/sources.list
    记录软件源的地址(当你执行sudo apt install xxx时,Ubuntu就去这些站点下载软件包到本地并执行安装)。
  • /var/cache/apt/archives
    已经下载到的软件包都放在这里(用apt install 安装软件时,软件包的临时存放路径)。
  • /var/lib/apt/lists
    使用apt update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录。
  • /etc/apt/apt.conf.d
    早期apt默认的配置文件为/etc/apt/apt.conf,但是现在的Ubuntu系统中默认没有这个文件。如果/etc/apt/apt.conf文件存在,apt仍然会读取它。但现在的设计思路是把配置文件分隔后放置在/etc/apt/apt.conf.d目录下,这样更容易管理。

2.3 源文件sources.list

apt的源文件由配置文件/etc/apt/sources.list指定。sources.list 位于/etc/apt目录下,是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址。

sources.list.d/*.list位于/etc/apt/sources.list.d目录下,为在单独文件中写入源的地址提供了一种方式,通常用来安装第三方的软件。

2.3.1 换源

由于每位用户所处的网络环境不同,不可能随意地访问Ubuntu各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。其操作步骤如下:

  1. 首先查看自己的Ubuntu系统的Codename(这一步很重要),直接导致你更新的源是否对你的系统起效果,查看方法。
(base) pang@pang-HP:/etc/apt$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.10
Release:    21.10
Codename:   impish
(base) pang@pang-HP:/etc/apt$

LSB是一套核心标准,它保证了LINUX发行版同LINUX应用程序之间的良好结合。它是 Linux 标准化领域中事实上的标准,制定了应用程序与运行环境之间的二进制接口。这里检测到LSB,模块没有获取,执行以下语句获取:sudo apt install lsb-core -y

  1. 镜像源获取,这里列出了常用的镜像源。
名称 分类 地址
阿里云 xenial http://mirrors.aliyun.com/ubuntu/dists/xenial/
xenial-backports http://mirrors.aliyun.com/ubuntu/dists/xenial-backports/
xenial-proposed http://mirrors.aliyun.com/ubuntu/dists/xenial-proposed/
xenial-security http://mirrors.aliyun.com/ubuntu/dists/xenial-security/
xenial-updates http://mirrors.aliyun.com/ubuntu/dists/xenial-updates/
清华 xenial https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial
xenial-proposed https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-proposed
xenial-security https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-security
xenial-updates https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-updates
中科大 xenial http://mirrors.ustc.edu.cn/ubuntu/dists/xenial/
xenial-backports http://mirrors.ustc.edu.cn/ubuntu/dists/xenial-backports/
xenial-proposed http://mirrors.ustc.edu.cn/ubuntu/dists/xenial-proposed/
xenial-security http://mirrors.ustc.edu.cn/ubuntu/dists/xenial-security/
xenial-updates http://mirrors.ustc.edu.cn/ubuntu/dists/xenial-updates/
  1. 选择合适的源,主要ping下链接哪个地址延迟最短。
(base) pang@pang-HP:~$ ping mirrors.aliyun.com
PING mirrors.aliyun.com.w.alikunlun.com (119.96.71.241) 56(84) bytes of data.
64 bytes from 119.96.71.241 (119.96.71.241): icmp_seq=1 ttl=55 time=21.4 ms
64 bytes from 119.96.71.241 (119.96.71.241): icmp_seq=2 ttl=55 time=19.1 ms
64 bytes from 119.96.71.241 (119.96.71.241): icmp_seq=3 ttl=55 time=19.9 ms
64 bytes from 119.96.71.241 (119.96.71.241): icmp_seq=4 ttl=55 time=19.5 ms
64 bytes from 119.96.71.241 (119.96.71.241): icmp_seq=5 ttl=55 time=19.7 ms(base) pang@pang-HP:~$ ping mirrors.tuna.tsinghua.edu.cn
PING bfdmirrors.s.tuna.tsinghua.edu.cn (101.6.15.130) 56(84) bytes of data.
64 bytes from 101.6.15.130 (101.6.15.130): icmp_seq=1 ttl=47 time=52.1 ms
64 bytes from 101.6.15.130 (101.6.15.130): icmp_seq=2 ttl=47 time=51.7 ms
64 bytes from 101.6.15.130 (101.6.15.130): icmp_seq=3 ttl=47 time=52.4 ms
64 bytes from 101.6.15.130 (101.6.15.130): icmp_seq=4 ttl=47 time=51.7 ms
64 bytes from 101.6.15.130 (101.6.15.130): icmp_seq=5 ttl=47 time=51.4 ms
  1. 备份并修改sources.list

    1. 原文件备份
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    1. 建立对应地址的源的文件,可以根据需要选择用哪一个
    sudo gedit /etc/apt/sources.qinghua.list //清华源的配置文件
    清华源信息:
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiversesudo gedit /etc/apt/sources.aliyun.list //阿里源的配置文件
    阿里源信息:
    #deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
    deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
    deb http://archive.canonical.com/ubuntu xenial partner
    deb-src http://archive.canonical.com/ubuntu xenial partner
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiversesudo gedit /etc/apt/sources.zhongkeda.list //中科大的配置文件
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    
    1. 选用阿里源
    sudo cp sources.aliyun.list sources.list
    
    1. 刷新
    sudo apt-get update
    

2.3 基本语法

语法格式:

apt [options] [command] [package ...]
  • options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。

2.3.1 常见options选项

  • -h 本帮助文件。
  • -q 输出到日志 - 无进展指示
  • -qq 不输出信息,错误除外
  • -d 仅下载 - 不安装或解压归档文件
  • -s 不实际安装。模拟执行命令
  • -y 假定对所有的询问选是,不提示
  • -f 尝试修正系统依赖损坏处
  • -m 如果归档无法定位,尝试继续
  • -u 同时显示更新软件包的列表
  • -b 获取源码包后编译
  • -V 显示详细的版本号
  • -c=? 阅读此配置文件
  • -o=? 设置自定的配置选项,如 -o dir::cache=/tmp

示例:
sudo apt install -f 使用此命令可修复依赖关系,假如有软件因依赖关系不满足而无法安装,就可以运行此命令自动修复安装程序包所依赖的包。特别是在使用dpkg命令安装deb软件包时出现依赖问题常需要此命令来修复。

2.3.1 常用command参数

参数 说明 示例
update 用于从配置的源下载包信息。update命令应该总是在安装或升级包之前执行。 apt update <package_name>
upgrade 用于从配置的源安装当前系统中的所有包的可用升级。如果需要满足依赖关系,就安装新的包,但是不会删除现有的包。如果包的升级需要删除已安装的包,则不执行此包的升级。 apt upgrade
full-upgrade 执行升级功能,如果需要将系统升级到新的版本,则会删除当前已安装的包。 apt full-upgrade
install 用来安装一个或多个指定的包 apt install <package_name>安装指定的软件
apt install <package_1> <package_2> <package_3>安装多个软件包
apt install <package_name> --no-upgrade安装一个软件包,但如果软件包已经存在,则不要升级它
apt install <package_name> --only-upgrade只想升级,不要安装
sudo apt install <package_name>=<version_number>需要设置指定版本
remove 用来删除包,但是会保留包的配置文件 apt remove <package_name>
purge 用来删除包,在删除包的同时删除其配置文件。 apt purge <package_name>
autoremove 用于删除自动安装的包,这些包是为了满足其他包的依赖关系而自动安装的,随着依赖关系的更改或需要它们的包已被删除,这些包现在不再需要了。 apt autoremove
search 用于在可用包列表中搜索给定的项并显示匹配到的内容。例如,如果您正在寻找具有特定功能的包,这将非常有用。 apt search <keyword>
show 显示关于给定包的信息,包括它的依赖关系、安装和下载大小、包的来源、包内容的描述等等。比如,在删除一个包或搜索要安装的新包之前查看这些信息是很有帮助的。 apt show <package_name>
list 显示满足特定条件的包列表,默认列出所有的包。可以通过 --installed 选项列出已安装的包,–upgrade 选项列出可以升级的包。 apt list --upgradeable列出可更新的软件包及版本信息
apt list --installed列出所有已安装的包
apt list --all-versions列出所有已安装的包的版本信息
edit-sources 用来编辑 /etc/apt/source.list 文件 sudo apt edit-sources

3 apt-get

  • APT-GET Debian Wiki
  • APT-GET Ubuntu
  • Ubuntu 软件包查找

其他 Linux 软件包管理工具:

  • apt (Debian/Ubuntu)
  • yum/dnf (Fedora/CentOS/RedHat)
  • apk (Alpine Linux)
  • snap (All Linux)

3.1 apt与apt-get之间的区别

通过apt命令,用户可以在同一地方集中得到所有必要的工具,apt的主要目的是提供一种以「让终端用户满意」的方式来处理Linux软件包的有效方式。

apt具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。除此之外,它默认启用的几个特性对最终用户也非常有帮助。

例如,可以在使用apt命令安装或删除程序时看到进度条。

apt还会在更新存储库数据库时提示用户可升级的软件包个数。

如果你使用apt的其它命令选项,也可以实现与使用apt-get时相同的操作。

3.2 apt和apt-get命令之间的区别

虽然aptapt-get有一些类似的命令选项,但它并不能完全向下兼容apt-get命令。也就是说,可以用apt替换部分apt-get系列命令,但不是全部。

apt 命令 取代的命令 命令的功能
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show

当然,apt 还有一些自己的命令:

新的apt命令 命令的功能
apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑源列表

参考资源

  • Linux中apt与apt-get命令的区别与解释

Ubuntu操作-05 Dpkg与Apt相关推荐

  1. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令

    文章目录 1.Ubuntu操作入门 1.1 Ubuntu下打开终端 1.1.1 用搜索框打开终端 1.1.2 使用右键打开终端 1.1.3 快捷键打开终端 1.1.4 调节终端的字体大小及颜色 1.2 ...

  2. Ubuntu安装MySQL 8.0 - APT(结尾附视频)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  3. ubuntu官方容器更换清华apt源

    1. 问题描述 使用 docker hub 官方 ubuntu 镜像,版本 22.04 LTS # 查看 ubuntu 版本 cat /etc/lsb-release 进入清华软件镜像站,选择ubun ...

  4. Ubuntu操作系统安装使用教程

    随着微软的步步紧逼,包括早先的Windows黑屏计划.实施,逮捕番茄花园作者并判刑,种种迹象表明,中国用户免费使用盗版Windows的日子将不会太长久了,那么这个世界上有没有即免费又易用的操作系统呢? ...

  5. dpkg 删除软件_在Ubuntu中使用dpkg命令卸载软件的方法

    据百科描述,Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理.dpkg是"Debian Packager"的简写,是一个底层的 ...

  6. 【Linux】3.dpkg、apt安装卸载软件

    dpkg.apt安装卸载软件 sudo dpkg -i XXX.deb # 安装本地软件包(.deb文件),需要先下载下来.deb文件 dpkg -l #查看dpkg方式安装了哪些软件 sudo dp ...

  7. linux指令解压rpm,dpkg rpm apt yum 的常用指令 +linux 各种解压缩方法.docx

    dpkg dpkg & rpm & apt & yum 的常用指令Dpkg (Debian系):UbuntuRPM (Red Hat系):CentOS.Fedora列出系统中已 ...

  8. VMWare 虚拟机工作站 + Ubuntu操作系统安装

    1. VMWare 虚拟机工作站安装 百度搜索vmware,到官网http://www.vmware.com/products/workstation.html下载,我的百度云有共享的12.1.1 b ...

  9. Ubuntu操作基本快捷键

    Ubuntu操作基本快捷键 基本命令 10 Alt + Shift+ Up Arrow – 以很酷的方式显示当前窗口 11. Shift+Ctrl+N – 新建文件夹, 很有用 12. Alt + E ...

最新文章

  1. xor java_java基于密匙的xor加解密
  2. 【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
  3. getdata提取曲线数据_Origin如何从图表中获取数据
  4. 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
  5. 沉淀2017,勇闯2018
  6. 【摄影测量原理】第三章:双像立体测图
  7. 前端学习(3262):js高级教程(5)数据变量和内存
  8. 联想e480一键恢复小孔_联想电脑如何一键恢复系统
  9. Python URL编码
  10. AndroidStudio使用技巧-debug篇
  11. 炒股如果亏损一直买入可行吗
  12. java代码-----逻辑运算符
  13. springboot10 Web开发静态资源
  14. element ui 表格拆分表格_python拆分表格数据
  15. hexo博客next主题6.0版本个性化设置
  16. 谷歌图形化HTML5网页编辑器Google Web Designer
  17. python3简单代码_【Python】Python3纯代码极简教程
  18. 英文邮件寻求帮助的礼貌用语
  19. 【Python-1】
  20. 关于MySQL的between函数含头尾的问题

热门文章

  1. 【闪电侠学netty】第7章 数据载体ByteBuf的介绍
  2. vue获取url地址中的参数
  3. 去掉无序列表 l i 前面的小圆点:
  4. 中付向代理商追索2500万元损失 事涉另一家支付机构20%股权转让
  5. 日本公共廁所不爲人知的新功能
  6. 【linux更改用户名的正确方法】
  7. 地址池命令 思科理由_cisco dhcp设置
  8. Windows平台RTMP/RTSP直播推送模块设计和使用说明
  9. 利用遗传算法求解函数极值
  10. 护肤品的一些专业名词