명령 행에서 최신 버전의 cmake를 어떻게 설치합니까?


86

cmakeLinux 상자에 최신 버전을 설치하려고하는데 항상 아래 예외가 발생합니다.

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를 설치하는 더 좋은 방법이 있습니까?

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 ) 을 다운로드하십시오 .
Eric Carvalho

여기에 비슷한 질문 : askubuntu.com/questions/610291/... 좋은 답변과 함께.
타원형 뷰

귀하의 질문은 " Linux에서 최신 cmake 버전 을 설치하는 방법"이라고 생각 하지만 명령 sudo apt-get install cmake이 최신 버전을 설치하지는 않습니다.
Teocci

답변:


22

아마도 www.cmake.org의 서버는 매우 바빴습니다. 웹 브라우저를 사용하여 다시 시도하거나 파일을 다운로드 할 수 있습니다.

그러나 훨씬 간단한 방법이 있습니다.

sudo apt-get install cmake

의견 : 논평자들은 "우분투 12.04는 v2.8.7 만 배송 되고 "는 "14.04는 여전히 2.8을 배송 하고 있습니다 "라고 지적했다 . 이유는 12.04와 14.04가 Ubuntu의 LTS 릴리스 입니다. LTS 릴리스는 5 년 동안 안정적으로 유지되도록 설계되었으므로 최신 패키지 릴리스가 아니라 보안 및 중요 업데이트 만받습니다. 일반 릴리스는 6 개월마다 나오므로 최근 cmake가 제공 될 가능성이 높습니다.


3
ubuntu 12.04는 apt-get과 함께 cmake v 2.8.7 만 제공합니다. 버전 2의 현재 릴리스는 2.8.12입니다. 소스에서 빌드하는 데 인내 할 것을 제안합니다.
Richard Hodges 2012 년

52
이것은 정답이 아닙니다. 최신 버전은 거의 없습니다.
Senjai

3
14.04 여전히 선적 2.8
Stolas

4
이 답변은 잘못되었습니다. StableReleaseUpdates의 정책은 하지 LTS 릴리스 단지에 대해. 모든 우분투 릴리스는 일단 실제로 릴리스되면 보안 취약점이나 다른 심각한 버그에 대한 수정 만받습니다. 여기 (및 Launchpad ) 표시된 것처럼 LTS가 아닌 릴리즈도 새 cmake버전 을받지 못했습니다 . 일부 패키지에 대해 별도의 백 포트 가 있습니다 (그러나 아님 cmake).
Eliah Kagan

10
이 답변 sudo apt-get install cmake자체 cmake가 최신 버전 으로 업그레이드되지 않기 때문에이 답변은 잘못되었습니다 . 우분투 릴리스에서는 작동하지 않습니다. 당신의 대답이 실제로 "우분투 시스템을 새로운 버전으로 업그레이드"한다면, 더 명확하게하기 위해 다시 편집하는 것이 좋습니다. (그렇지만 많은 사용자에게 합리적인 솔루션은 아니며, 리포지토리에 최신 버전의 Ubuntu가 출시 된 버전이없는 경우가 종종 있습니다 cmake.)
Eliah Kagan

160

가장 일반적인 상황은 최신 버전의 cmake 를 설치하려고 하지만 운영 체제 리포지토리가 업데이트되지 않은 경우입니다. 예를 들어, 필자의 경우 Ubuntu 16.04를 실행하는 랩톱이 있으며 명령을 실행할 때 sudo apt install cmake설치된 버전은 3.5.1입니다 . 대신 3.15.4 에서 현재 버전 인 cmake.org은 .

최신 버전을 구하려면 어떻게해야합니까?

이진 파일 빌드 및 설치 또는 사용 방법 중 하나를 사용하여 설치할 수 있습니다 .

A. 구축 및 설치 (권장)

A-1. 다음을 사용하여 Ubuntu의 패키지 관리자 및 구성에서 제공 한 기본 버전을 제거하십시오.

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

또는:

sudo apt purge --auto-remove cmake

A-2. 공식 CMake 웹 페이지로 이동 한 다음 최신 버전을 다운로드하여 추출하십시오. 원하는 버전을 얻으려면 다음 명령에서 versionbuild변수를 업데이트하십시오 .

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. 다음을 실행하여 추출 된 소스를 설치하십시오.

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

A-4. cmake버전을 테스트하십시오 .

$ cmake --version

결과 cmake --version:

cmake version 3.15.X

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

B. 이진 파일 사용 ( cmake-gui잘 작동하지 않음)

B-1. A-1 에서와 같이 Ubuntu의 패키지 관리자가 제공 한 기본 버전을 제거하십시오 .

B-2. 로 이동 공식 CMake 웹 페이지 , 다음 다운로드 및 설치 최신 .sh버전opt/cmake. 원하는 버전을 얻으려면 다음 명령에서 versionbuild변수를 업데이트하십시오 .

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. 다음 /usr/local/bin/cmake을 실행 하여 설치된 바이너리 링크를 추가하십시오 .

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

B-4. A-4cmake 에서와 같이 새 버전을 테스트하십시오 .

노트

에서 3.15.X X는 우리가 빌드로 정의 버전의 마지막 부분을 나타냅니다. cmake 가 업데이트 되면 빌드가 변경 될 수 있습니다 . 공식 웹 페이지에 따르면 최신 릴리스는 3.15.4 입니다. 이전 릴리스 3.14.7 을 원하는 경우 버전을 바꾸고 다음과 같이 매개 변수를 빌드하십시오.

version=3.14
build=7

14
make install 명령에는 루트 권한이 필요합니다. cmake --version 명령은 cmake가 기본적으로 / usr / bin /이 아닌 / usr / local / bin /에 설치되므로 새 터미널을 연 후에 만 ​​작동합니다.
HD189733b

@Teocci, 나는 오랫동안 여러 가지 방법 으로이 작업을 시도했지만 귀하의 결정만이 저에게 도움이되었습니다. 대단히 감사합니다 !!!)))))))
neo

이 답변이 도움이되어 다행입니다. 행복한 코딩과 최고.
Teocci

2
이것은 UPDATE에 대한 해결책이 아니라 cmake를 설치하는 것입니다. 해결책을 찾으려면이 명령을 사용하거나 Google에 입력하십시오.sudo apt-get remove cmake cmake-data
Teocci

1
cmake-gui 도구도 빌드하려면 bootstrap 명령에 --qt-gui를 추가하십시오.
Richard Whitehead

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에서 설치된 바이너리로 연결되는 링크를 추가하십시오. 이런 식으로 PATH를 변경할 필요가 없습니다. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian

2
이것이 가장 좋은 대답입니다.
SuB

3
실제로, 이것은 초기 질문에 가장 유용한 답변입니다
amigo421

이것은 xRDP (이전 버전에서는 작동하지 않음)에서 작동하지 않는 cmake-gui를 손상 시켰으며 xRDP는 서버에 액세스하는 유일한 방법입니다.
stiv

@stiv 1. cmake설치가 완료된 후 cmake경로에 다른 버전 이 없는지 확인 했습니까 ? 2. 이전 버전이 아닌 설치에 제공된 cmake-gui를 사용하고 있는지 확인할 수 있습니까? (버전을 알려면 --version커맨드 라인에 추가하십시오 )
Antonio

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
멋지고 문서화되지 않은 --skip-license 옵션 :)
4LegsDrivenCat

14

많은 문제없이 최신 버전을 얻을 수 있기 때문에 다음과 같은 방법을 좋아합니다.

Kitware는 공식적으로 핍 휠 출시를 지원하는 것 같습니다. 따라서 다음을 수행하여 최신 cmake를 얻을 수 있습니다.

pip install-업그레이드 cmake

여기에 블로그가 있습니다 : https://blog.kitware.com/cmake-python-wheels/


6

Kitware에는 현재 Ubuntu 16.04 및 18.04를 지원하는 APT 저장소가 있습니다.

설치 지침 :

  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. 소스 목록에 저장소를 추가하십시오.

    에이. 우분투 바이오닉 비버 (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 -)

이 스크립트

  • fetches 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

cmaketarball 에 보관 된 바이너리 버전을 다운로드하십시오 . 디렉토리 경로를 cmake에 추가하여 새 버전을 사용할 수 있습니다 . 다른 해결책은 패키지를 추출하고 다음 명령을 추출하고 실행 한 후 작성된 디렉토리로 이동하는 것입니다.bin$PATHtar.gz

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

두 번째 방법은 .deb패키지가 수행하는 설치 프로세스와 동일합니다 !


1

많은 최신 버전이있는 백 포트에서 최신 버전의 cmake를 설치하십시오. 특정 백 포트는 현재 OS 버전에 따라 다릅니다. 예를 들어, 데비안 스트레치를 실행하면 다음을 /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

snap을 사용하는 qwr 의 대답은 좋을 수 있지만 더 새로운 것을 원한다면 cmake는 소스에서 DEB를 쉽게 만들 수 있습니다. 다음은 최근 cmake가 이미 설치되어 있다고 가정합니다. 우분투 18.04의 apt install cmake는 분명히 여기에서 작동합니다.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.