Наиболее распространенная ситуация - это когда вы хотите установить последнюю версию cmake, но репозитории вашей операционной системы не обновляются. Например, в моем случае у меня есть ноутбук, работающий Ubuntu 16.04, и когда я выполнил команду sudo apt install cmake
установленная версия была 3.5.1; вместо 3.21.4 которая является текущей версией по адресу cmake.org.
Как я могу получить последнюю версию?
Что ж, мы можем установить его, следуя одному из этих методов:
- Использование репозиториев APT
- Строительство и установка
- Использование двоичных файлов
A. Использование репозиториев APT (рекомендуется для обычных пользователей)
Kitware теперь предоставляет Репозиторий APT который поддерживает Ubuntu 16.04, 18.04 и 20.04. Таким образом, мы можем легко установить его, выполнив следующие действия:
А-1. Удалите версию по умолчанию, предоставляемую менеджером пакетов и конфигурацией Ubuntu, с помощью:
sudo apt remove --purge --auto-remove cmake
или:
sudo apt purge --auto-remove cmake
А-2. Подготовка к установке
sudo apt update && \sudo apt install -y software-properties-common lsb-release && \sudo apt clean all
А-3. Получите копию ключа подписи kitware.
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
А-4. Добавьте репозиторий kitware в свой список исходных текстов для Ubuntu Focal Fossa (20.04), Ubuntu Bionic Beaver (18.04) и Ubuntu Ubuntu Xerus (16.04).
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"
А-5. В качестве дополнительного шага рекомендуется также установить kitware-archive-keyring
пакет, чтобы гарантировать, что брелок для ключей Kitware остается в актуальном состоянии, когда они вращают свои ключи.
sudo apt updatesudo apt install kitware-archive-keyringsudo rm /etc/apt/trusted.gpg.d/kitware.gpg
А-6. Наконец, мы можем обновить и установить cmake
пакет.
sudo apt updatesudo apt install cmake
B. Сборка и установка (рекомендуется для разработчиков)
Для этого подхода вам необходимо установить инструменты GCC:
sudo apt updatesudo apt install build-essential libtool autoconf unzip wget
Б-1. Удалите версию по умолчанию, предоставляемую менеджером пакетов Ubuntu, как показано в А-1.
Б-2. Пойти на официальная веб-страница CMake, затем загрузите и извлеките последнюю версию. Обновите version
и build
переменные в следующей команде, чтобы получить желаемую версию:
version=3.21build=4## don't modify from heremkdir ~/tempcd ~/tempwget https://cmake.org/files/v$version/cmake-$version.$build.tar.gztar -xzvf cmake-$version.$build.tar.gzcd cmake-$version.$build/
Б-3. Установите извлеченный исходный код, выполнив:
./bootstrapmake -j$(nproc)sudo make install
Б-4. Протестируйте свой новый cmake
версия.
$ cmake --version
Результаты cmake --version
:
cmake version 3.21.XCMake suite maintained and supported by Kitware (kitware.com/cmake).
C. Использование двоичных файлов (cmake-gui
может плохо сработать)
С-1. Удалите версию по умолчанию, предоставляемую менеджером пакетов Ubuntu, как показано в А-1.
С-2. Пойти на официальная веб-страница CMake, затем загрузите и установите самые последние .sh
версия в opt/cmake
. Обновите version
и build
переменные в следующей команде, чтобы получить желаемую версию:
version=3.21build=3## don't modify from herelimit=3.20result=$(echo "$version >= $limit" | bc -l)os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")mkdir ~/tempcd ~/tempwget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh sudo mkdir /opt/cmakesudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
С-3. Добавьте установленную двоичную ссылку в /usr/local/bin/cmake
запустив это:
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
С-4. Протестируйте свой новый cmake
версия, как в В-4.
Примечание
В 3.21.X то X представляет последнюю часть версии, которую мы определили как build. Сборка может измениться, если cmake обновляется. Согласно официальной веб-странице, Последняя версия - 3.21.4. Если вы хотите, чтобы Предыдущая версия 3.20.6 просто замените версию и параметры сборки следующим образом:
version=3.20build=6## don't modify from herelimit=3.20result=$(echo "$version >= $limit" | bc -l)os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")mkdir ~/tempcd ~/tempwget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh sudo mkdir /opt/cmakesudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
Наблюдение
Для предыдущих версий CMake (3.19.7 <=) помните, что имя файла содержит верхний регистр L
в -Linux-x86_64.sh
а начиная с версии 3.20 он имеет нижний регистр l
в -linux-x86_64.sh