, когда я запускаю
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
Я ничего не получаю
Я перепробовал почти все, что смог найти. У меня ничего не получалось.
Спасибо
Хорошо, давайте вернемся к первоначальному вопросу. Вы сказали, что возник конфликт при попытке установить 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 ...
).