1

Я думаю, этот вопрос о той же проблеме. Этот вопрос помечен как ответивший, хотя проблема не решена, поэтому я открываю новый вопрос с чуть более подробной информацией.

Краткое описание:

apt не может обновить пакет, если отсутствуют некоторые зависимости (это нормально), но то, что я наблюдаю в ubuntu 14.04, это то, что он делает это с кодом выхода 0 (проблема 1) и без сообщения о «неудавшихся зависимостях» (проблема 2).

Подробное описание:

Я на Ubuntu 14.04, версия 1.0.1ubuntu2.6

# uname -a       
Linux myhost 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

# lsb_release -c      
Codename:       trusty

# dpkg -l apt         
||/ Name            Version        Architecture Description
+++-===============-==============-============-====================================
ii  apt             1.0.1ubuntu2.6 amd64        commandline package manager

У меня установлен пакет, версия 0.03, никаких зависимостей:

# dpkg -l fake-test-package
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-===============================================
ii  fake-test-package     0.03-1          all             package to test apt

# apt-cache depends fake-test-package=0.03-1
fake-test-package

Я хотел бы обновить пакет до версии 0.04 (которая имеет неудовлетворенную зависимость very-strange-dependency):

# apt-cache depends fake-test-package=0.04-1
fake-test-package
  Depends: <very-strange-dependency>

Итак, я выполняю apt-get install:

# apt-get install fake-test-package=0.04-1         
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  fake-test-package
0 upgraded, 0 newly installed, 0 to remove and 217 not upgraded.

# echo $?
0

Кажется, все в порядке, и код выхода равен 0, но пакеты не были обновлены:

# dpkg -l fake-test-package
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-===============================================
ii  fake-test-package     0.03-1          all             package to test apt

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

В Ubuntu 12.04 наблюдается другое поведение: код выхода = 100 и отчет «неудовлетворенные зависимости»:

precise# apt-get install fake-test-package=0.04-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fake-test-package : Depends: very-strange-dependency but it is not installable
E: Unable to correct problems, you have held broken packages.

precise# echo $?
100

Что интересно, проблема возникает только при обновлении существующего пакета. Если я удаляю версию 0.03 из системы и пытаюсь установить 0.04 напрямую, apt ведет себя ожидаемым образом:

trusty# apt-get purge fake-test-package
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  fake-test-package*
0 upgraded, 0 newly installed, 1 to remove and 217 not upgraded.
After this operation, 13.3 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 157742 files and directories currently installed.)
Removing fake-test-package (0.03-1) ...
Purging configuration files for fake-test-package (0.03-1) ...

trusty# apt-get install fake-test-package=0.04-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fake-test-package : Depends: very-strange-dependency but it is not installable
E: Unable to correct problems, you have held broken packages.

trusty# echo $?
100 

Вопрос:

Как я могу apt отображение неудовлетворенных зависимостей при обновлении установленного пакета и показать неудачное обновление через ненулевой код выхода?

1 ответ1

0

Это похоже на ошибку apt . Версия 1.0.1 затронута.

Мы создали версию 1.0.9.2 из исходного кода, и она ведет себя так, как ожидается: сообщает о неудовлетворенных зависимостях и завершает работу с ненулевым статусом.

Возможно, это та же ошибка: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745046

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .