apt-get

Debian版软件维护工具


语法格式

apt-get [-bdfquVy] [-a arch] [-c=conf] [--allow-unauthenticated]
     [--assume-no] [--auto-remove] [--install-suggests] [--no-download]
     [--no-install-recommends] [--no-remove] [--no-upgrade]
     [--only-upgrade] [--print-uris] [--purge] [--reinstall]
     {update | upgrade | dist-upgrade | install pkgs |
     remove pkgs | purge pkgs | check | source pkgs |
     download | clean | autoclean | autoremove}
apt-get [-h|--help] [-v|--version]

命令简介

apt-get是一个命令行工具,用于维护Debian版的软件包,如安装或删除软件包,更新或升级系统等。

除非指定了“-h”或“-v”等选项,运行的apt-get命令中必须选用install、update、upgrade、remove等功能选项之一。

命令选项(功能选项)

update  更新。用于重新同步软件源的软件包索引文件。从/etc/apt/sources.list文件指定的软件源中,能够获取可用软件包的索引。例如,当使用deb格式的软件包档案文件时,apt-get会检索Packages.gz文件,从中获取可用的最新软件包或可更新的软件包信息。因此,在利用upgrade或dist-upgrade功能选项升级整个系统之前,应首先利用update功能选项,更新可用的软件包索引。

upgrade  升级。基于当前已安装的所有软件包,从/etc/apt/sources.list文件指定的软件源中下载、安装最新版本的软件包,但不会删除系统中已安装的软件包,也不会安装系统中尚未安装的软件包。在执行系统升级之前,首先必须执行update,更新软件包索引,以便apt-get知道是否存在可用的新版软件包。

dist-upgrade  除了执行upgrade功能之外,dist-upgrade还能够灵活地处理由于新版软件包导致的依赖关系的变化。因此,选用dist-upgrade时可能会删除某些软件包。apt-get具有一个“聪明的”冲突解决机制,如果需要,它会尝试优先升级最重要的软件包。/etc/apt/sources.list配置文件包含一系列软件源定义,使apt-get能够获取期望的软件包。

install pkgs  安装。用于安装或升级指定的最新版软件包。在指定软件包的名字时,只需给出其缩写形式,不必完整写出,即可下载、安装最新版的指定软件包。例如,只需指定libc6即可选择软件包libc6_1.9.6-2.deb。同时,apt-get还会下载、安装指定软件包依赖的所有底层支持软件包。/etc/apt/sources.list文件用于指定期望的软件源。如果软件包名字后面附有一个连字符“-”后缀(中间没有空格),且相应的软件包已经安装,apt-get将会删除指定的软件包。类似地,如果软件包名字后面附有一个加号“+”后缀,表示需要安装指定的软件包。这一特性主要用于修改apt-get的冲突解决机制。若想安装特定版本的软件包,可以在软件包名字后面附加一个“=version”后缀,从而安装选定版本的软件包。同样,若想从一个特定的发行中选择软件包,可在软件包名字后面附加一个“/distribution”或“/archive”后缀,如stable、testing或unstable等。注意,这种版本选择机制有可能会引起软件降级,故使用时必须小心。如果不存在恰好匹配的软件包,则假定指定的软件包名是一个检索模式,apt-get将会安装匹配指定名字模式的任何软件包。可以将软件包名看作一个表达式,如果没有软件包能够直接匹配给定的表达式,且表达式中含有句点“.”、问号“?”或星号“*”等特殊字符,则假定这是一个POSIX正则表达式,因而可用其检索软件源中的所有软件包,然后安装(或删除)与之匹配的任何软件包。注意,所谓匹配指的是子串意义上的匹配,因此,“lo.*”能够匹配“how-lo”和“lowest”。此外,除了上述3个特殊字符之外,还可以在正则表达式中使用上箭头“^”或美元符号“$”等。

remove pkgs  删除。从系统中删除指定的软件包,同时删除依赖于指定软件包的其他软件包。注意,已删除软件包的配置文件(如果存在)仍然会保留在系统中。此外,如果指定的软件包名字后面附有一个加号“+”(中间没有空格),意味着安装而不是删除指定的软件包。

purge pkgs  清除。从系统中删除指定的软件包及其配置文件,同时删除依赖于指定软件包的其他软件包。其功能类似于remove功能选项,但删除更彻底。

source pkgs  用于下载最新版的源代码软件包,存放在当前目录。如果想要下载特定版本的源代码软件包,可以采用“pkgname=version”的形式指定软件包的名字与版本号。如果指定了“--compile”选项,表示下载后还要根据“--host-architecture”选项定义的机型来编译源代码软件包。如果指定了“--download-only”选项,意味着无须解压源代码软件包。

check  诊断。用于更新软件包缓冲区,检测受损的软件包依赖关系。

download  下载。下载指定的二进制软件包,存储在当前目录中。

clean  清除。清除本地缓存目录中的软件包文件等。除了/var/cache/apt/archives和/var/cache/apt/archives/partial目录中的封锁文件,apt-get将会清除任何软件包文件。注意,用户应随时运行“apt-get clean”命令,以释放磁盘空间。

autoclean  类似于clean,用于清除缓存在本地目录中的软件包文件等。其差别在于autoclean仅删除不再继续下载且基本上不再继续使用的软件包文件。这将防止缓存空间由于长期没有清空而导致的增长失控。

autoremove  自动删除。用于删除为满足依赖关系而自动安装的且当前不再需要的软件包。

命令选项(常规选项)

-a, --host-architecture  与“apt-get source --compile”命令一起使用时,用于选择适用指定机型的源代码软件包。如果没有特别指定,选择的软件包与当前系统的机型相同。

-b, --compile, --build  下载后编译源代码软件包。

-c conf, --config-file=conf  指定apt-get命令使用的配置文件,其中含有软件源的地址或路径(如http、ftp、cdrom或本地文件)。apt-get程序首先会读取默认的配置文件,然后再读取这个选项指定的配置文件。

-d, --download-only  仅仅下载软件包文件,既不解压,也不安装软件包。

-f, --fix-broken  修复。尝试校正系统中软件包依赖性失控的问题。

-q, --quiet  安静模式。生成适合于记录日志的输出信息,禁止显示安装进度指示信息。“-q”选项将会进一步减少输出信息。

-u, --show-upgraded  显示已升级以及即将升级的所有软件包列表。

-V, --verbose-versions  显示已升级与已安装软件包的完整版本信息。

-y, --yes, --assume-yes  对需要用户确认的任何请求,总是使用yes回答。这意味着采用非交互式方式自动运行apt-get命令。如果出现了意外情形,如试图安装未认证的软件包或删除最基本的软件包时,apt-get将会终止运行。

--allow-unauthenticated  无须考虑软件包是否已经认证。即使软件包未认证,也不输出任何提示信息。

--assume-no  对需要用户确认的任何请求,总是使用no回答。

--auto-remove  如果功能选项是install或remove,指定这个选项相当于选用了autoremove功能选项,即删除现已不再需要的依赖软件包。

--install-suggests  安装为满足依赖关系而建议安装的软件包。

--no-download  禁止下载软件包。最好与“-m”选项一同使用,强制APT仅仅使用已下载的、缓存在本地系统中的“.deb”格式的软件包。

--no-install-recommends  禁止安装为满足依赖关系而建议安装的软件包。

--no-remove  如果出现删除任何软件包的情况,立即终止运行而不加任何提示。

--no-upgrade  禁止升级软件包。与install功能选项一起使用时,如果指定的软件包已经安装,这个选项将会防止apt-get升级命令行中指定的相应软件包。

--only-upgrade  禁止安装新的软件包。与install功能选项一起使用时,如果指定的软件包尚未安装,这个选项将会防止apt-get升级命令行中指定的相应软件包。

--print-uris  显示软件包文件的URI地址(包括文件的名字和大小等),而不是下载、安装相应的软件包。这个选项可与update或source等功能选项一起使用。

--purge  删除任何软件包时使用功能选项purge替代remove,以彻底清除软件包。也就是说,“apt-get remove --purge”命令等价于“apt-get purge”命令。注意,需要清除的软件包后面将会出现一个星号“*”标记。

--reinstall  基于当前已经安装的软件包,重新安装最新版的软件包。

应用实例

1. 安装MySQL数据库,包括服务器与客户端。

$ sudo apt-get install mysql-server

2. 从系统中删除不再继续使用的软件包bind9。

$ sudo apt-get remove bind9

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z