apt-get хочет автоматически удалить основные пакеты

apt-get хочет автоматически удалить основные пакеты

Сегодня я обновил свой сервер Debian Sid до PHP 5.6RC4 (x64):

The following packages have been kept back:
  perl perl-base perl-modules
The following packages will be upgraded:
  cpp-4.9 g++-4.9 gcc-4.9 gcc-4.9-base libasan1 libatomic1 libcilkrts5 libgcc-4.9-dev libgcc1 libgomp1 libitm1 liblsan0 libquadmath0 libstdc++-4.9-dev libstdc++6 libtsan0 libubsan0 php-pear php5 php5-cli
  php5-common php5-curl php5-fpm php5-gd php5-mcrypt php5-mysql php5-readline python-pil
28 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 41.0 MB of archives.
After this operation, 762 kB disk space will be freed.
Do you want to continue? [Y/n]

Теперь, когда я делаю apt-get dist-upgradeили apt-get autoremoveполучаю следующее:

The following packages will be REMOVED:
  console-setup console-setup-linux debconf-i18n dictionaries-common iamerican ibritish ienglish-common ispell keyboard-configuration libalgorithm-diff-xs-perl libdbd-mysql-perl libdbi-perl
  libfile-fcntllock-perl libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tree-perl libio-socket-ssl-perl liblocale-gettext-perl liblwp-protocol-https-perl libmailtools-perl
  libnet-smtp-ssl-perl libnet-ssleay-perl libtext-charwidth-perl libtext-iconv-perl libtext-soundex-perl libtext-wrapi18n-perl libuuid-perl libwww-perl libxml-libxml-perl libxml-parser-perl
  libxml-sax-expat-perl linux-base linux-image-3.14-1-amd64 linux-image-amd64 mariadb-client-10.0 mariadb-server mariadb-server-10.0 task-english tasksel tasksel-data texinfo
The following NEW packages will be installed:
  libcgi-pm-perl libmodule-build-perl libmodule-signature-perl libpackage-constants-perl libpod-readme-perl libregexp-common-perl
The following packages will be upgraded:
  perl perl-base perl-modules
3 upgraded, 6 newly installed, 42 to remove and 0 not upgraded.
Need to get 7,102 kB of archives.
After this operation, 262 MB disk space will be freed.
Do you want to continue? [Y/n]

Похоже, он хочет удалить множество пакетов, связанных с Perl (возможно, потому что Perl еще не обновлен), а также mariadb-server(который я установил сам, это не зависимость), linux-image-3.14-1-amd64(который является моим текущим ядром и был закреплен в apt) taskselи т. д.

я нашелэтот вопроснасчет MariaDB, но эта библиотека, насколько мне известно, не была тронута.

Удаление ядра Linux не кажется мне хорошей идеей. Также мне нужен сервер MariaDB.

Кто-нибудь знает, почему это внезапно происходит? И как это исправить? Есть ли какая-нибудь команда для повторной проверки всех зависимостей или блокировки всех текущих пакетов? Я не хочу вручную закреплять все эти пакеты (что, похоже, даже не работает в отношении ядра).

решение1

TL;DR: Похоже, есть некоторые проблемы с зависимостями между libuuid-perlи perl-base.

Редактировать 2014-08-18, похоже, зависимости/репозитории были исправлены; «у меня работает».

Действия по устранению неполадок, начиная с проблемы с ядром:

sudo apt-get install linux-image-amd6

Следующие пакеты имеют неудовлетворенные зависимости: linux-image-amd64 : Зависит от: linux-image-3.14-2-amd64, но он не будет установлен

sudo apt-get install linux-image-amd64 "linux-image-3.14-2-amd64"

Следующие пакеты имеют неудовлетворенные зависимости: linux-image-3.14-2-amd64 : Зависит от: linux-base (>= 3~), но он не будет установлен

sudo apt-get install linux-image-amd64 "linux-image-3.14-2-amd64" linux-base

Следующие пакеты имеют неудовлетворенные зависимости: linux-base : Зависит: libuuid-perl, но он не будет установлен

Хм, тут я натыкаюсь на Perl.

sudo apt-get install linux-image-amd64 "linux-image-3.14-2-amd64" linux-base libuuid-perl

Следующие пакеты имеют неудовлетворенные зависимости: libuuid-perl : Зависит от: perlapi-5.18.1, но его невозможно установить

Ага! libuuid-perlкажется, требуется perlapi-5.18.1.

sudo apt-get install linux-image-amd64 "linux-image-3.14-2-amd64" linux-base libuuid-perl perl-base perlapi-5.18.1

Пакет perlapi-5.18.1 недоступен, но на него ссылается другой пакет.

E: Пакет «perlapi-5.18.1» не имеет кандидата на установку

Хм. Нет perlapi-5.18.1в наличии. Посмотрим, что perl-baseдаст:

apt-cache show perl-base

Пакет: perl-base Источник: perl Версия: 5.20.0-4 Необходимый: да Установленный размер: 5007 Сопровождающий: Нико Тайни Архитектура: amd64 Заменяет: libio-socket-ip-perl, libperl5.8 (<< 5.8.0-20), libscalar-list-utils-perl, libsocket-perl, libxsloader-perl, perl (<< 5.10.1-12), perl-modules (<< 5.10.1-1) Предоставляет: libio-socket-ip-perl, libscalar-list-utils-perl, libsocket-perl, libxsloader-perl, perl5-base, perlapi-5.20.0 Предварительно зависит: libc6 (>= 2.14), dpkg (>= 1.14.20) Предлагает: perl Конфликты: defoma (<< 0.11.12), doc-base (<< 0.10.3), mono-gac (<< 2.10.8.1-3), safe-rm (<< 0.8), update-inetd (<< 4.41) Поломки: autoconf2.13 (<< 2.13-45), libalien-wxwidgets-perl (<< 0.65+dfsg-2), libanyevent-perl (<< 7.070-2), libcommon-sense-perl (<< 3.72-2~), libfile-spec-perl (<< 3.4700), libgtk2-perl-doc (<< 2:1.2491-4), libio-socket-ip-perl (<< 0.29), libjcode-perl (<< 2.13-3), libmarc-charset-perl (<< 1.2), libscalar-list-utils-perl (<< 1:1.38), libsocket-perl (<< 2.> 013), libxsloader-perl (<< 0.17)

Он обеспечивает perlapi-5.20.0. Что libuuid-perlна самом деле требуется?

apt-cache show libuuid-perl

Пакет: libuuid-perl Версия: 0.05-1 Зависит от: perl-base (>= 5.18.1-2), perlapi-5.18.1, libc6 (>= 2.4), libuuid1 (>= 2.16) Конфликты: doc-base (<< 0.10.3)

Кажется, для этого требуется не только perl-baseверсия 5.18.1-2, указанная выше, но иявнозависит от perlapi-5.18.1того, что не предусмотрено.

Дальше:

sudo apt-get install libperl5.18

Следующие пакеты имеют неудовлетворенные зависимости: libperl5.18 : Зависит от: perl-base (= 5.18.2-7), но необходимо установить 5.20.0-4

sudo apt-get install libperl5.18 perl-base=5.18.2-7

Чтение списков пакетов... Готово Построение дерева зависимостей
Чтение информации о состоянии... Готово E: Версия «5.18.2-7» для «perl-base» не найдена

Связанный контент