Как мне установить последнюю версию cmake из командной строки?

Я пытаюсь установить последнюю версию cmake в моем ящике Linux, и я всегда получаю приведенное ниже исключение -

userName@phx5qa01c-4e23:~/build$ wget http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz--2013-10-08 14:39:55--  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gzResolving www.cmake.org... 66.194.253.19Connecting to www.cmake.org|66.194.253.19|:80... failed: Connection timed out.Retrying.--2013-10-08 14:40:17--  (try: 2)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gzConnecting to www.cmake.org|66.194.253.19|:80... failed: Connection timed out.Retrying.--2013-10-08 14:40:40--  (try: 3)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gzConnecting to www.cmake.org|66.194.253.19|:80...

Это всегда повторные попытки... Есть какие-нибудь мысли?

Кто-нибудь знает, что я здесь делаю не так? Или есть какой-нибудь лучший способ установить последнюю версию cmake в моем linux-боксе?

userName@phx5qa01c-4e23:~/build$ uname -aLinux phx5qa01c-4e23 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

Наиболее распространенная ситуация - это когда вы хотите установить последнюю версию 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

Kitware теперь имеет репозиторий APT, который в настоящее время поддерживает Ubuntu 16.04, 18.04 и 20.04

Инструкции по установке:

  1. Удалить старую версию cmake

    sudo apt purge --auto-remove cmake
  2. Получите копию ключа подписи

    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
  3. Добавьте репозиторий в свой список источников

    a. Для фокальной ямки Ubuntu (20.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main'     

    б. Для Ubuntu Bionic Beaver (18.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'

    c. Для Ubuntu и Xerus (16.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
  4. Обновление и установка

    sudo apt updatesudo apt install cmake

Первый удалите любой пакет cmake ранее установленный. Затем:

  1. Идти к http://www.cmake.org/download/ и загрузите последнюю версию установщика .sh

  2. Установите его (например) в opt/cmake запустив

    sudo mkdir /opt/cmakesudo sh <installer filename> --prefix=/opt/cmake
  3. Добавьте cmake я есть каталог к вашему пути: https://askubuntu.com/a/170240/359343

Установленный таким образом, cmake-gui выглядит немного ужасно, если вы найдете способ это исправить, пожалуйста, не стесняйтесь редактировать этот ответ.

На всякий случай, если кому-то понадобится установить последнюю версию CMAKE в образе docker (как мне ..). В данном случае это 3.7.2, но вы можете проверить здесь https://cmake.org/download/ как уже указывалось

#install latest cmakeADD https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.sh /cmake-3.7.2-Linux-x86_64.shRUN mkdir /opt/cmakeRUN sh /cmake-3.7.2-Linux-x86_64.sh --prefix=/opt/cmake --skip-licenseRUN ln -s /opt/cmake/bin/cmake /usr/local/bin/cmakeRUN cmake --version

Мне нравится следующий способ, потому что вы можете получить последнюю версию без особых проблем.

Kitware, похоже, официально поддерживает выпуск pip wheels. Таким образом, вы можете получить последнюю версию cmake, просто выполнив:

установка pip -обновления cmake

Вот блог об этом:https://blog.kitware.com/cmake-python-wheels/

Вероятно, сервер в www.cmake.org просто был очень занят. Вы можете попробовать еще раз или загрузить файл с помощью своего веб-браузера.

Однако есть гораздо более простой способ:

sudo apt-get install cmake

Обновление: комментаторы отмечают, что "Ubuntu 12.04 поставляется только с версией v2.8.7" и "14.04 все еще доставляется 2.8". Это неспроста: 12.04 и 14.04 являются Релизы LTS из Ubuntu. Предполагается, что выпуски LTS будут оставаться стабильными в течение 5 лет, поэтому они получают только обновления для системы безопасности и критические обновления, а не последние версии пакетов. Обычные релизы выходят каждые 6 месяцев и, следовательно, с большей вероятностью будут сопровождаться недавним cmake.

Вы можете найти самые последние версии cmake через snap. Например, на момент написания этого ответа последняя версия cmake - 3.15.3, а snap имеет версию 3.15.2.

sudo apt-get purge cmakesudo snap install cmake --classic

Для контейнера Docker лучше всего запустить

RUN wget -qO- "https://cmake.org/files/v3.12/cmake-3.12.1-Linux-x86_64.tar.gz" | \  tar --strip-components=1 -xz -C /usr/local

При необходимости измените версию.

Вы также можете выполнить следующее:

export fn=/tmp/cmake.sh && ls $fn && (echo "use previous $fn? Enter for yes, ctrl+d for no." && read) || (wget -O $fn http://www.cmake.org/files/v3.0/cmake-3.0.2-Linux-i386.sh 1>&2) && (cd /opt && sudo bash ${fn} && echo sudo ln -f -s /opt/cmake*/bin/cmake /usr/local/bin/cmake && cd -)

Этот сценарий

  • выборка make 3.0.2** если она уже была загружена в этом сеансе, вы можете повторно использовать ее, если не завершили установку
  • тогда это копии создает связь в мусорное ведро cmake.

Удалите старую версию с помощью:

apt-get purge cmake

Скачать двоичную версию cmake архивируется в архивном файле. Вы можете использовать новую версию cmake путем добавления его bin путь к каталогу, к $PATH. Альтернативным решением является извлечение tar.gz упакуйте и перейдите в каталог, созданный после извлечения, и выполните следующие команды:

cp -r bin /usr/cp -r doc /usr/share/cp -r man /usr/share/cp -r share /usr/

Второй метод такой же, как и процесс установки, который .deb пакет делает!

Приведенные ниже ответы мне не помогли, но этот ответ на “Установка последней версии cmake на Ubuntu 18.04.3 LTS выполняется через WSL: ошибка OpenSSL” сделал: c++ - Installing latest cmake on Ubuntu 18.04.3 LTS run via WSL: OpenSSL error - Ask Ubuntu

Мне также пришлось использовать этот ответ на “Не удалось установить libssl1.0.0:i386 из-за неудовлетворенных зависимостей”: apt - Unable to install libssl1.0.0:i386 due to "unmet dependencies"? - Ask Ubuntu

Я думаю, что ваш вопрос заключается в том, “Как установить ** последнюю версию cmake ** в Linux”, но команда sudo apt-get install cmake не устанавливает последнюю версию.

Аналогичный вопрос здесь: http://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04 с хорошим ответом.

Вы уверены, что ваше соединение не блокируется брандмауэром? Зачем использовать wget? Попробуйте загрузить этот файл (http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) с помощью веб-браузера.