Làm cách nào để cài đặt phiên bản mới nhất của cmake từ dòng lệnh?


87

Tôi đang cố gắng cài đặt mới nhất cmaketrong hộp linux của mình và tôi luôn nhận được ngoại lệ dưới đây -

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

Nó luôn luôn thử lại ... Bất kỳ suy nghĩ?

Có ai biết tôi đang làm gì sai ở đây không? Hoặc có cách nào tốt hơn để cài đặt phiên bản cmake mới nhất trong hộp linux của tôi không?

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

Bạn có chắc chắn không có tường lửa chặn kết nối của bạn? Tại sao nên sử dụng wget? Hãy thử tải xuống tệp đó ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) bằng trình duyệt web.
Eric Carvalho

Câu hỏi tương tự ở đây: Askubfox.com/questions/610291/ Kiếm với một câu trả lời hay.
Chế độ xem hình elip

Tôi nghĩ câu hỏi của bạn là "Cách cài đặt phiên bản cmake mới nhất trong Linux" nhưng lệnh sudo apt-get install cmakekhông cài đặt phiên bản mới nhất.
Teocci

Câu trả lời:


23

Có lẽ máy chủ tại www.cmake.org rất bận rộn. Bạn có thể thử lại hoặc tải xuống tệp bằng trình duyệt web của mình.

Tuy nhiên, có một cách đơn giản hơn nhiều:

sudo apt-get install cmake

Cập nhật: các nhà bình luận chỉ ra rằng "Ubuntu 12.04 chỉ giao hàng v2.8.7""14.04 vẫn đang vận chuyển 2.8" . Đó là vì một lý do: 12.04 và 14.04 là các bản phát hành LTS của Ubuntu. Các bản phát hành LTS được dự định duy trì ổn định trong 5 năm, vì vậy chúng chỉ nhận được các bản cập nhật bảo mật và quan trọng, không phải là bản phát hành mới nhất của các gói. Các bản phát hành bình thường xuất hiện cứ sau 6 tháng, và do đó nhiều khả năng sẽ đi kèm với một cmake gần đây.


3
Ubuntu 12.04 chỉ vận chuyển v 2.8.7 cmake với apt-get. Bản phát hành hiện tại của phiên bản 2 là 2.8.12. Tôi đề nghị bạn kiên trì xây dựng nó từ nguồn.
Richard Hodges

52
Đây không phải là câu trả lời chính xác. Phiên bản mới nhất gần như không bao giờ có trên apt.
Senjai

3
14.04 vẫn vận chuyển 2.8
Stolas

4
Câu trả lời này là sai. Các StableReleaseUpdates chính sách là không chỉ dành riêng cho LTS phát hành. Tất cả các bản phát hành Ubuntu, một khi thực sự được phát hành, chỉ nhận được các bản sửa lỗi cho các lỗ hổng bảo mật hoặc các lỗi nghiêm trọng khác. Như được hiển thị ở đây (và trên Launchpad ), ngay cả các bản phát hành không phải LTS cũng không nhận được cmakephiên bản mới . Backport riêng cho một số gói tồn tại (nhưng không cmake).
Eliah Kagan

10
Câu trả lời này là sai bởi vì sudo apt-get install cmakebản thân nó không bao giờ nâng cấp cmakelên phiên bản mới hơn. Điều này không hoạt động trên bất kỳ bản phát hành Ubuntu. Nếu câu trả lời của bạn thực sự là "nâng cấp hệ thống Ubuntu của bạn lên bản phát hành mới hơn" thì bạn có thể muốn chỉnh sửa lại để làm cho nó rõ ràng hơn. (Tuy nhiên, đó sẽ không phải là một giải pháp hợp lý cho nhiều người dùng và thường không có phiên bản Ubuntu được phát hành nào mà kho lưu trữ có phiên bản mới nhất cmake.)
Eliah Kagan

160

Tình huống phổ biến nhất là khi bạn muốn cài đặt phiên bản cmake mới nhất , nhưng kho lưu trữ của Hệ điều hành của bạn không được cập nhật. Ví dụ, trong trường hợp của tôi, tôi có một máy tính xách tay chạy Ubuntu 16.04 và khi tôi thực thi lệnh sudo apt install cmake, phiên bản đã cài đặt là 3.5.1 ; thay vì 3.15.4 là phiên bản hiện tại tại cmake.org .

Làm thế nào tôi có thể có được phiên bản mới nhất?

Chà, chúng ta có thể cài đặt nó bằng cách làm theo một trong các phương pháp sau: Xây dựng và Cài đặt hoặc Sử dụng tệp nhị phân .

A. Xây dựng và cài đặt (được khuyến nghị)

A-1. Gỡ cài đặt phiên bản mặc định được cung cấp bởi trình quản lý và cấu hình gói của Ubuntu bằng cách sử dụng:

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

hoặc là:

sudo apt purge --auto-remove cmake

A-2. Tới trang web chính thức CMake , sau đó tải về và giải nén phiên bản mới nhất. Cập nhật các biến versionbuildbiến trong lệnh sau để có phiên bản mong muốn:

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. Cài đặt nguồn trích xuất bằng cách chạy:

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

A-4. Kiểm tra cmakephiên bản mới của bạn .

$ cmake --version

Kết quả của cmake --version:

cmake version 3.15.X

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

B. Sử dụng tệp nhị phân ( cmake-guikhông hoạt động tốt)

B-1. Gỡ cài đặt phiên bản mặc định do trình quản lý gói của Ubuntu cung cấp như trong A-1 .

B-2. Tới trang web chính thức CMake , sau đó tải về và cài đặt mới nhất .shphiên bản trong opt/cmake. Cập nhật các biến versionbuildbiến trong lệnh sau để có phiên bản mong muốn:

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. Thêm liên kết nhị phân được cài đặt vào /usr/local/bin/cmakebằng cách chạy này:

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

B 4. Kiểm tra cmakephiên bản mới của bạn như trong A-4 .

Ghi chú

Trong 3.15.X , X đại diện cho phần cuối của phiên bản mà chúng tôi đã xác định là bản dựng. Bản dựng có thể thay đổi nếu cmake được cập nhật. Theo trang web chính thức, Bản phát hành mới nhất là 3.15.4 . Nếu bạn muốn Bản phát hành trước 3.14.7 chỉ cần thay thế phiên bản và xây dựng các tham số như thế này:

version=3.14
build=7

14
Lệnh make install cần quyền root. Lệnh cmake --version chỉ hoạt động sau khi mở một thiết bị đầu cuối mới vì cmake được cài đặt theo / usr / local / bin / theo mặc định, không phải / usr / bin /.
HD189733b

@Teocci, từ lâu tôi đã cố gắng làm điều này theo nhiều cách khác nhau và chỉ có quyết định của bạn giúp tôi. Cảm ơn bạn rất nhiều !!!)))))))
neo

Tôi rất vui vì câu trả lời này đã giúp bạn. Chúc mừng mã hóa và tất cả những điều tốt nhất.
Teocci

2
Đây không phải là một giải pháp để CẬP NHẬT mà là CÀI ĐẶT cmake. Hãy thử lệnh này hoặc google nó để tìm giải pháp:sudo apt-get remove cmake cmake-data
Teocci

1
Lưu ý để xây dựng công cụ cmake-gui, thêm --qt-gui vào lệnh bootstrap.
Richard Whitehead

41

Đầu tiên gỡ cài đặt bất kỳ gói cmake được cài đặt trước đó. Sau đó:

  1. Truy cập http://www.cmake.org/doad/ và tải xuống trình cài đặt .sh mới nhất

  2. Cài đặt nó (ví dụ) opt/cmakebằng cách chạy

    sudo mkdir /opt/cmake
    sudo sh <installer filename> --prefix=/opt/cmake
    
  3. Thêm thư mục cmake bin vào đường dẫn của bạn: https://askubfox.com/a/170240/359343

Được cài đặt theo cách này, cmake-guitrông hơi kinh khủng, nếu bạn tìm được cách khắc phục, xin vui lòng chỉnh sửa câu trả lời này.


7
Thêm một liên kết từ / usr / local / bin / cmake vào tệp nhị phân đã cài đặt. Cách này không cần thay đổi ĐƯỜNG. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian

2
Đây là câu trả lời tốt nhất.
SuB

3
thực sự, đây là câu trả lời hữu ích nhất cho câu hỏi ban đầu
amigo421

Điều này mang lại cho tôi cmake-gui bị hỏng, không hoạt động trên xRDP (phiên bản trước đã hoạt động) và xRDP là cách duy nhất để truy cập máy chủ.
stiv

@stiv 1. Bạn đã xác minh cmakesau khi cài đặt hoạt động và bạn không có cmakephiên bản nào khác trong đường dẫn của mình? 2. Bạn có thể xác minh nếu bạn đang sử dụng cmake-gui được cung cấp trong quá trình cài đặt chứ không phải một số phiên bản cũ hơn không? (Để biết phiên bản, hãy thêm --versionvào dòng lệnh)
Antonio

23

Chỉ trong trường hợp nếu ai đó cần cài đặt CMAKE mới nhất trong hình ảnh docker (như tôi ..). Trong trường hợp này là 3.7.2, nhưng bạn có thể kiểm tra tại đây https://cmake.org/doad/ như đã chỉ ra

#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
Đẹp, không có giấy tờ - tùy chọn giấy phép :)
4LegsDrivenCat

14

Tôi thích cách sau vì bạn có thể có được một phiên bản gần đây mà không gặp nhiều rắc rối.

Kitware dường như chính thức hỗ trợ phát hành bánh xe pip. Vì vậy, bạn có thể nhận được cmake mới nhất chỉ bằng cách làm:

cài đặt pip - nâng cấp cmake

Đây là blog về nó: https://blog.kitware.com/cmake-python-wheels/


6

Kitware hiện có kho APT hiện hỗ trợ Ubuntu 16.04 và 18.04

Hướng dẫn cài đặt:

  1. Xóa phiên bản cũ của cmake

    sudo apt purge --auto-remove cmake
    
  2. Lấy một bản sao của khóa ký

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Thêm kho lưu trữ vào danh sách nguồn của bạn

    a. Dành cho Ubuntu Bionic Beaver (18.04)

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

    b. Đối với Ubuntu Xenial Xerus (16.04)

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
    
  4. Cập nhật và cài đặt

    sudo apt update
    sudo apt install cmake
    

4

Bạn cũng có thể thực hiện như sau:

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

Kịch bản này

  • tìm nạp tạo 3.0.2 ** nếu nó đã được tải xuống trong phiên này, sau đó bạn có thể sử dụng lại nếu bạn không hoàn tất cài đặt
  • sau đó nó sao chép liên kết đến thùng cmake.

3

Đối với một container Docker, chạy tốt nhất

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

Điều chỉnh phiên bản, nếu cần.


2

Xóa phiên bản cũ bằng cách sử dụng:

apt-get purge cmake

Tải về phiên bản nhị phân của cmakelưu trữ trong một tarball. Bạn có thể sử dụng phiên bản mới của cmakebằng cách thêm binđường dẫn thư mục của nó vào $PATH. Một giải pháp thay thế là giải nén tar.gzgói và đi đến thư mục được thực hiện sau khi giải nén và chạy các lệnh sau:

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

Phương pháp thứ hai giống như quá trình cài đặt mà .debgói nào làm!


1

Cài đặt phiên bản mới nhất của cmake từ backport, nơi có nhiều phiên bản mới nhất cư trú. Các backport cụ thể phụ thuộc vào phiên bản hệ điều hành hiện tại của bạn. Ví dụ: chạy Debian Stretch, hãy thêm đoạn sau vào /etc/apt/source.list

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

Sau đó cài đặt từ backport này, aka:

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

0

Bạn có thể tìm thấy các phiên bản gần đây của cmake thông qua snap. Ví dụ, khi viết câu trả lời này, phiên bản mới nhất của cmake là 3.15.3 và snap có phiên bản 3.15.2.

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

0

Câu trả lời của qwr để sử dụng snap có thể tốt nhưng nếu bạn muốn thứ gì đó mới hơn, cmake giúp xây dựng DEB từ nguồn dễ dàng. Giả định sau đây bạn đã cài đặt một cmake gần đây. Cmake cài đặt apt của Ubuntu 18.04 chắc chắn sẽ hoạt động ở đây.

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.