zoukankan      html  css  js  c++  java
  • Ubuntu : apt 命令

    apt 命令是一个功能强大的命令行工具,它不仅可以更新软件包列表索引、执行安装新软件包、升级现有软件包,还能够升级整个 Ubuntu 系统(apt 是 Debian 系操作系统的包管理工具)。
    与更专业的 APT(Advanced Packaging Tool) 工具 apt-get 和 apt-cache 相比,apt 具有一些更适合交互式场景的选项,它更倾向于成为面向最终用户的工具(而不仅仅是系统管理员)。换句话说,apt 比 apt-get 用起来更简单,用户体验更好。
    本文介绍 apt 命令的基本用法,演示环境为 Ubuntu 18.04。

    基本语法

    语法格式:
    apt [options] command

    配置文件:
    早期 apt 默认的配置文件为 /etc/apt/apt.conf,但是当前的 Ubuntu 系统中默认没有这个文件。
    如果 /etc/apt/apt.conf 文件存在,apt 仍然会读取它。但现在的设计思路是把配置文件分隔后放置在 /etc/apt/apt.conf.d 目录下,这样更容易管理。

    常用子命令:
    update
    update 命令用于从配置的源下载包信息。update 命令应该总是在安装或升级包之前执行。

    upgrade
    upgrade 命令用于从配置的源安装当前系统中的所有包的可用升级。如果需要满足依赖关系,就安装新的包,但是不会删除现有的包。如果包的升级需要删除已安装的包,则不执行此包的升级。

    full-upgrade
    full-upgrade 命令执行升级功能,如果需要将系统升级到新的版本,则会删除当前已安装的包。

    install,remove,purge
    install 命令用来安装一个或多个指定的包。remove 命令用来删除包,但是会保留包的配置文件。purge 命令会在删除包的同时删除其配置文件。

    autoremove
    autoremove 命令用于删除自动安装的包,这些包是为了满足其他包的依赖关系而自动安装的,随着依赖关系的更改或需要它们的包已被删除,这些包现在不再需要了。

    search
    search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。例如,如果您正在寻找具有特定功能的包,这将非常有用。

    show
    show 命令显示关于给定包的信息,包括它的依赖关系、安装和下载大小、包的来源、包内容的描述等等。比如,在删除一个包或搜索要安装的新包之前查看这些信息是很有帮助的。

    list
    list 命令可以显示满足特定条件的包列表,默认列出所有的包。可以通过 --installed 选项列出已安装的包,--upgrade 选项列出可以升级的包。

    edit-sources
    edit-sources 命令用来编辑 /etc/apt/source.list 文件:
    $ sudo apt edit-sources

    常见用法

    更新包索引文件

    $ sudo apt update

    安装包

    $ sudo apt install nginx

    安装指定版本的包

    $ sudo apt install vim=2:8.0.1453-1ubuntu1

    安装本地的 deb 包文件

    $ sudo apt install name.deb

    这种方法会自动下载并安装依赖的包。

    安装系统中有更新的包
    upgrade 命令会升级已安装的包,同但不移除任何包。它的目标是确保可能的侵入式升级最小化:

    $ sudo apt update
    $ sudo apt upgrade

    删除包
    通过下面两个命令可以删除使用 apt install 安装的包:

    $ sudo apt remove nmap
    $ sudo apt purge nmap

    其中 remove 命令会保留配置文件,而 purge 命令会把配置文件一起删除。

    查看包的信息

    $ apt show vim
    Package: vim
    Version: 2:8.0.1453-1ubuntu1.1
    Priority: optional
    Section: editors
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 2,852 kB
    Provides: editor
    Depends: vim-common (= 2:8.0.1453-1ubuntu1.1), vim-runtime (= 2:8.0.1453-1ubuntu1.1), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.7), libpython3.6 (>= 3.6.5), libselinux1 (>= 1.32), libtinfo5 (>= 6)
    Suggests: ctags, vim-doc, vim-scripts
    Homepage: https://vim.sourceforge.io/
    Task: cloud-image, server
    Supported: 5y
    Download-Size: 1,152 kB
    APT-Manual-Installed: yes
    APT-Sources: http://cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
    Description: Vi IMproved - enhanced vi editor
     Vim is an almost compatible version of the UNIX editor Vi.
    ...

    输出指定条件的包列表
    可以指定某个包的名称,否则会输出大量的信息 :

    $ apt list vim

    $ apt list docker

    还可以使用统配符:

    可以通过 --installed 选项列出所有已安装的包,而 --upgradable 选项则列出所有可以升级的包:

    搜索包
    search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。比如下面的命令,我们搜索 docker,与之相关的 cadvisor 也被搜索出来了:

    $ apt search docker

    apt 与 apt-get 的区别
    简单来说 apt 命令就是 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。下面是几个常见命令的对照关系:
    list:与 dpkg --list 相似
    search:与 apt-cache search 相似
    show:与 apt-cache show 相似
    update:与 apt-get update 相同
    install/remove:与 apt-get install/remove 相似,但是多了进度条提示
    upgrade:与 apt-get upgrade --with-new-pkgs 相同
    full-upgrade:与 apt-get dist-upgrade 相似

    在我们使用的过程中,比较明显的区别是可以看到 apt 命令的进度条,个人感觉并不是太有用。

    执行 apt update 命令,会提示可以升级的包的个数,而 apt-get update 命令则没有这样的提升:

    $ sudo apt update
    ...
    Fetched 8,932 kB in 31s (288 kB/s)                                                   
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    28 packages can be upgraded. Run 'apt list --upgradable' to see them.

    参考:
    apt man page
    维护和更新:APT 工具
    What is the difference between apt and apt-get?

  • 相关阅读:
    javascript window.Event对象
    sql 命令
    ASP.NET 2.0实现防止同一用户同时登陆
    设计模式(抽象工厂模式)
    javascript幻灯片
    javascript window.open
    c# 注册表操作
    大话英语
    oracle 插入、合并、查询、聚合操作
    guy,mistake
  • 原文地址:https://www.cnblogs.com/sparkdev/p/11357343.html
Copyright © 2011-2022 走看看