AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 21105
Accepted
Thomaschaaf
Thomaschaaf
Asked: 2009-06-07 04:25:07 +0800 CST2009-06-07 04:25:07 +0800 CST 2009-06-07 04:25:07 +0800 CST

apt-get 和 aptitude 有什么区别?

  • 772

我不明白为什么在安装软件的最小安装中有两个不同的程序。他们不做同样的事情吗?有很大的不同吗?我到处都阅读过使用 aptitude 而不是 apt-get 但我仍然不知道有什么区别

linux debian installation
  • 9 9 个回答
  • 12396 Views

9 个回答

  • Voted
  1. Best Answer
    katriel
    2009-06-07T04:34:35+08:002009-06-07T04:34:35+08:00

    aptitude 是 dpkg 的包装器,就像 apt-get/apt-cache 一样,但它是用于搜索/安装/删除/查询的一站式工具。apt 可能无法提供的一些示例:

    $ aptitude why libc6
    i   w64codecs Depends libc6 (>= 2.3.2)
    $ aptitude why-not libc6
    Unable to find a reason to remove libc6.
    
    $ aptitude show libc6
    Package: libc6
    State: installed
    Automatically installed: no
    Version: 2.9-4ubuntu6
    Priority: required
    Section: libs
    Maintainer: Ubuntu Core developers <[email protected]>
    Uncompressed Size: 12.1M
    Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
    Suggests: locales, glibc-doc
    Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
    tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
    Replaces: belocs-locales-bin
    Provides: glibc-2.9-1
    Description: GNU C Library: Shared libraries
     Contains the standard libraries that are used by nearly all programs 
     on the system. This package includes shared versions of the standard 
     C library and the standard math library, as well as many others.
    
    • 48
  2. Mikeage
    2009-06-08T10:27:25+08:002009-06-08T10:27:25+08:00
    mikeage@linode ~$ aptitude -h | tail -n 1
                  This aptitude does not have Super Cow Powers.
    mikeage@linode ~$ apt-get -h | tail -n 1
                       This APT has Super Cow Powers.
    mikeage@linode ~$ aptitude moo
        There are no Easter Eggs in this program.
    mikeage@linode ~$ apt-get moo
             (__)
             (oo)
       /------\/
      / |    ||
     *  /\---/\
        ~~   ~~
    ...."Have you mooed today?"...
    mikeage@linode ~$ aptitude -v moo
    There really are no Easter Eggs in this program.
    mikeage@linode ~$ aptitude -vv moo
    Didn't I already tell you that there are no Easter Eggs in this program?
    mikeage@linode ~$ aptitude -vvv moo
    Stop it!
    mikeage@linode ~$ aptitude -vvvv moo
    Okay, okay, if I give you an Easter Egg, will you go away?
    mikeage@linode ~$ aptitude -vvvvv moo
    All right, you win.
    
                                   /----\
                           -------/      \
                          /               \
                         /                |
       -----------------/                  --------\
       ----------------------------------------------
    mikeage@linode ~$ aptitude -vvvvvv moo
    What is it?  It's an elephant being eaten by a snake, of course. 
    
    • 45
  3. Raphaël Hertzog
    2009-06-08T06:19:42+08:002009-06-08T06:19:42+08:00

    当前在 Debian 安装程序中使用并在发行说明中推荐的官方工具是aptitude.

    Aptitude 提供了一个 curses 界面(当没有任何参数运行时)和一个命令行界面,几乎可以完成apt-cache/apt-get所做的所有事情。它还具有更好的依赖关系解析器,可让您在多个解决方案之间浏览。即使使用命令行版本,您也可以与建议的解决方案进行交互并提供补充命令或提示(例如安装或删除另一个人推荐的软件包)。

    但是 aptitude 基于 libapt 库(它不是 dpkg 的直接包装器),因此它取决于apt软件包,因此如果没有 apt-get(也在 apt 软件包中),您将无法安装 aptitude。

    $ dpkg --status aptitude| grep Depends
    Depends: libapt-pkg-libc6.9-6-4.7, [...]
    $ dpkg --status apt|grep Provides
    Provides: libapt-pkg-libc6.9-6-4.7
    $ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
    apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
    apt: /usr/bin/apt-get
    

    要了解更多关于 apt/dpkg/aptitude 如何交互的信息,您可以查看Daniel Burrows(aptitude 的主要作者)制作的图表。另一个图表显示了各种包管理工具存储的信息:apt 和 dpkg 状态文件的映射。

    你也可以阅读我的文章apt-get, aptitude, ... 为你选择合适的包管理器

    • 19
  4. Signum
    2009-06-08T12:22:41+08:002009-06-08T12:22:41+08:00

    aptitude记住您故意安装了哪些软件包,以及自动安装了哪些软件包以满足依赖关系。删除软件包后,aptitude 将删除那些自动安装的软件包以保持系统整洁。apt-get是不是很聪明。

    aptitude一旦您使用具有不同版本的包的不同存储库,它将很快成为不可或缺的工具。想象一下,您正在使用backports.org或像debian-multimedia.org这样的非官方存储库。然后aptitude将显示(在某个包的详细信息页面的底部)可用的版本号并允许您选择一个。

    如果由于使用非官方存储库而导致程序发生冲突,您将在顶部看到“Broken: ...”显示。您可以输入l~b (limit / flag / broken) 并获得相互冲突的软件包列表。使手动解决冲突变得更加容易。

    此外,您可以使用“ l”来限制包列表。想象一下,您正在寻找以“ openoffice ”开头的软件包,然后按“ l”并键入“ ^openoffice”(这是一个正则表达式),您将只看到这些软件包。从菜单中选择一个“平面包列表”,您将很快达到您的目标。

    完整的手册非常大,为您提供了更多的过滤器和可能性。即使您不知道它们aptitude是一个方便的替代品apt-get,您也可以将其与常见参数一起使用,例如:

    aptitude install ... (install or upgrade a package)
    aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
    aptitude purge ... (remove the package completely including your configuration)
    
    • 7
  5. dbr
    2009-06-07T07:08:14+08:002009-06-07T07:08:14+08:00

    除了在aptitude不带参数运行时提供漂亮的控制台 UI 之外,它将各种apt-*命令(和dselect)组合到一个实用程序中。

    要搜索一个包并安装它,使用 apt-get:

    apt-cache search somepkg
    apt-get install somepkg
    

    ..但是 aptitude 它是相同的命令:

    aptitude search somepkg
    aptitude install somepkg
    

    aptitude确实有一些额外的功能,aptitude changelog somepkg比如保存包(以阻止它们升级) - 没有什么是您无法通过其他命令/方法实现的,它只是更加统一和好用。

    • 5
  6. gpilotino
    2009-06-07T04:35:56+08:002009-06-07T04:35:56+08:00

    如您所知,当您安装一个包时,如果它需要其他包(依赖项),它们也会被下载和安装。aptitude 会在安装时跟踪安装的软件包附带的软件包,因此当您删除后一个 aptitude 时,会要求您删除其他(现在未使用的)“孤立”依赖项。如果您删除“主”包,apt-get 会将它们静默地保存在您的系统中。

    看起来最新版本的 apt-get 具有类似的功能: http ://www.psychocats.net/ubuntu/aptitude

    • 4
  7. user3146
    2009-06-07T04:56:46+08:002009-06-07T04:56:46+08:00

    最大的不同是 aptitude 被设计为交互式的,其中 apt 工具更适合脚本工作。您可以使用后者,即 apt 工具,以交互方式很好地使用更多的努力来获得 aptitude 提供的相同结果。如果由于某种原因您不得不只使用一种工具或另一种工具,那么您需要决定要在包管理中投入多少精力。

    • 3
  8. Coops
    2009-06-07T04:55:48+08:002009-06-07T04:55:48+08:00

    aptitude 的重要优势之一是它能够计算依赖关系。首先,它可以处理复杂的相互依赖关系,而无需您自己干预,而这通常 apt-get 会失败。但是,如果您不喜欢它为您提供的解决方案(并且它会为自己的解决方案评分以证明它认为它有多好),您可以要求它离开并提出另一个解决方案来解决冲突。

    它确实做了一些很棒的包管理。

    • 1
  9. hayalci
    2009-06-07T05:52:40+08:002009-06-07T05:52:40+08:00

    最大的不同是:输入“aptitude”不带任何参数。

    它为您提供了一个基于文本的用户界面,您可以使用键盘搜索/导航等。查看有关依赖项、反向依赖项、包的所有可用版本的信息,并且您可以从该屏幕对它们进行任何包管理器操作。

    您可以按“g”查看更改,必要时修改包的添加和删除,并应用所有待处理的操作。

    通过 ssh 连接或普通旧终端进行包管理的一种很好的可视化方式。

    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve