Como instalo a versão mais recente do cmake a partir da linha de comando?


87

Estou tentando instalar o mais recente cmakena minha caixa linux e estou sempre recebendo a exceção abaixo -

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...

Está sempre tentando novamente ... Algum pensamento?

Alguém sabe o que estou fazendo errado aqui? Ou existe alguma maneira melhor de instalar a versão mais recente do cmake na minha caixa 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

Tem certeza de que não há um firewall bloqueando sua conexão? Por que usar wget? Tente baixar esse arquivo ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) usando um navegador da web.
Eric Carvalho

Pergunta semelhante aqui: askubuntu.com/questions/610291/… com uma boa resposta.
Visualização elíptica

Eu acho que sua pergunta é "Como instalar a versão mais recente do cmake no Linux", mas o comando sudo apt-get install cmakenão instala a versão mais recente.
Teocci 17/08/19

Respostas:


23

Provavelmente o servidor em www.cmake.org estava muito ocupado. Você pode tentar novamente ou baixar o arquivo usando seu navegador da web.

Existe, no entanto, uma maneira muito mais simples:

sudo apt-get install cmake

Atualização: os comentaristas apontam que "o Ubuntu 12.04 está apenas distribuindo a versão v2.8.7" e "14.04 ainda está enviando a versão 2.8" . É por um motivo: 12.04 e 14.04 são versões LTS do Ubuntu. As versões LTS devem permanecer estáveis ​​por 5 anos, para que recebam apenas atualizações críticas e de segurança, não as versões mais recentes dos pacotes. Os lançamentos normais são lançados a cada 6 meses e, portanto, têm maior probabilidade de vir com um cmake recente.


3
O ubuntu 12.04 está apenas enviando a versão 2.8.7 do cmake com o apt-get. O lançamento atual da versão 2 é 2.8.12. Eu sugiro que você persista em construí-lo a partir da fonte.
Richard Hodges

52
Esta não é a resposta correta. A versão mais recente quase nunca está no apt.
Senjai

3
14,04 ainda envio 2,8
Stolas 17/03

4
Esta resposta está errada. A política StableReleaseUpdates não é apenas para lançamentos LTS. Todas as versões do Ubuntu, uma vez realmente lançadas, apenas recebem correções para vulnerabilidades de segurança ou bugs graves. Como mostrado aqui (e no Launchpad ), mesmo os lançamentos que não são LTS não receberam novas cmakeversões. Existem backports separados para alguns pacotes (mas não cmake).
Eliah Kagan 04/08/19

10
Esta resposta está errada porque sudo apt-get install cmake, por si só, nunca é atualizada cmakepara uma versão mais recente. Isso não funciona em nenhuma versão do Ubuntu. Se sua resposta é realmente "atualize seu sistema Ubuntu para uma versão mais recente", convém editá-lo novamente para tornar isso mais claro. (Porém, isso não seria uma solução razoável para muitos usuários, e muitas vezes não existe uma versão lançada do Ubuntu cujos repositórios tenham a versão mais recente do cmake.) #
305 Eliah Kagan

160

A situação mais comum é quando você deseja instalar a versão mais recente do cmake , mas os repositórios do sistema operacional não são atualizados. Por exemplo, no meu caso, tenho um laptop executando o Ubuntu 16.04 e, quando executei o comando, sudo apt install cmakea versão instalada era 3.5.1 ; em vez da 3.15.4, que é a versão atual em cmake.org .

Como posso obter a versão mais recente?

Bem, podemos instalá-lo seguindo um destes métodos: Criando e instalando ou usando arquivos binários .

A. Construção e instalação (recomendado)

A-1. Desinstale a versão padrão fornecida pelo gerenciador de pacotes e configuração do Ubuntu usando:

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

ou:

sudo apt purge --auto-remove cmake

A-2. Vá para a página oficial do CMake , faça o download e extraia a versão mais recente. Atualize as variáveis versione buildno seguinte comando para obter a versão desejada:

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/

A-3. Instale a fonte extraída executando:

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

A-4. Teste sua nova cmakeversão.

$ cmake --version

Resultados de cmake --version:

cmake version 3.15.X

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

B. Usando arquivos binários ( cmake-guinão funcionará bem)

B-1. Desinstale a versão padrão fornecida pelo gerenciador de pacotes do Ubuntu, como em A-1 .

B-2. Vá para a página oficial do CMake , faça o download e instale a .shversão mais recente em opt/cmake. Atualize as variáveis versione buildno seguinte comando para obter a versão desejada:

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

B-3 Adicione o link binário instalado /usr/local/bin/cmakeexecutando este:

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

B-4. Teste sua nova cmakeversão como em A-4 .

Nota

No 3.15.X, o X representa a última parte da versão que definimos como build. A compilação pode mudar se o cmake for atualizado. De acordo com a página oficial, a versão mais recente é a 3.15.4 . Se você deseja a Versão Anterior 3.14.7, substitua a versão e construa parâmetros como este:

version=3.14
build=7

14
O comando make install precisa de privilégios de root. O comando cmake --version só funciona após abrir um novo terminal porque o cmake é instalado em / usr / local / bin / por padrão, não em / usr / bin /.
precisa saber é o seguinte

@Teocci, há muito que tentei fazer isso de várias maneiras, e apenas sua decisão me ajudou. Muito obrigado !!!)))))))
neo

Fico feliz que esta resposta tenha ajudado. Feliz codificação e tudo de bom.
Teocci 22/03

2
Esta não é uma solução para atualizar, mas para instalar o cmake. Tente este comando ou sudo apt-get remove cmake cmake-data
pesquise

11
Observe que também para construir a ferramenta cmake-gui, adicione --qt-gui ao comando bootstrap.
Richard Whitehead

41

Primeiro desinstale qualquer pacote cmake instalado anteriormente. Então:

  1. Acesse http://www.cmake.org/download/ e faça o download do último instalador .sh

  2. Instale-o (por exemplo) opt/cmakeexecutando

    sudo mkdir /opt/cmake
    sudo sh <installer filename> --prefix=/opt/cmake
    
  3. Adicione o diretório cmake bin ao seu caminho: https://askubuntu.com/a/170240/359343

Instalado dessa maneira, cmake-guiparece um pouco horrível. Se você encontrar uma maneira de corrigi-lo, sinta-se à vontade para editar esta resposta.


7
Adicione um link de / usr / local / bin / cmake ao binário instalado. Dessa forma, não há necessidade de alterar o PATH. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian

2
Esta é a melhor resposta.
SuB

3
realmente, esta é a resposta mais útil para a pergunta inicial
amigo421

Isso me dá cmake-gui quebrado, que não funciona com o xRDP (versão anterior funcionou), e o xRDP é a única maneira de acessar o servidor.
stiv

@stiv 1. Você verificou cmakedepois que a instalação está funcionando e se não possui outra cmakeversão em seu caminho? 2. Você pode verificar se está usando o cmake-gui fornecido na instalação e não uma versão mais antiga? (Para conhecer a versão, inclua --versionna linha de comando) #
295 Antonio Antonio

23

Caso alguém precise instalar o CMAKE mais recente em uma imagem do docker (como eu ..). Nesse caso, é 3.7.2, mas você pode conferir aqui https://cmake.org/download/ como já indicado

#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
Bom, não documentado - opção skip-license :)
4LegsDrivenCat

14

Adoro o seguinte, porque você pode obter uma versão recente sem muitos problemas.

Kitware parece apoiar oficialmente um lançamento de rodas de pip. Para que você possa obter o cmake mais recente, basta fazer:

instalação do pip --upgrade cmake

Aqui está o blog sobre isso: https://blog.kitware.com/cmake-python-wheels/


6

O Kitware agora possui um repositório APT que atualmente suporta o Ubuntu 16.04 e 18.04

Instruções de instalação:

  1. Remova a versão antiga do cmake

    sudo apt purge --auto-remove cmake
    
  2. Obtenha uma cópia da chave de assinatura

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Adicione o repositório à sua lista de fontes

    uma. Para Ubuntu Bionic Beaver (18.04)

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

    b. Para Ubuntu Xenial Xerus (16.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
    
  4. Atualize e instale

    sudo apt update
    sudo apt install cmake
    

4

Você também pode executar o seguinte:

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 -)

Este script

  • buscas fazem 3.0.2 ** se já foi baixado nesta sessão, você poderá reutilizá-lo se não tiver concluído a instalação
  • então ele copia faz o link para a lixeira cmake.

3

Para um contêiner Docker, é melhor executar

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

Ajuste a versão, se necessário.


2

Remova a versão antiga usando:

apt-get purge cmake

Baixe a versão binária do cmakearquivada em um tarball. Você pode usar a nova versão cmakeadicionando seu bincaminho de diretório a $PATH. Uma solução alternativa é extrair o tar.gzpacote e ir para o diretório criado após a extração e executar os seguintes comandos:

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

O segundo método é o mesmo que o processo de instalação que o .debpacote faz!


1

Instale a versão mais recente do cmake a partir de backports, onde residem muitas versões mais recentes. Os backports específicos dependem da versão atual do sistema operacional. Por exemplo, executando o Debian Stretch, adicione o seguinte em /etc/apt/sources.list

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

Em seguida, instale a partir deste backport, também conhecido como:

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

0

Você pode encontrar versões muito recentes do cmake através do snap. Por exemplo, ao escrever esta resposta, a versão mais recente do cmake é 3.15.3, e o snap tem a versão 3.15.2.

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

0

A resposta do qwr para usar o snap pode ser boa, mas se você quiser algo ainda mais novo, o cmake facilita a construção de um DEB a partir da fonte. O seguinte pressupõe que você já tenha um cmake recente instalado. O apt install cmake do Ubuntu 18.04 funcionará definitivamente aqui.

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.