200 votes

Comment installer la dernière version de cmake à partir de la ligne de commande ?

Je suis en train d'essayer d'installer la dernière version de cmake sur ma box linux et je reçois toujours l'exception suivante -

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
Résolution de www.cmake.org... 66.194.253.19
Connexion à www.cmake.org|66.194.253.19|:80... échec : Délai dépassé.
Nouvel essai.

--2013-10-08 14:40:17--  (essai : 2)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
Connexion à www.cmake.org|66.194.253.19|:80... échec : Délai dépassé.
Nouvel essai.

--2013-10-08 14:40:40--  (essai : 3)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
Connexion à www.cmake.org|66.194.253.19|:80...

Il continue toujours à essayer... Des idées?

Est-ce que quelqu'un sait ce que je fais de mal ici? Ou y a-t-il une meilleure façon d'installer la dernière version de cmake sur ma box 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

352voto

Teocci Points 3665

La situation la plus courante est lorsque vous souhaitez installer la dernière version de cmake, mais que les dépôts de votre système d'exploitation ne sont pas à jour. Par exemple, dans mon cas, j'ai un ordinateur portable exécutant Ubuntu 16.04, et lorsque j'ai exécuté la commande sudo apt install cmake, la version installée était 3.5.1; au lieu de 3.22.2 qui est la version actuelle sur le site cmake.org.

Teo, comment puis-je obtenir la dernière version?

Eh bien, nous pouvons l'installer en suivant l'une de ces méthodes:

  • Utilisation des dépôts APT
  • Construction et installation à partir des sources
  • Utilisation de fichiers binaires

A. Utilisation des dépôts APT (Recommandé pour les utilisateurs normaux)

Kitware fournit désormais un Dépôt APT qui prend en charge Ubuntu 16.04, 18.04 et 20.04. Nous pouvons donc l'installer facilement en suivant ces étapes :

A-1. Désinstallez la version par défaut fournie par le gestionnaire de paquets d'Ubuntu et la configuration en utilisant :

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

ou :

sudo apt purge --auto-remove cmake

A-2. Préparez-vous à l'installation

sudo apt update && \
sudo apt install -y software-properties-common lsb-release && \
sudo apt clean all

A-3. Obtenez une copie de la clé de signature de 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

A-4. Ajoutez le dépôt de Kitware à votre liste de sources pour Ubuntu Focal Fossa (20.04), Ubuntu Bionic Beaver (18.04) et Ubuntu Xenial Xerus (16.04).

sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"

A-5. En tant qu'étape facultative, il est recommandé d'installer également le paquet kitware-archive-keyring pour garantir que le trousseau de clés de Kitware reste à jour pendant qu'ils font tourner leurs clés.

sudo apt update
sudo apt install kitware-archive-keyring
sudo rm /etc/apt/trusted.gpg.d/kitware.gpg

A-6. Enfin, nous pouvons mettre à jour et installer le paquet cmake.

sudo apt update
sudo apt install cmake

B. Construction et Installation (Recommandé pour les développeurs)

Pour cette approche, vous devez installer les outils GCC :

sudo apt update
sudo apt install build-essential libtool autoconf unzip wget

B-1. Désinstallez la version par défaut fournie par le gestionnaire de paquets d'Ubuntu comme dans A-1.

B-2. Allez sur la page web officielle de CMake, puis téléchargez et extrayez la dernière version. Mettez à jour les variables version et build dans la commande suivante pour obtenir la version souhaitée :

version=3.22
build=2
## ne pas modifier à partir d'ici
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/

B-3. Installez la source extraite en exécutant :

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

B-4. Testez votre nouvelle version cmake.

$ cmake --version

Résultats de cmake --version :

cmake version 3.22.X

Suite CMake maintenue et prise en charge par Kitware (kitware.com/cmake).

C. Utilisation de fichiers binaires (cmake-gui pourrait ne pas bien fonctionner)

C-1. Désinstallez la version par défaut fournie par le gestionnaire de paquets d'Ubuntu comme dans A-1.

C-2. Allez sur la page web officielle de CMake, puis téléchargez et installez la dernière version en .sh dans opt/cmake. Mettez à jour les variables version et build dans la commande suivante pour obtenir la version souhaitée :

version=3.22
build=2
## ne pas modifier à partir d'ici
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh 
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake

C-3. Ajoutez le lien binaire installé à /usr/local/bin/cmake en exécutant ceci :

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

C-4. Testez votre nouvelle version cmake comme dans B-4.

Note

Dans 3.22.X, le X représente la dernière partie de la version que nous avons définie comme build. Le build peut changer si cmake est mis à jour. Selon la page officielle, la Dernière version est 3.22.2. Si vous souhaitez la Version précédente 3.21.4, remplacez simplement les paramètres de version et de build comme ceci :

version=3.21
build=4
## ne pas modifier à partir d'ici
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh 
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake

Observation

Pour les versions antérieures de CMake (3.19.7 <=), rappelez-vous que le nom du fichier contient une majuscule L dans -Linux-x86_64.sh et à partir de la version 3.20, il a une minuscule l dans -linux-x86_64.sh

70voto

Himel Points 809

Kitware dispose désormais d'un dépôt APT prenant en charge actuellement Ubuntu 16.04, 18.04 et 20.04

Instructions d'installation :

  1. Supprimer l'ancienne version de cmake

    sudo apt purge --auto-remove cmake
  2. Obtenir une copie de la clé de signature

    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. Ajouter le dépôt à votre liste de sources

    a. Pour Ubuntu Focal Fossa (20.04)

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

    b. Pour Ubuntu Bionic Beaver (18.04)

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

    c. Pour Ubuntu Xenial Xerus (16.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
  4. Mettre à jour et installer

    sudo apt update
    sudo apt install cmake

51voto

Antonio Points 808

Tout d'abord désinstallez tout paquet cmake précédemment installé. Ensuite :

  1. Allez sur http://www.cmake.org/download/ et téléchargez le dernier installeur .sh

  2. Installez-le (par exemple) dans opt/cmake en exécutant

    sudo mkdir /opt/cmake
    sudo sh  --prefix=/opt/cmake
  3. Ajoutez le répertoire bin de cmake à votre chemin d'accès : https://askubuntu.com/a/170240/359343

Installé de cette manière, cmake-gui semble un peu horrible, si vous trouvez un moyen de le corriger n'hésitez pas à éditer cette réponse.

40voto

Juan Leni Points 1898

J'aime la méthode suivante car vous pouvez obtenir une version récente sans trop de difficulté.

Kitware semble officiellement supporter une version wheels de pip. Donc vous pouvez obtenir la dernière version de CMake simplement en faisant :

pip install --upgrade cmake

Voici le blog à ce sujet : https://blog.kitware.com/cmake-python-wheels/

37voto

Paolo Vigori Points 479

Juste au cas où quelqu'un aurait besoin d'installer la dernière version de CMAKE dans une image docker (comme moi..). Dans ce cas, c'est la version 3.7.2, mais vous pouvez vérifier ici https://cmake.org/download/ comme déjà mentionné

#installer la dernière version de 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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X