run-clang-tidyはUbuntu 21.10で壊れたシンボリックリンクです。

run-clang-tidyはUbuntu 21.10で壊れたシンボリックリンクです。

run-clang-tidyこのスクリプトはUbuntu 21.10で壊れたシンボリックリンクであることがわかりました。

$ run-clang-tidy
bash: run-clang-tidy: command not found

$ cd /usr/bin

$ ls -l *tidy*
lrwxrwxrwx 1 root root 29 Sep 28 10:13 clang-tidy -> ../lib/llvm-13/bin/clang-tidy
lrwxrwxrwx 1 root root 29 Oct  3 20:38 clang-tidy-13 -> ../lib/llvm-13/bin/clang-tidy
lrwxrwxrwx 1 root root 21 Sep 28 10:13 clang-tidy-diff -> clang-tidy-diff-13.py
lrwxrwxrwx 1 root root 45 Oct  3 20:38 clang-tidy-diff-13.py -> ../lib/llvm-13/share/clang/clang-tidy-diff.py
lrwxrwxrwx 1 root root 20 Sep 28 10:13 run-clang-tidy -> run-clang-tidy-13.py
lrwxrwxrwx 1 root root 33 Oct  3 20:38 run-clang-tidy-13 -> ../lib/llvm-13/bin/run-clang-tidy
lrwxrwxrwx 1 root root 41 Oct  3 20:38 run-clang-tidy-13.py -> ../lib/llvm-13/share/clang/run-clang-tidy

$ ls -l run-clang-tidy
lrwxrwxrwx 1 root root 20 Sep 28 10:13 run-clang-tidy -> run-clang-tidy-13.py

$ ls -l run-clang-tidy-13.py
lrwxrwxrwx 1 root root 41 Oct  3 20:38 run-clang-tidy-13.py -> ../lib/llvm-13/share/clang/run-clang-tidy

$ ls -l ../lib/llvm-13/share/clang/run-clang-tidy
ls: cannot access '../lib/llvm-13/share/clang/run-clang-tidy': No such file or directory

これはドッカーコンテナで発生しますが、通常のインストールでも同じと仮定します。私のDockerfileから:

FROM ubuntu:21.10
...
RUN \
    apt-get update; \
    DEBIAN_FRONTEND=noninteractive apt-get -y install \
        afl++ \
        busybox \
        clang-tidy \
...

このメイクファイルはありませんが、古いUbuntuバージョンrun-clang-tidy-13のメイクファイルで実行されるため、直接使用することはできません。run-clang-tidy-13run-clang-tidy-12

Dockerfile で次の行を使用するか、コンテナで同じコマンドを実行して問題を解決できます.

RUN rm /usr/bin/run-clang-tidy
RUN ln -s /usr/bin/run-clang-tidy-13 /usr/bin/run-clang-tidy

しかし、もちろん、これは醜い解決策です。

同じ問題が発生した人はいますか? 21.10.1で修正された他に、よりエレガントなソリューションはありますか?

記録します(コンテナで実行)。

$ lsb_release -a
LSB Version:    core-11.1.0ubuntu3-noarch:security-11.1.0ubuntu3-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 21.10
Release:    21.10
Codename:   impish

$ clang-tidy --version
LLVM (http://llvm.org/):
  LLVM version 13.0.0
  
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: skylake

ベストアンサー1

おすすめ記事