| Ubuntu 22.04 | update-alternatives
update-alternatives на примере clang
.
При установке на данный момент устанавливается 14 версия по-умолчанию:
1
2
|
$ clang -v 2>&1 | head -1
Ubuntu clang version 14.0.0-1ubuntu1
|
Допустим, понадобилась версия 13, установим её в систему:
1
|
$ sudo apt install clang-13
|
Посмотрим альтернативы для c++
:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ update-alternatives --list c++
/usr/bin/clang++
/usr/bin/g++
$ update-alternatives --display c++
c++ - ручной режим
link best version is /usr/bin/g++
ссылка сейчас указывает на /usr/bin/clang++
link c++ is /usr/bin/c++
slave c++.1.gz is /usr/share/man/man1/c++.1.gz
/usr/bin/clang++ — приоритет 10
/usr/bin/g++ — приоритет 20
подчинённый c++.1.gz: /usr/share/man/man1/g++.1.gz
|
Определим где находятся бинарники:
1
2
3
4
5
6
7
8
|
$ which clang
/usr/bin/clang
$ ls -l /usr/bin/clang
lrwxrwxrwx 1 root root 24 апр 1 23:51 /usr/bin/clang -> ../lib/llvm-14/bin/clang
$ ls /usr/lib/llvm-13/bin/clang /usr/lib/llvm-14/bin/clang
/usr/lib/llvm-13/bin/clang /usr/lib/llvm-14/bin/clang
|
Добавить и удалить:
$ sudo update-alternatives --install [ссылка]/usr/bin/clang [название]c++ [путь к бинарнику]/usr/lib/llvm-13/bin/clang [приоритет]3
$ sudo update-alternatives --remove [название]c++ [путь к бинарнику]/usr/lib/llvm-13/bin/clang
Добавим альтернативу для c++
:
1
|
$ sudo update-alternatives --install /usr/bin/clang c++ /usr/lib/llvm-13/bin/clang 3
|
Выбираем 13 версию в интерактивном режиме:
1
2
3
4
|
$ sudo update-alternatives --config c++
$ clang -v 2>&1 | head -1
Ubuntu clang version 13.0.1-2ubuntu2.1
|
Выбираем в неинтерактивном режиме:
1
2
3
4
|
sudo update-alternatives --set c++ /usr/bin/clang++
$ clang -v 2>&1 | head -1
Ubuntu clang version 14.0.0-1ubuntu1
|