Как установить clang-10 на Ubuntu 20.4

Я обновил свою Linux-систему с Ubuntu 18.04 до 20.04.

Мне нужно установить комплект компиляторов clang, а команда aptвыдает ошибки. Я искал множество возможных решений, но пока ни одна из рекомендаций, которые я нашел для решения подобных проблем, не помогла. Вот что я получаю при попытке apt install clang :

➜ ~ sudo apt-get install -f clang
Чтение списков пакетов... Готово Построение дерева зависимостей
Чтение информации о состоянии... Готово Не удалось установить некоторые пакеты. Это может означать, что у вас есть запрошена невозможная ситуация или если вы используете нестабильную дистрибутив, что некоторые необходимые пакеты еще не созданы или был перемещен из входящих. Следующая информация может помочь разрешить ситуацию:

Следующие пакеты имеют неудовлетворенные зависимости: clang : Зависит: clang-10 (>= 10~), но не будет установлен E: Невозможно исправить проблемы, у вас есть сломанные пакеты. ➜ ~

Я сделал все виды apt-get updateи apt-get upgrade. Я также пытался перечислить все пакеты один за другим, но список продолжает расти, и это не решило проблему.

Редактировать: Вслед за @Martin Konrad я попробовал aptitude:

➜  ~ sudo aptitude install clang
The following NEW packages will be installed:
  clang clang-10{ab} lib32gcc-s1{ab} lib32gcc1{ab} lib32stdc++6{ab} 
  libc6-i386{a} libclang-common-10-dev{ab} libclang-cpp10{ab} libffi-dev{a} 
  libobjc-9-dev{ab} libobjc4{ab} libomp-10-dev{a} libomp5-10{a} libpfm4{a} 
  libz3-4{a} libz3-dev{a} llvm-10{a} llvm-10-dev{ab} llvm-10-runtime{a} 
  llvm-10-tools{a} python3-pygments{a} 
0 packages upgraded, 21 newly installed, 0 to remove and 9 not upgraded.
Need to get 58.4 MB of archives. After unpacking 381 MB will be used.
The following packages have unmet dependencies:
 lib32stdc++6 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10-20200416-0ubuntu1~18.04 is installed
 libobjc4 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10-20200416-0ubuntu1~18.04 is installed
 lib32gcc-s1 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10-20200416-0ubuntu1~18.04 is installed
 clang-10 : Depends: libclang1-10 (= 1:10.0.0-4ubuntu1) but 1:10.0.1~++20200519100828+f79cd71e145-1~exp1~20200519201452.38 is installed
 lib32gcc1 : Depends: gcc-10-base (= 10-20200411-0ubuntu1) but 10-20200416-0ubuntu1~18.04 is installed
 libclang-cpp10 : Depends: libllvm10 (= 1:10.0.0-4ubuntu1) but 1:10.0.1~++20200519100828+f79cd71e145-1~exp1~20200519201452.38 is installed
 libobjc-9-dev : Depends: gcc-9-base (= 9.3.0-10ubuntu2) but 9.3.0-11ubuntu0~18.04.1 is installed
                 Depends: libgcc-9-dev (= 9.3.0-10ubuntu2) but 9.3.0-11ubuntu0~18.04.1 is installed
 libclang-common-10-dev : Depends: libllvm10 (= 1:10.0.0-4ubuntu1) but 1:10.0.1~++20200519100828+f79cd71e145-1~exp1~20200519201452.38 is installed
 llvm-10-dev : Depends: libllvm10 (= 1:10.0.0-4ubuntu1) but 1:10.0.1~++20200519100828+f79cd71e145-1~exp1~20200519201452.38 is installed
The following actions will resolve these dependencies:

      Keep the following packages at their current version:
1)      clang [Not Installed]                              
2)      clang-10 [Not Installed]                           
3)      lib32gcc-s1 [Not Installed]                        
4)      lib32gcc1 [Not Installed]                          
5)      lib32stdc++6 [Not Installed]                       
6)      libclang-common-10-dev [Not Installed]             
7)      libclang-cpp10 [Not Installed]                     
8)      libobjc-9-dev [Not Installed]                      
9)      libobjc4 [Not Installed]                           
10)     llvm-10-dev [Not Installed]                        

      Leave the following dependencies unresolved:         
11)     llvm-10 recommends llvm-10-dev                     



Accept this solution? [Y/n/q/?] Y
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
   

Его решение — неэффективная установка.

8
09.01.2021, 16:30
4 ответа

Похоже, у вас конфликты по какой-то причине. Основная причина может заключаться в том, что после обновления вы включили не -репозитории пакетов Ubuntu, которые не на 100% совместимы с Ubuntu 20.04? Если это так, подумайте об удалении их из /etc/apt/sources.list.d/и запустите apt update.

Если это не поможет, я бы рекомендовал запустить aptitudeв интерактивном режиме.Он предлагает решения и позволяет решать их полуавтоматически -. Вы также можете следить за «удерживаемыми» пакетами. Часто помогает обновить их. Для этого запустите aptitudeв интерактивном режиме и нажмите Shift + U , затем дважды G .

2
18.03.2021, 23:26

Лично я столкнулся с этой проблемой и решил ее, установив LLVM с помощью сценария автоматической установки, который они упоминают на странице пакетов apt .

3
18.03.2021, 23:26

На самом деле вы довольно близко подошли к предположению о способностях. Если вы посмотрите на то, что установлено, вы увидите, что версии этих пакетов для Ubuntu 18 все еще присутствуют.

Когда я сделал sudo aptitude install clang, я получил такое же сообщение, как показано, но затем набрал 'n'. Затем Aptitude предлагает другое решение, которое заключается в том, чтобы предложить «откатиться» до gcc 9. Разрешите ему это сделать и дайте ему вернуться в командную строку. Затем выполните sudo apt install clangи вы получите clang -10.

4
18.03.2021, 23:26

Мне удалось исправить это, понизив вручную два ключевых пакета.

sudo apt install libclang1-10=1:10.0.0-4ubuntu1 libllvm10=1:10.0.0-4ubuntu1

Полная команда aptitudeпозволила мне продолжить, но удалила некоторые пакеты, которые следует отметить.

The following NEW packages will be installed:
  clang clang-10{a} libclang-common-10-dev{a} libclang-cpp10{a} libomp-10-dev{a} libomp5-10{a} 
  llvm-10{a} llvm-10-dev{a} llvm-10-runtime{a} llvm-10-tools{a} 
The following packages will be REMOVED:
  libomp-11-dev{a} libomp5-11{a} 
1
18.03.2021, 23:26

Теги

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