Ubuntu操作-05 Dpkg与Apt
文章目录
- 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
...
注意每条记录的第一、二、三个字符,这就是软件包的状态标识,后边依此是软件包名称、版本号和简单描述。
第一字符为期望值(Desired=Unknown/Install/Remove/Purge/Hold),它包括:
- u - Unknown状态未知,这意味着软件包未安装,并且用户也未发出安装请求.
- i - Install用户请求安装软件包.
- r - Remove用户请求卸载软件包.
- p - Purge用户请求清除软件包.
- h - Hold用户请求保持软件包版本锁定.
第二列,是软件包的当前状态(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触发器未决
第三列标识错误状态,第一种状态标识没有问题,为空. 其它符号则标识相应问题(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-get
、 apt-chache
、apt-config
、Aptitude等,这些命令都比较低级又包含众多功能,普通的Linux用户也许永远都不会使用到。换种说法来说,就是最常用的Linux包管理命令都被分散在了apt-get
、apt-cach
和apt-config
这三条命令当中。
apt
命令的引入就是为了解决命令过于分散的问题,它包括了apt-get
命令出现以来使用最广泛的功能选项,以及 apt-cache
和apt-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
列出最合适访问的镜像站点地址。其操作步骤如下:
- 首先查看自己的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
- 镜像源获取,这里列出了常用的镜像源。
名称 | 分类 | 地址 |
---|---|---|
阿里云 | 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/ |
- 选择合适的源,主要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
- 备份并修改sources.list
- 原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 建立对应地址的源的文件,可以根据需要选择用哪一个
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
- 选用阿里源
sudo cp sources.aliyun.list sources.list
- 刷新
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命令之间的区别
虽然apt
与apt-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相关推荐
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
文章目录 1.Ubuntu操作入门 1.1 Ubuntu下打开终端 1.1.1 用搜索框打开终端 1.1.2 使用右键打开终端 1.1.3 快捷键打开终端 1.1.4 调节终端的字体大小及颜色 1.2 ...
- Ubuntu安装MySQL 8.0 - APT(结尾附视频)
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
- ubuntu官方容器更换清华apt源
1. 问题描述 使用 docker hub 官方 ubuntu 镜像,版本 22.04 LTS # 查看 ubuntu 版本 cat /etc/lsb-release 进入清华软件镜像站,选择ubun ...
- Ubuntu操作系统安装使用教程
随着微软的步步紧逼,包括早先的Windows黑屏计划.实施,逮捕番茄花园作者并判刑,种种迹象表明,中国用户免费使用盗版Windows的日子将不会太长久了,那么这个世界上有没有即免费又易用的操作系统呢? ...
- dpkg 删除软件_在Ubuntu中使用dpkg命令卸载软件的方法
据百科描述,Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理.dpkg是"Debian Packager"的简写,是一个底层的 ...
- 【Linux】3.dpkg、apt安装卸载软件
dpkg.apt安装卸载软件 sudo dpkg -i XXX.deb # 安装本地软件包(.deb文件),需要先下载下来.deb文件 dpkg -l #查看dpkg方式安装了哪些软件 sudo dp ...
- linux指令解压rpm,dpkg rpm apt yum 的常用指令 +linux 各种解压缩方法.docx
dpkg dpkg & rpm & apt & yum 的常用指令Dpkg (Debian系):UbuntuRPM (Red Hat系):CentOS.Fedora列出系统中已 ...
- VMWare 虚拟机工作站 + Ubuntu操作系统安装
1. VMWare 虚拟机工作站安装 百度搜索vmware,到官网http://www.vmware.com/products/workstation.html下载,我的百度云有共享的12.1.1 b ...
- Ubuntu操作基本快捷键
Ubuntu操作基本快捷键 基本命令 10 Alt + Shift+ Up Arrow – 以很酷的方式显示当前窗口 11. Shift+Ctrl+N – 新建文件夹, 很有用 12. Alt + E ...
最新文章
- xor java_java基于密匙的xor加解密
- 【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
- getdata提取曲线数据_Origin如何从图表中获取数据
- 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
- 沉淀2017,勇闯2018
- 【摄影测量原理】第三章:双像立体测图
- 前端学习(3262):js高级教程(5)数据变量和内存
- 联想e480一键恢复小孔_联想电脑如何一键恢复系统
- Python URL编码
- AndroidStudio使用技巧-debug篇
- 炒股如果亏损一直买入可行吗
- java代码-----逻辑运算符
- springboot10 Web开发静态资源
- element ui 表格拆分表格_python拆分表格数据
- hexo博客next主题6.0版本个性化设置
- 谷歌图形化HTML5网页编辑器Google Web Designer
- python3简单代码_【Python】Python3纯代码极简教程
- 英文邮件寻求帮助的礼貌用语
- 【Python-1】
- 关于MySQL的between函数含头尾的问题