Ubuntu 20.4にclang-10をインストールする方法

Ubuntu 20.4にclang-10をインストールする方法

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。また、各パッケージを1つずつリストしてみましたが、リストが増え続けて問題は解決しません。

編集:@Martin Konradに続き、適性を試みました。

➜  ~ 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.
   

解決策は非効率的にインストールすることです。

答え1

実際には、能力の推奨事項にかなり近いです。インストールされている項目を見ると、これらのパッケージのUbuntu 18バージョンがまだ存在することがわかります。

これを行うと、表示されたメッセージとsudo aptitude install clang同じメッセージが表示されますが、「n」と入力します。その後、Aptitudeはgcc 9に「ダウングレード」する別のソリューションを提供します。これを許可してコマンドプロンプトに戻ります。その後、これによりsudo apt install clangclang-10が表示されます。

答え2

個人的に私はこの問題に直面し、記事で述べたサイレントインストールスクリプトを使用してLLVMをインストールすることで解決しました。適切なパッケージページ

答え3

何らかの理由で紛争を経験しているようです。 Ubuntu 20.04と100%互換性のないアップグレード後にUbuntu以外のパッケージストアを有効にしたことが根本的な原因である可能性がありますか?その場合は、その項目を削除して/etc/apt/sources.list.d/実行してみてくださいapt update

役に立たない場合は、aptitudeインタラクティブに実行することをお勧めします。ソリューションを提案し、半自動で解決できます。 「予約済み」パッケージに集中することもできます。アップグレードすると役に立ちます。これを行うには、aptitudeインタラクティブモードで実行し、Shift+を押してUからGダブルクリックします。

答え4

私は2つの重要なパッケージを手動でダウングレードすることでこの問題を解決しました。

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} 

関連情報