Почему новый репозиторий автоматически установил бы пакеты?

Существует ли ситуация, где недавно добавленный репозиторий должен был бы установить пакеты "зависимости" прежде чем быть попросившим установить что-либо новое?

Я просто столкнулся со следующей ситуацией:

В то время как моя система была актуальна, я добавил репозиторий 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

Так, я предполагаю, реальный вопрос становится: действительно ли зависимости от пакета являются функцией доступных пакетов/репозиториев? Я думал, что зависимости должны быть зафиксированы: пакет или требует, чтобы другой пакет работал (доступно ли это Вам или не), или он не делает (в этом случае, это не действительно зависимость).

Система:

  • Kubuntu 16.04
  • Ядро 4.13.0-45-универсальная # 64-разрядные 50~16.04.1-Ubuntu
1
задан 28 July 2018 в 11:22

2 ответа

Используя команды, предложенные N0rbert и с некоторой справкой от хороших людей в OFTC #debian канал IRC, я проследил его через пакеты и выяснил, почему это произошло, который является, вероятно, наиболее вероятным сценарием при наблюдении необъясненных новых пакетов, автоматически установленных:

Недавно добавленный репозиторий содержал более новую версию существующего пакета, который был отмечен для обновления. Новая версия обновленного пакета имела новую зависимость (который более старая версия не имела), таким образом, новая зависимость была отмечена для автоматической установки.

Например, обновленная версия существующего пакета python3-requests имеет python3-certifi как новая зависимость, таким образом, последний был отмечен для установки.

Именно мой отказ я первоначально пропустил то, что обратная зависимость python3-certifi (python3-requests) был один из обновляемых пакетов.

0
ответ дан 3 December 2019 в 06:51

Вы уже ответили на свой вопрос: PPA имеет более новые версии уже установленных пакетов, поэтому после добавления PPA и выполнения apt-get update APT видит, что более новые версии доступны, и перечисляет некоторые пакеты как имеющие обновления.

Можно получить детали путем выполнения 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 

и проверьте их источник (см. таблицу Version).

Также можно проверить от того, где два новых пакета будут установлены и почему они будут установлены (свериться apt-cache rdepends):

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

Можно консультироваться man apt-cache для деталей.

4
ответ дан 3 December 2019 в 06:51

Другие вопросы по тегам:

Похожие вопросы: