Bagaimana cara menginstal versi cmake terbaru dari baris perintah?


87

Saya mencoba untuk menginstal terbaru cmakedi kotak linux saya dan saya selalu mendapatkan pengecualian di bawah ini -

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

Itu selalu mencoba lagi ... Ada pemikiran?

Adakah yang tahu apa yang salah saya lakukan di sini? Atau adakah cara yang lebih baik untuk menginstal cmake versi terbaru di kotak linux saya?

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

Apakah Anda yakin tidak ada firewall yang memblokir koneksi Anda? Kenapa menggunakan wget? Cobalah untuk mengunduh file itu ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) menggunakan browser web.
Eric Carvalho

Pertanyaan serupa di sini: askubuntu.com/questions/610291/… dengan jawaban yang bagus.
Tampilan elips

Saya pikir pertanyaan Anda adalah "Cara menginstal versi cmake terbaru di Linux" tetapi perintahnya sudo apt-get install cmaketidak menginstal versi terbaru.
Teocci

Jawaban:


23

Mungkin server di www.cmake.org sangat sibuk. Anda dapat mencoba lagi atau mengunduh file menggunakan browser web Anda.

Namun ada cara yang lebih sederhana:

sudo apt-get install cmake

Pembaruan: komentator menunjukkan bahwa "Ubuntu 12.04 hanya mengirim v2.8.7" dan "14.04 masih mengirimkan 2.8" . Itu karena suatu alasan: 12,04 dan 14,04 adalah rilis LTS dari Ubuntu. Rilis LTS dimaksudkan untuk tetap stabil selama 5 tahun, sehingga mereka hanya menerima pembaruan keamanan dan penting, bukan rilis paket terbaru. Rilis normal keluar setiap 6 bulan, dan karena itu lebih mungkin untuk datang dengan cmake baru-baru ini.


3
ubuntu 12.04 hanya mengirimkan v 2.8.7 dari cmake dengan apt-get. Rilis versi 2 saat ini adalah 2.8.12. Saya sarankan Anda bertahan dengan membangunnya dari sumber.
Richard Hodges

52
Ini bukan jawaban yang benar. Versi terbaru hampir tidak pernah tepat.
Senjai

3
14,04 masih mengirimkan 2,8
Stolas

4
Jawaban ini salah. The StableReleaseUpdates kebijakan tidak hanya untuk LTS rilis. Semua rilis Ubuntu, setelah benar-benar dirilis, hanya mendapatkan perbaikan untuk kerentanan keamanan atau bug serius. Seperti yang ditunjukkan di sini (dan di Launchpad ), bahkan rilis non-LTS belum menerima cmakeversi baru . Backport terpisah untuk beberapa paket memang ada (tetapi tidak cmake).
Eliah Kagan

10
Jawaban ini salah karena sudo apt-get install cmaketidak dengan sendirinya memperbarui cmakeke versi yang lebih baru. Ini tidak berfungsi pada rilis Ubuntu apa pun. Jika jawaban Anda sebenarnya "tingkatkan sistem Ubuntu Anda ke rilis yang lebih baru" maka Anda mungkin ingin mengedit lagi untuk membuatnya lebih jelas. (Namun, itu tidak akan menjadi solusi yang masuk akal bagi banyak pengguna, dan seringkali tidak ada versi Ubuntu yang dirilis yang repositorinya memiliki versi terbaru cmake.)
Eliah Kagan

160

Situasi yang paling umum adalah ketika Anda ingin menginstal versi cmake terbaru , tetapi repositori Sistem Operasi Anda tidak diperbarui. Sebagai contoh, dalam kasus saya, saya memiliki laptop yang menjalankan Ubuntu 16.04 , dan ketika saya menjalankan perintah sudo apt install cmakeversi yang diinstal adalah 3.5.1 ; bukannya 3.15.4 yang merupakan versi saat ini di cmake.org .

Bagaimana saya bisa mendapatkan versi terbaru?

Kita dapat menginstalnya dengan mengikuti salah satu metode berikut: Membangun dan Menginstal atau Menggunakan file biner .

A. Membangun dan Memasang (disarankan)

A-1. Copot versi default yang disediakan oleh manajer paket Ubuntu dan konfigurasi dengan menggunakan:

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

atau:

sudo apt purge --auto-remove cmake

A-2. Buka halaman web resmi CMake , lalu unduh dan ekstrak versi terbaru. Perbarui versiondan buildvariabel dalam perintah berikut untuk mendapatkan versi yang diinginkan:

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. Instal sumber yang diekstraksi dengan menjalankan:

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

A-4. Uji cmakeversi baru Anda .

$ cmake --version

Hasil dari cmake --version:

cmake version 3.15.X

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

B. Menggunakan file biner ( cmake-guitidak akan bekerja dengan baik)

B-1. Copot versi default yang disediakan oleh manajer paket Ubuntu seperti pada A-1 .

B-2. Buka halaman web resmi CMake , lalu unduh dan instal versi terbaru.sh di opt/cmake. Perbarui versiondan buildvariabel dalam perintah berikut untuk mendapatkan versi yang diinginkan:

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. Tambahkan tautan biner yang diinstal ke /usr/local/bin/cmakedengan menjalankan ini:

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

B-4. Uji cmakeversi baru Anda seperti pada A-4 .

Catatan

Di 3.15.X , X mewakili bagian terakhir dari versi yang kami definisikan sebagai build. Build dapat berubah jika cmake diperbarui. Menurut halaman web resmi, Rilis Terbaru adalah 3.15.4 . Jika Anda ingin Rilis Sebelumnya 3.14.7 cukup ganti versi dan bangun parameter seperti ini:

version=3.14
build=7

14
Perintah make install membutuhkan hak akses root. Perintah cmake --version hanya berfungsi setelah membuka terminal baru karena cmake diinstal di bawah / usr / local / bin / secara default, bukan / usr / bin /.
HD189733b

@ Teocci, saya sudah lama mencoba melakukan ini dengan berbagai cara, dan hanya keputusan Anda yang membantu saya. Terima kasih banyak !!!)))))))
neo

Saya senang jawaban ini membantu Anda. Selamat coding dan semua yang terbaik.
Teocci

2
Ini bukan solusi untuk MEMPERBARUI tetapi untuk MENGINSTAL cmake. Coba perintah ini atau cari di google untuk menemukan solusi:sudo apt-get remove cmake cmake-data
Teocci

1
Catatan untuk juga membangun alat cmake-gui, tambahkan --qt-gui ke perintah bootstrap.
Richard Whitehead

41

Pertama, hapus instalasi paket cmake yang sebelumnya diinstal. Kemudian:

  1. Buka http://www.cmake.org/download/ dan unduh pemasang .sh terbaru

  2. Instal (misalnya) opt/cmakedengan menjalankan

    sudo mkdir /opt/cmake
    sudo sh <installer filename> --prefix=/opt/cmake
    
  3. Tambahkan direktori cmake bin ke jalur Anda: https://askubuntu.com/a/170240/359343

Dipasang dengan cara ini, cmake-guiterlihat sedikit mengerikan, jika Anda menemukan cara untuk memperbaikinya, silakan edit jawaban ini.


7
Tambahkan tautan dari / usr / local / bin / cmake ke biner yang diinstal. Dengan cara ini tidak perlu mengubah PATH. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian

2
Ini jawaban terbaik.
SuB

3
sungguh, ini adalah jawaban yang paling berguna untuk pertanyaan awal
amigo421

Ini memberi saya cmake-gui yang rusak, yang tidak berfungsi pada xRDP (versi sebelumnya berfungsi), dan xRDP adalah satu-satunya cara untuk mengakses server.
stiv

@stiv 1. Apakah Anda memverifikasi cmakesetelah instalasi berfungsi, dan bahwa Anda tidak memiliki cmakeversi lain di jalur Anda? 2. Bisakah Anda memverifikasi jika Anda menggunakan cmake-gui yang disediakan dalam instalasi, dan bukan versi yang lebih lama? (Untuk mengetahui versinya, tambahkan --versionke baris perintah)
Antonio

23

Untuk berjaga-jaga jika seseorang perlu menginstal CMAKE terbaru di gambar buruh pelabuhan (seperti saya ..). Dalam hal ini adalah 3.7.2, tetapi Anda dapat memeriksa di sini https://cmake.org/download/ sebagaimana telah ditunjukkan

#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
Bagus, opsi lisensi
-skip

14

Saya suka cara berikut ini karena Anda bisa mendapatkan versi terbaru tanpa banyak kesulitan.

Kitware tampaknya secara resmi mendukung rilis roda pip. Jadi Anda bisa mendapatkan cmake terbaru hanya dengan melakukan:

instal pip --upgrade cmake

Berikut ini blog tentang hal itu: https://blog.kitware.com/cmake-python-wheels/


6

Kitware sekarang memiliki repositori APT yang saat ini mendukung Ubuntu 16.04 dan 18.04

Instal Petunjuk:

  1. Hapus versi lama cmake

    sudo apt purge --auto-remove cmake
    
  2. Dapatkan salinan kunci penandatanganan

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Tambahkan repositori ke daftar sumber Anda

    Sebuah. Untuk Ubuntu Bionic Beaver (18.04)

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

    b. Untuk Ubuntu Xenial Xerus (16.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
    
  4. Perbarui dan instal

    sudo apt update
    sudo apt install cmake
    

4

Anda juga dapat menjalankan yang berikut ini:

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

Skrip ini

  • mengambil make 3.0.2 ** jika sudah diunduh dalam sesi ini, maka Anda dapat menggunakannya kembali jika Anda tidak menyelesaikan instalasi
  • lalu salinannya membuat tautan ke tempat sampah cmake.

3

Untuk wadah Docker, jalankan terbaik

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

Sesuaikan versi, jika perlu.


2

Hapus versi lama menggunakan:

apt-get purge cmake

Unduh versi biner dari cmakearsip di tarball. Anda dapat menggunakan versi baru cmakedengan menambahkan binjalur direktori ke $PATH. Solusi alternatif adalah mengekstrak tar.gzpaket dan pergi ke direktori yang dibuat setelah mengekstraksi dan menjalankan perintah berikut:

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

Metode kedua sama dengan proses instalasi yang .debdilakukan paket!


1

Instal versi terbaru cmake dari backports, tempat banyak versi terbaru berada. Backport tertentu tergantung pada versi OS Anda saat ini. Misalnya, menjalankan Debian Stretch, tambahkan berikut ini ke /etc/apt/sources.list

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

Kemudian instal dari backport ini, alias:

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

0

Anda dapat menemukan versi cmake through snap yang sangat baru. Misalnya, saat menulis jawaban ini, versi cmake terbaru adalah 3.15.3, dan snap memiliki versi 3.15.2.

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

0

jawaban qwr untuk menggunakan snap bisa bagus tetapi jika Anda menginginkan sesuatu yang lebih baru, cmake membuat membangun DEB dari sumber menjadi mudah. Berikut ini mengasumsikan Anda memiliki cmake terbaru yang sudah diinstal. Cmp instal Ubuntu 18.04 yang tepat pasti akan bekerja di sini.

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.