Ubuntu操作-05 Dpkg与Apt

软件厂商先在他们的系统上面编译好了我们用户所需要的软件,然后将这个编译好并可执行的软件直接发布给用户安装。不同的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

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

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的Licencedpkg --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-configAptitude等,这些命令都比较低级又包含众多功能,普通的Linux用户也许永远都不会使用到。换种说法来说,就是最常用的Linux包管理命令都被分散在了apt-getapt-cachapt-config这三条命令当中。

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

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

相关网站:

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. 镜像源获取,这里列出了常用的镜像源。
名称分类地址
阿里云xenialhttp://mirrors.aliyun.com/ubuntu/dists/xenial/
xenial-backportshttp://mirrors.aliyun.com/ubuntu/dists/xenial-backports/
xenial-proposedhttp://mirrors.aliyun.com/ubuntu/dists/xenial-proposed/
xenial-securityhttp://mirrors.aliyun.com/ubuntu/dists/xenial-security/
xenial-updateshttp://mirrors.aliyun.com/ubuntu/dists/xenial-updates/
清华xenialhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial
xenial-proposedhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-proposed
xenial-securityhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-security
xenial-updateshttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/xenial-updates
中科大xenialhttp://mirrors.ustc.edu.cn/ubuntu/dists/xenial/
xenial-backportshttp://mirrors.ustc.edu.cn/ubuntu/dists/xenial-backports/
xenial-proposedhttp://mirrors.ustc.edu.cn/ubuntu/dists/xenial-proposed/
xenial-securityhttp://mirrors.ustc.edu.cn/ubuntu/dists/xenial-security/
xenial-updateshttp://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 multiverse
    
    
    
    sudo 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 multiverse
    
    
    sudo 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

其他 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命令安装或删除程序时看到进度条。
image.png

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

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

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

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

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

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

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

参考资源

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值