clang ++ не устанавливается в Ubuntu 18.04

, когда я запускаю

sudo apt install clang-6.0

, я получаю эту ошибку-

The following packages have unmet dependencies:
 clang-6.0 : Depends: libobjc-7-dev but it is not going to be installed
             Depends: libclang-common-6.0-dev (= 1:6.0-1ubuntu2) but it is not going to be installed
             Recommends: llvm-6.0-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

, когда я бежать -

apt policy clang-6.0 

Я получаю -

clang-6.0:
  Installed: (none)
  Candidate: 1:6.0-1ubuntu2
  Version table:
     1:6.0-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

, когда я бегу -

dpkg -l|awk '$3 ~ /svn/ {print}'

Я получаю -

ii  fonts-kacst-one                                             5.0+svn11846-9                                              all          TrueType font designed for Arabic language
ii  libstemmer0d:amd64                                          0+svn585-1build1                                            amd64        Snowball stemming algorithms for use in Information Retrieval
ii  printer-driver-splix                                        2.0.0+svn315-6fakesync1                                     amd64        Driver for Samsung and Xerox SPL2 and SPLc laser printers

, когда я бегу -

dpkg --get-selections | grep hold

Я ничего не получаю

Я перепробовал почти все, что смог найти. У меня ничего не получалось.

Спасибо

2
задан 17 June 2020 в 14:49

1 ответ

Хорошо, давайте вернемся к первоначальному вопросу. Вы сказали, что возник конфликт при попытке установить clang-6.0 . Затем я попросил у вас вывод apt policy clang-6.0 , чтобы узнать, какие кандидаты на установку рассматривались. Вы дали это:

# apt policy clang-6.0
clang-6.0:
  Installed: (none)
  Candidate: 1:6.0.1~svn334776-1~exp1~20190309042703.125
  Version table:
     1:6.0.1~svn334776-1~exp1~20190309042703.125 500
        500 http://apt.llvm.org/bionic llvm-toolchain-bionic-6.0/main amd64 Packages
     1:6.0-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

Кроме того, я попросил вас удалить (или закомментировать) репозиторий пакетов LLVM ( apt.llvm.org ), который вы, очевидно, активировали для apt , за которым следует обновление apt , чтобы убедиться, что apt больше не учитывает их.

Первоначально я не учел тот факт, что у вас уже может быть установлен некоторые пакеты из этого стороннего хранилища пакетов. Вывод dpkg -l | awk '$ 3 ~ / svn / {print}' , который я запросил у вас, должен был показать это. Хотя иногда существуют версии пакетов, отмеченные ревизией SVN, достаточно редко получить список с управляемым размером. Вы отредактировали это в своем вопросе.

Поскольку, по всей вероятности, пакеты уже находятся в непротиворечивом состоянии, мы можем предположить - основываясь на выходных данных - что все пакеты, пришедшие из репозитория пакетов LLVM, будут помечены примерно так: svn334776 (т.е. особенно с ревизией SVN, находящейся в этом диапазоне, если не идентичны). Таким образом, мы можем урезать ваш список дальше:

ii  clang-format-6.0                                            1:6.0.1~svn334776-1~exp1~20190309042703.125                 amd64        Tool to format C/C++/Obj-C code
ii  libclang1-6.0                                               1:6.0.1~svn334776-1~exp1~20190309042703.125                 amd64        C interface to the clang library
ii  libllvm6.0:amd64                                            1:6.0.1~svn334776-1~exp1~20190309042703.125                 amd64        Modular compiler and toolchain technologies, runtime library
ii  llvm-6.0                                                    1:6.0.1~svn334776-1~exp1~20190309042703.125                 amd64        Modular compiler and toolchain technologies
ii  llvm-6.0-runtime                                            1:6.0.1~svn334776-1~exp1~20190309042703.125                 amd64        Modular compiler and toolchain technologies, IR interpreter

Это пакеты, от которых вы хотите избавиться, прежде чем пытаться установить clang-6.0 из официальных источников пакетов.

Поэтому попробуйте удалить их следующим образом:

apt remove clang-format-6.0 libclang1-6.0 libllvm6.0:amd64 llvm-6.0 llvm-6.0-runtime

После этого вы сможете установить clang-6.0 , как вы изначально пытались.


Учитывая ваши отзывы и новый вывод, отредактированный в вашем вопрос, я не вижу ничего неправильно per se.

Пока вы не могли бы попытаться запустить (хочет установить clang-6.0 libclang-common-6.0-dev ) :

apt install --no-install-recommends clang-6.0

... в отличие от (хочет установить: clang-6.0 libclang-common-6.0-dev llvm-6.0-dev ):

apt install clang-6.0

На моем Ubuntu 18.04 llvm Пакет -6.0-dev имеет значение здесь. В вашей системе пакет llvm-6.0-dev также в настоящее время не установлен. И я считаю, что это может быть проблема здесь. Не могли бы вы также вставить вывод:

apt policy llvm-6.0-dev libobjc-7-dev

В моей системе apt policy показывает двух кандидатов на libobjc-7-dev :

libobjc-7-dev:
  Installed: 7.5.0-3ubuntu1~18.04
  Candidate: 7.5.0-3ubuntu1~18.04
  Version table:
 *** 7.5.0-3ubuntu1~18.04 500
        500 http://de.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.3.0-16ubuntu3 500
        500 http://de.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

Разница между вашими 18.04 и моей должна теперь сводитесь либо к тому, что вы никогда не запускали apt dist-upgrade (который у меня есть), либо к настроенным источникам пакетов. Поэтому было бы замечательно, если бы вы могли включить вывод:

grep -hP '^deb\s' $(find /etc/apt -name '*.list')

... также.


Еще одно примечание: в комментарии я рекомендовал использовать deborphan , чтобы выяснить, какие пакеты существуют в ваша система, которая не требуется для других пакетов и (я думаю) не помечена как установленная вручную ( apt-mark showmanual / apt-mark manual ... ).

1
ответ дан 19 June 2020 в 21:41

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

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