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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1056163
Accepted
Ratler
Ratler
Asked: 2018-07-15 12:43:16 +0800 CST2018-07-15 12:43:16 +0800 CST 2018-07-15 12:43:16 +0800 CST

为什么新的存储库会自动安装软件包?

  • 772

是否存在新添加的存储库需要在被要求安装任何新东西之前安装“依赖”包的情况?

我刚刚遇到以下情况:

虽然我的系统是最新的,但我添加了Certbot存储库 ( http://ppa.launchpad.net/certbot/certbot/ubuntu ),并且在运行更新后,据报道有九个软件包可以升级。我尝试进行升级并得到以下结果:

$ sudo aptitude safe-upgrade
Resolving dependencies...                
The following NEW packages will be installed:
  python3-certifi{a} python3-idna{a} 
The following packages will be upgraded:
  python-chardet python-pkg-resources python-six python3-chardet python3-configobj python3-pkg-resources python3-requests python3-six python3-urllib3 
9 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 906 kB of archives. After unpacking 1,183 kB will be used.

我可以理解正在升级的软件包:新存储库已经在我的系统上安装了更新版本的软件包,因此它们被标记为升级。但是为什么要尝试安装新软件包?有问题的软件包似乎与存储库中的软件相关,但为什么会自动安装它们呢?

如果它们是我系统上某些东西的依赖项,那么它以前是如何工作的?我该如何调查到底发生了什么?

更新

我检查了反向依赖项apt-cache;例如,

$ sudo apt-cache rdepends python3-certifi
python3-certifi
Reverse Depends:
python3-requests

禁用 Certbot存储库后,我得到

$ apt-cache depends python3-requests
python3-requests
Depends: python3-urllib3
Depends: <python3:any>
    python3:i386
    python3
Depends: ca-certificates
Depends: python3-chardet
Depends: python3-urllib3

当我启用它时,我得到

$ apt-cache depends python3-requests
python3-requests
Depends: python3-certifi
Depends: python3-chardet
Depends: python3-idna
Depends: python3-urllib3
Depends: <python3:any>
    python3:i386
    python3
Depends: ca-certificates
Depends: python3-urllib3

所以,我想,真正的问题变成了:包依赖是可用包/存储库的函数吗?我认为应该修复依赖关系:一个包要么需要另一个包才能工作(无论它是否对您可用),要么不需要(在这种情况下,它不是真正的依赖项)。

系统:

  • 库本图 16.04
  • 内核 4.13.0-45-generic #50~16.04.1-Ubuntu 64 位
package-management repository
  • 2 2 个回答
  • 127 Views

2 个回答

  • Voted
  1. N0rbert
    2018-07-15T12:51:22+08:002018-07-15T12:51:22+08:00

    您已经回答了您的问题:PPA 具有已安装软件包的较新版本,因此在添加 PPA 并运行apt-get updateAPT 后会看到较新的版本可用并将一些软件包列为具有更新。

    您可以通过运行获取详细信息apt-cache policy:

    apt-cache policy python-chardet python-pkg-resources python-six \
    python3-chardet python3-configobj python3-pkg-resources python3-requests \
    python3-six python3-urllib3 
    

    并检查它们的来源(参见版本表)。

    您还可以检查两个新软件包的安装位置以及安装原因(检查apt-cache rdepends):

    apt-cache policy python3-certifi python3-idna
    apt-cache rdepends python3-certifi python3-idna
    

    详情可咨询man apt-cache。

    • 4
  2. Best Answer
    Ratler
    2018-07-29T00:44:27+08:002018-07-29T00:44:27+08:00

    使用N0rbert建议的命令并在 OFTC #debian IRC 频道的好心人的帮助下,我通过软件包追溯并找出了发生这种情况的原因,这可能是看到自动安装的无法解释的新软件包时最可能出现的情况:

    新添加的存储库包含现有软件包的更新版本,已标记为升级。升级包的新版本有一个新的依赖(旧版本没有),所以新的依赖被标记为自动安装。

    例如,现有包的升级版本python3-requests作为python3-certifi一个新的依赖,所以后者被标记为安装。

    python3-certifi这是我的错,我最初错过了( python3-requests) 的反向依赖是正在升级的软件包之一这一事实。

    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行判断机器是否需要重新启动?

  • 有没有办法重置所有包/源并从头开始?

  • 如何回滚到 PHP 5.2?

  • 包管理器之间有什么区别?

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve