Обновление: решите зависимость от предыдущего пакета выпуска

Я просто обновил от 14,04 до 16,04. Это не было легко, вероятно, потому что у меня было много тонких настроек на моей машине (обновленные пакеты, не установленные из "официальных" источников). Это не загрузилось бы, я думал сначала, что это было проблемой с видеокартой ("Radeon init ошибка"), но в конечном счете заставило его загрузиться путем загрузки (на другой машине) libstdc++6 затем установка с dpkg -i, использование Личинки базируется оболочка (подобная проблема как та здесь).

Я теперь могу загрузить, иметь настольную сессию.Отлично.

Теперь проблема: у Меня есть тяжелая проблема зависимости от пакета, весь apt-get команды перестанут работать. Рассмотрите это:

$ sudo apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libstdc++-5-dev : Depends: libstdc++6 (>= 5.5.0-12ubuntu1~14.04) but 5.4.0-6ubuntu1~16.04.10 is installed
 libstdc++6 : Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.10) but 5.5.0-12ubuntu1~14.04 is installed
              Breaks: libogre-1.8.0 (<= 1.8.1+dfsg-0ubuntu5) but 1.8.1+dfsg-0ubuntu3 is installed
 libstdc++6:i386 : Depends: gcc-5-base:i386 (= 5.4.0-6ubuntu1~16.04.10) but 5.5.0-12ubuntu1~14.04 is installed
                   Breaks: libogre-1.8.0 (<= 1.8.1+dfsg-0ubuntu5) but 1.8.1+dfsg-0ubuntu3 is installed
E: Unmet dependencies. Try using -f.

Данный совет (apt-get -f install) ничего не делает.

Как Вы видите, что является странным, то, что, кажется, существует путаница пакетов от 14,04 и 16.04:

  • libstdc++-5-dev зависит от 14,04 версий libstdc++6, и у меня есть, конечно, 16,04 установленных версий.
  • libstdc++6 зависит от 16,04 пакетов (gcc-5-base) но у меня, кажется, все еще есть 14,04 версий!!!

Я пытался переустановить эти 3 пакета с:

sudo apt-get -f install <pkgname> --reinstall

=> неспособный

Я пытался удалить libstdc ++-5-dev с:

sudo apt-get -f remove libstdc++-5-dev

=> это просит невстреченные зависимости нескольких других пакетов. Если я удаляю их один за другим, я заканчиваю в той же точке.

Я также попробовал много других вещей, но в основном закончите в той же точке.

Другая информация:

$ lsb_release -ir 
Distributor ID: Ubuntu
Release:    16.04
$ uname -m
x86_64

Вопрос: как я вытаскиваю меня из этой проблемы зависимости?

4
задан 22 August 2018 в 13:37

2 ответа

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

Так, на всякий случай решение:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -f install

(и конечно после этого: apt-get upgrade и apt autoremoveзавершить).

5
ответ дан 1 December 2019 в 09:30

У меня была эта неудовлетворенная ошибка зависимости. Используя Software Updater, я установил рекомендуемые GCC, GNU C Compiler, GNU C++ Compiler, после чего я даже не смог перезапуститься и попасть на экран входа в систему. Прочитав каждое решение в течение двух дней, ни одно из которых не помогло мне, я объединил 2 из них, чтобы окончательно решить проблему.

1- Изменены источники в файле /etc/apt/sources.list на те, что по умолчанию, которые я нашел здесь: https://gist.github.com/rohitrawat/60a04e6ebe4a9ec1203eac3a11d4afc1

sudo leafpad /etc/apt/sources.list

(я использую leafpad, вы можете использовать любой другой текстовый редактор, если хотите)

2- Я узнал, что aptitude лучше справляется с зависимостью проблемы, поэтому я запускаю эту команду для установки gcc

sudo aptitude install gcc

3- Затем aptitude предложил мне решение для устранения проблемы, которая представляет собой очень длинный список для удаления важных пакетов, таких как arandr, ubuntu-desktop и т. д., поэтому я нажал n и не принял первое предложение, но принял второе предложение следующим образом:

-------------------------------------------------------------
The following actions will resolve these dependencies:

Upgrade the following packages:                                           

1)      gcc-5-base [5.4.0-6ubuntu1~16.04.12 (now, xenial-updates) -> 5.5.0-12ubu
2)      libstdc++6 [5.4.0-6ubuntu1~16.04.12 (now, xenial-updates) -> 9.3.0-10ubu

      Downgrade the following packages:                                         
3)      gcc-9-base [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial
4)      gcc-9-base:i386 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (x
5)      libatomic1 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial
6)      libcc1-0 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)]
7)      libgcc1 [1:9.3.0-11ubuntu0~14.04 (now) -> 1:9.3.0-10ubuntu2~16.04 (xenia
8)      libgcc1:i386 [1:9.3.0-11ubuntu0~14.04 (now) -> 1:9.3.0-10ubuntu2~16.04 (
9)      libgomp1 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)]
10)     libitm1 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)] 
11)     liblsan0 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)]
12)     libobjc4 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)]
13)     libquadmath0 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xeni
14)     libtsan0 [9.3.0-11ubuntu0~14.04 (now) -> 9.3.0-10ubuntu2~16.04 (xenial)]

Accept this solution? [Y/n/q/?] **Y**

и проблема исчезла.

1
ответ дан 27 November 2020 в 11:15

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

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