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


87

Я пытаюсь установить последнюю 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.gz
Resolving www.cmake.org... 66.194.253.19
Connecting 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.gz
Connecting 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.gz
Connecting to www.cmake.org|66.194.253.19|:80...

Всегда повторяется ... Есть мысли?

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

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

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

Подобный вопрос здесь: askubuntu.com/questions/610291/… с хорошим ответом.
эллиптический вид

Я думаю, что ваш вопрос «Как установить последнюю версию cmake в Linux», но команда sudo apt-get install cmakeне устанавливает последнюю версию.
Теоччи

Ответы:


23

Возможно, сервер на 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 месяцев, и, следовательно, более вероятно, что они будут выпущены недавно.


3
Ubuntu 12.04 поставляется только с версией 2.8.7 cmake с apt-get. Текущий выпуск версии 2 - 2.8.12. Я предлагаю вам продолжать строить его из источника.
Ричард Ходжес

52
Это не правильный ответ. Последняя версия почти никогда не выходит на apt.
Сенджай

3
14.04 все еще отгружается 2.8
Stolas

4
Этот ответ неверен. Политика StableReleaseUpdates предназначена не только для версий LTS. Все выпуски Ubuntu, когда-то выпущенные, получают исправления только для уязвимостей системы безопасности или серьезных ошибок. Как показано здесьна Launchpad ), даже не-LTS релизы не получили новых cmakeверсий. Отдельные бэкпорты для некоторых пакетов существуют (но не существуют cmake).
Элия ​​Каган,

10
Этот ответ неверен, потому что sudo apt-get install cmakeсам по себе никогда не обновляется cmakeдо более новой версии. Это не работает ни в одном выпуске Ubuntu. Если ваш ответ на самом деле «обновить вашу систему Ubuntu до более новой версии», то вы можете отредактировать ее еще раз, чтобы сделать это более понятным. (Однако это не было бы разумным решением для многих пользователей, и часто не существует выпущенной версии Ubuntu, чьи репозитории имеют последнюю версию cmake.)
Элия ​​Каган

160

Чаще всего возникает ситуация, когда вы хотите установить последнюю версию cmake , но репозитории вашей операционной системы не обновляются. Например, в моем случае у меня есть ноутбук с Ubuntu 16.04 , и когда я выполнил команду, sudo apt install cmakeбыла установлена ​​версия 3.5.1 ; вместо 3.15.4, которая является текущей версией на cmake.org .

Как я могу получить последнюю версию?

Ну, мы можем установить его одним из следующих способов: Сборка и установка или Использование бинарных файлов .

А. Сборка и установка (рекомендуется)

А-1. Удалите версию по умолчанию, предоставляемую менеджером пакетов Ubuntu и настройкой, используя:

sudo apt remove --purge --auto-remove cmake

или же:

sudo apt purge --auto-remove cmake

А-2. Перейдите на официальную веб-страницу CMake , затем загрузите и распакуйте последнюю версию. Обновление versionи buildпеременные в следующей команде , чтобы получить нужную версию:

version=3.15
build=4
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
tar -xzvf cmake-$version.$build.tar.gz
cd cmake-$version.$build/

А-3. Установите извлеченный источник, запустив:

./bootstrap
make -j$(nproc)
sudo make install

А-4. Протестируйте свою новую cmakeверсию.

$ cmake --version

Результаты cmake --version:

cmake version 3.15.X

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Б. Использование бинарных файлов (не очень cmake-guiхорошо работает)

Б-1. Удалите версию по умолчанию, предоставляемую менеджером пакетов Ubuntu, как в A-1 .

БИ 2. Перейдите на официальную веб-страницу CMake , затем загрузите и установите последнюю .shверсию в opt/cmake. Обновление versionи buildпеременные в следующей команде , чтобы получить нужную версию:

version=3.15
build=4
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-Linux-x86_64.sh 
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-Linux-x86_64.sh --prefix=/opt/cmake

Б-3. Добавьте установленную двоичную ссылку /usr/local/bin/cmake, выполнив это:

sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake

Б-4. Проверьте свою новую cmakeверсию, как в A-4 .

Запись

В 3.15.X X представляет собой последнюю часть версии , которую мы определили как строить. Сборка может измениться, если cmake обновлен. Согласно официальной веб-странице, последняя версия 3.15.4 . Если вам нужна предыдущая версия 3.14.7, просто замените версию и параметры сборки следующим образом:

version=3.14
build=7

14
Команде make install нужны права root. Команда cmake --version работает только после открытия нового терминала, потому что cmake по умолчанию устанавливается в / usr / local / bin /, а не в / usr / bin /.
HD189733b

@ Teocci, я долго пытался сделать это разными способами, и только твое решение мне помогло. Большое спасибо !!!)))))))
нео

Я рад, что этот ответ помог вам. Удачного кодирования и всего наилучшего.
Теоччи

2
Это не решение ОБНОВЛЕНИЯ, но УСТАНОВИТЬ cmake. Попробуйте эту команду или Google, чтобы найти решение:sudo apt-get remove cmake cmake-data
Teocci

1
Также обратите внимание, что для сборки инструмента cmake-gui добавьте --qt-gui в команду bootstrap.
Ричард Уайтхед

41

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

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

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

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

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


7
Добавьте ссылку из / usr / local / bin / cmake в установленный бинарный файл. Таким образом, нет необходимости менять путь. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Кристиан

2
Это лучший ответ.
Суббота

3
действительно, это самый полезный ответ для первоначального вопроса
amigo421

Это дает мне сломанный cmake-gui, который не работает через xRDP (предыдущая версия работала), и xRDP - единственный способ получить доступ к серверу.
Stiv

@stiv 1. Проверяли ли вы cmakeпосле того, как установка работает, и у вас нет другой cmakeверсии на вашем пути? 2. Можете ли вы проверить, используете ли вы cmake-gui, предоставленный при установке, а не какую-то более старую версию? (Чтобы узнать версию, добавьте --versionв командную строку)
Антонио

23

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

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

3
Хороший, недокументированный вариант
4LegsDrivenCat

14

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

Кажется, что Kitware официально поддерживает выпуск колес. Так что вы можете получить последний cmake, просто выполнив:

pip install --upgrade cmake

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


7

У Kitware теперь есть хранилище APT, которое в настоящее время поддерживает Ubuntu 16.04 и 18.04

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

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

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

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Добавьте репозиторий в список источников

    а. Для Ubuntu Bionic Beaver (18.04)

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

    б. Для Ubuntu Xenial Xerus (16.04)

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

    sudo apt update
    sudo apt install cmake
    

4

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

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.

3

Для контейнера 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

Настройте версию, если это необходимо.


2

Удалить старую версию, используя:

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делает пакет!


1

Установите последнюю версию cmake из бэкпортов, где находится много последних версий. Конкретный бэкпорт зависит от вашей текущей версии ОС. Например, запустив Debian Stretch, добавьте следующее в /etc/apt/sources.list

deb http://ftp.debian.org/debian stretch-backports main

Затем установите из этого бэкпорта, ака:

sudo apt-get -t stretch-backports install -y cmake

0

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

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

0

Ответ qwr на использование snap может быть хорошим, но если вы хотите что-то еще более новое, cmake упрощает создание DEB из исходного кода. Далее предполагается, что у вас уже установлен последний cmake. Apt install cmake в Ubuntu 18.04 определенно будет работать здесь.

sudo apt-get build-dep cmake
git clone http://www.cmake.org/cmake.git
cd cmake
git tag
# find the highest tagged release value (hint, rarely at the bottom)
git co tags/<highest tagged release value>
mkdir build
cd build
cmake ..
cmake --build .
cpack -G DEB
# you built a single deb that has what Ubuntu provides as two debs, the binary
# deb and the additional architecture independent data files
sudo apt remove cmake-data
sudo dpkg -i cmake-<highest tagged release value>-Linux-x86_64.deb
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.