ジングルを削除しました。 aptを使用してclangを削除して再インストールしようとしましたが、次のエラーが発生します。
Setting up clang (1:3.8-33ubuntu3.1) ...
update-alternatives: error: alternative path /usr/bin/clang++ doesn't
exist
dpkg: error processing package clang (--configure):
subprocess installed post-installation script returned error exit
status 2
Errors were encountered while processing:
clang
E: Sub-process /usr/bin/dpkg returned an error code (1)
私はclangもインストールする必要があることを知っているので、aptを使用してllvmを削除して再インストールしてみました。
他のバージョンには動作しないバグがあったため、Ubuntu 16.04を使用しています。
詳細は次のとおりです。
main@ws001:~$ whereis clang
clang: /usr/bin/clang #this is obviously broken
main@ws001:~$ which clang
apt-cache は clang によって異なります。
clang
Depends: clang-3.8
Breaks: <clang-3.2>
Breaks: <clang-3.3>
Breaks: <clang-3.4>
Breaks: clang-3.5
Replaces: clang
Replaces: <clang-3.2>
Replaces: <clang-3.3>
Replaces: <clang-3.4>
Replaces: clang-3.5
答え1
次のフラグを使用してパッケージを再インストールできます--force-overwrite
。
dpkg -i --force-overwrite /var/cache/apt/archives/clang*
以前のバージョンを使用する前にキャッシュを確認してくださいclang*
。
答え2
問題は、Clangがすでにインストールされているが別の名前でリンクされていることです。
コードで次のエラーが発生した場合:
cd /var/lib/dpkg/info/
./clang.postinst
update-alternatives: ошибка: альтернативный путь /usr/bin/clang++ не существует
解決策はclang.postinstを編集することです。交換してください:
update-alternatives --quiet \
--install /usr/bin/c++ \
c++ \
/usr/bin/clang++ \
$prio
update-alternatives --quiet \
--install /usr/bin/cc \
cc \
/usr/bin/clang \
$prio
これに関して:
update-alternatives --quiet \
--install /usr/bin/clang++ \
clang++ \
/usr/bin/c++ \
$prio
update-alternatives --quiet \
--install /usr/bin/clang \
clang \
/usr/bin/cc \
$prio
実行してクランをテストしてみてください。
./clang.postinst
clang
clang: fatal error: no input files
compilation terminated.
答え3
オペレーティングシステムを再インストールすることで修正されました。誰もがこの問題が発生して解決した場合は、方法を教えてください。