Last active
April 24, 2024 21:31
-
-
Save ADKaster/6f2b935c24bccaa3728b0a825842b8be to your computer and use it in GitHub Desktop.
Update clang on ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# use convienence script | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 18 | |
#(or) | |
sudo wget -O /usr/share/keyrings/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key | |
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" | sudo tee -a /etc/apt/sources.list.d/llvm.list | |
sudo apt update | |
sudo apt install llvm-18 lld-18 lldb-18 clang-18 clang-format-18 clangd-18 clang-tidy-18 clang-tools-18 llvm-18-dev | |
sudo ./update-alternatives-clang.sh 18 100 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# --slave /usr/bin/$1 $1 /usr/bin/$1-\${version} \\ | |
function register_clang_version { | |
local version=$1 | |
local priority=$2 | |
update-alternatives \ | |
--install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-${version} ${priority} \ | |
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-${version} \ | |
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-${version} \ | |
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-${version} \ | |
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${version} \ | |
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-${version} \ | |
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-${version} \ | |
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-${version} \ | |
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-${version} \ | |
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-${version} \ | |
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-${version} \ | |
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-${version} \ | |
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-${version} \ | |
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-${version} \ | |
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-${version} \ | |
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-${version} \ | |
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-${version} \ | |
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-${version} \ | |
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-${version} \ | |
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-${version} \ | |
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-${version} \ | |
--slave /usr/bin/llvm-objcopy llvm-objcopy /usr/bin/llvm-objcopy-${version} \ | |
--slave /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-${version} | |
update-alternatives \ | |
--install /usr/bin/clang clang /usr/bin/clang-${version} ${priority} \ | |
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-${version} \ | |
--slave /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-${version} \ | |
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-${version} \ | |
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-${version} \ | |
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-${version} \ | |
--slave /usr/bin/clang-cpp clang-cpp /usr/bin/clang-cpp-${version} \ | |
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-${version} \ | |
--slave /usr/bin/clang-format-diff clang-format-diff /usr/bin/clang-format-diff-${version} \ | |
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-${version} \ | |
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-${version} \ | |
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-${version} \ | |
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-${version} \ | |
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-${version} \ | |
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-${version} \ | |
--slave /usr/bin/git-clang-format git-clang-format /usr/bin/git-clang-format-${version} \ | |
--slave /usr/bin/lldb lldb /usr/bin/lldb-${version} \ | |
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-${version} \ | |
--slave /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-${version} | |
} | |
register_clang_version $1 $2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment