На Ubuntu 22.04 столкнулся с традиционным багом snap: установленная через пакеты snap утилита cmake 3.24 отказалась работать с ошибкой "cannot create user data directory: /home/user/snap/cmake/1234: Permission denied".
Решить проблему помог альтернативный репозиторий apt от Kitware. Он в настоящее время поддерживает Ubuntu 20.04 и 22.04 для архитектур x86 (только 64 бита) и ARM (32 и 64 бита).
Процесс установки по шагам:
1. Если вы используете минимальный образ Ubuntu (например в среде WSL) или образ Docker, то вам возможно понадобится установить следующие пакеты:
$ sudo apt-get update
$ sudo apt-get install ca-certificates gpg wget
2. Если ранее не был установлен пакет kitware-archive-keyring, то вручную закачайте копию ключа подписи:
$ test -f /usr/share/doc/kitware-archive-keyring/copyright ||
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \
gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
3. Добавьте репозиторий в ваш список исходников и выполните обновление apt. Для Ubuntu Jammy Jellyfish (22.04) выполните команду:
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ \
jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
$ sudo apt-get update
Для Ubuntu Focal Fossa (20.04):
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ \
focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
$ sudo apt-get update
4. Если ранее не был установлен пакет kitware-archive-keyring, то удалите полученный вручную ключ подписи, чтобы выделить место для пакета:
$ test -f /usr/share/doc/kitware-archive-keyring/copyright ||
sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
5. Установите пакет kitware-archive-keyring package, чтобы применить свежий ключ, потому что keyring-и от Kitware периодически обновляются:
$ sudo apt-get install kitware-archive-keyring
6. В качестве дополнительного шага, если вы хотите подписаться на release candidates в дополнение к production releases, то вы можете добавить репозиторий Kitware release candidate в свои источники.
Для Ubuntu Jammy Jellyfish (22.04):
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ \
jammy-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null
$ sudo apt-get update
Для Ubuntu Focal Fossa (20.04):
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ \
focal-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null
$ sudo apt-get update
Обратите внимание, что если вы добавите репозиторий release candidate, то вам также понадобится добавить главный репозиторий, поскольку сам по себе репозиторий release candidate не предоставляет production-релизы.
Теперь вы можете установить любой пакет из APT-репозитория от Kitware. Например, можно установить приложение, которое ранее устанавливалось только через snap. Вот так я установил себе cmake 3.29:
$ sudo apt-get install cmake
$ cmake --version
cmake version 3.29.4
[Ссылки]
1. Permission denied error when running apps installed as snap packages site:askubuntu.com. 2. Kitware APT Repository site:kitware.com. 3. Запуск Linux на Windows помощью WSL. |