ฉันจะติดตั้ง cmake เวอร์ชันล่าสุดจากบรรทัดรับคำสั่งได้อย่างไร


86

ฉันพยายามติดตั้งล่าสุดcmakeในกล่อง linux ของฉันและฉันมักจะได้รับข้อยกเว้นด้านล่าง -

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 รุ่นล่าสุดในกล่อง 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

คุณแน่ใจหรือว่าไม่มีไฟร์วอลล์ที่บล็อกการเชื่อมต่อของคุณ ทำไมต้องใช้wget? ลองดาวน์โหลดไฟล์นั้น ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) โดยใช้เว็บเบราว์เซอร์
Eric Carvalho

คำถามที่คล้ายกันที่นี่: askubuntu.com/questions/610291/...กับคำตอบที่ดี
มุมมองวงรี

ฉันคิดว่าคำถามของคุณคือ "วิธีการติดตั้งcmake เวอร์ชันล่าสุดใน Linux" แต่คำสั่ง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 เป็นLTSของ Ubuntu LTS รีลีสมีวัตถุประสงค์เพื่อให้คงที่เป็นเวลา 5 ปีดังนั้นพวกเขาจะได้รับเฉพาะการรักษาความปลอดภัยและการปรับปรุงที่สำคัญไม่ใช่รุ่นล่าสุดของแพ็คเกจ รุ่นปกติออกมาทุก ๆ 6 เดือนและมีแนวโน้มที่จะมาพร้อมกับ cmake ล่าสุด


3
ubuntu 12.04 เป็นเพียงการส่ง v 2.8.7 จาก cmake พร้อม apt-get รุ่นปัจจุบันของรุ่น 2 คือ 2.8.12 ฉันขอแนะนำให้คุณพยายามสร้างจากแหล่งที่มา
Richard Hodges

52
นี่ไม่ใช่คำตอบที่ถูกต้อง รุ่นล่าสุดแทบไม่เคยฉลาดเลย
Senjai

3
14.04 ยังคงมีการจัดส่ง 2.8
Stolas

4
คำตอบนี้ผิด StableReleaseUpdatesนโยบายไม่เพียงสำหรับรุ่น LTS Ubuntu ทุกรุ่นที่วางจำหน่ายจริงจะได้รับการแก้ไขเฉพาะช่องโหว่ด้านความปลอดภัยหรือข้อบกพร่องที่ร้ายแรง ดังที่แสดงไว้ที่นี่ (และบน Launchpad ) แม้กระทั่งรุ่นที่ไม่ใช่ LTS ยังไม่ได้รับcmakeเวอร์ชันใหม่ มี backport แยกต่างหากสำหรับบางแพ็คเกจ (แต่ไม่ใช่cmake)
Eliah Kagan

10
คำตอบนี้ผิดเพราะsudo apt-get install cmakeไม่ได้อัพเกรดcmakeเป็นเวอร์ชั่นใหม่กว่านี้ด้วยตัวเอง สิ่งนี้ไม่สามารถใช้ได้กับ Ubuntu ทุกรุ่น หากคำตอบของคุณคือ "อัพเกรดระบบอูบุนตูของคุณให้เป็นรุ่นใหม่กว่า" คุณอาจต้องการแก้ไขอีกครั้งเพื่อให้ชัดเจนยิ่งขึ้น (นั่นอาจไม่ใช่วิธีแก้ปัญหาที่สมเหตุสมผลสำหรับผู้ใช้หลายคนและบ่อยครั้งที่ 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จากนั้นดาวน์โหลดและแยกเวอร์ชันล่าสุด อัพเดตversionและbuildตัวแปรในคำสั่งต่อไปนี้เพื่อรับเวอร์ชันที่ต้องการ:

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 ถอนการติดตั้งรุ่นเริ่มต้นที่ให้ไว้โดยผู้จัดการแพคเกจของ Ubuntu ในขณะที่A-1

B-2 ไปที่อย่างเป็นทางการ CMake หน้าเว็บแล้วดาวน์โหลดและติดตั้งล่าสุด.shรุ่นopt/cmakeใน อัพเดตversionและbuildตัวแปรในคำสั่งต่อไปนี้เพื่อรับเวอร์ชันที่ต้องการ:

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 ทดสอบใหม่ของคุณcmakeรุ่นในA-4

บันทึก

ใน3.15.X Xหมายถึงส่วนสุดท้ายของรุ่นที่เรากำหนดให้เป็นสร้าง บิลด์อาจเปลี่ยนแปลงหากมีการอัพเดตcmake ตามที่เว็บไซด์อย่างเป็นทางการข่าวล่าสุดคือ 3.15.4 หากคุณต้องการรุ่นก่อนหน้า 3.14.7เพียงแทนที่รุ่นและสร้างพารามิเตอร์เช่นนี้:

version=3.14
build=7

14
คำสั่ง make install ต้องการสิทธิ์รูท คำสั่ง cmake --version ใช้งานได้หลังจากเปิดเทอร์มินัลใหม่เนื่องจาก cmake ถูกติดตั้งภายใต้ / usr / local / bin / โดยค่าเริ่มต้นไม่ใช่ / usr / bin /
HD189733b

@Teocci ฉันพยายามทำสิ่งต่าง ๆ มานานแล้วและมีเพียงการตัดสินใจของคุณเท่านั้นที่ช่วยฉันได้ ขอบคุณมาก !!!)))))))
neo

ฉันดีใจที่คำตอบนี้ช่วยคุณ การเข้ารหัสที่มีความสุขและสิ่งที่ดีที่สุด
Teocci

2
นี่ไม่ใช่วิธีแก้ไขสำหรับ UPDATE แต่ติดตั้ง cmake ลองใช้คำสั่งนี้หรือ google เพื่อค้นหาวิธีแก้ปัญหา:sudo apt-get remove cmake cmake-data
Teocci

1
หมายเหตุเพื่อสร้างเครื่องมือ cmake-gui ให้เพิ่ม --qt-gui เข้ากับคำสั่ง bootstrap
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

นี่ทำให้ฉันแตก cmake-gui ซึ่งไม่สามารถใช้งานกับ xRDP (รุ่นก่อนหน้านี้ทำงานได้) และ 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 option :)
4LegsDrivenCat

14

ฉันชอบวิธีต่อไปนี้เพราะคุณจะได้รับเวอร์ชันล่าสุดโดยไม่มีปัญหา

ดูเหมือนว่า Kitware จะสนับสนุนการปล่อย pip pip อย่างเป็นทางการ ดังนั้นคุณสามารถรับ cmake ล่าสุดได้โดยทำดังนี้

pip ติดตั้ง - อัปเกรด cmake

นี่คือบล็อกเกี่ยวกับมัน: https://blog.kitware.com/cmake-python-wheels/


6

ตอนนี้ Kitware มีที่เก็บ APT ที่ปัจจุบันรองรับ Ubuntu 16.04 และ 18.04

คำแนะนำในการติดตั้ง:

  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. เพิ่มที่เก็บลงในรายการแหล่งที่มาของคุณ

    สำหรับ Ubuntu Bionic Beaver (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 -)

สคริปต์นี้

  • การดึงข้อมูลทำ 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

ดาวน์โหลดเวอร์ชันไบนารีของที่cmakeเก็บถาวรใน tarball คุณสามารถใช้รุ่นใหม่cmakeโดยการเพิ่มของเส้นทางไดเรกทอรีไปbin $PATHโซลูชันทางเลือกคือการแตกtar.gzแพ็กเกจและไปที่ไดเร็กทอรีที่ทำหลังจากแตกและรันคำสั่งต่อไปนี้:

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

วิธีที่สองเหมือนกับขั้นตอนการติดตั้งที่.debแพ็คเกจทำ!


1

ติดตั้ง cmake เวอร์ชันล่าสุดจาก backport ซึ่งมีเวอร์ชันล่าสุดมากมายตั้งอยู่ Backport ที่เฉพาะเจาะจงขึ้นอยู่กับเวอร์ชั่นระบบปฏิบัติการปัจจุบันของคุณ ตัวอย่างเช่นการเรียกใช้ Debian Stretch ให้เพิ่มรายการต่อไปนี้ลงใน /etc/apt/sources.list

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

จากนั้นติดตั้งจาก backport นี้หรือที่รู้จัก:

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

0

คุณสามารถค้นหา cmake เวอร์ชันล่าสุดได้จาก snap ตัวอย่างเช่นเมื่อเขียนคำตอบนี้ cmake เวอร์ชันล่าสุดคือ 3.15.3 และ snap มีเวอร์ชัน 3.15.2

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

0

คำตอบของqwr ที่จะใช้ snap ได้ดี แต่ถ้าคุณต้องการบางสิ่งที่ใหม่กว่า cmake ทำให้การสร้าง DEB จากแหล่งที่มาง่าย ต่อไปนี้จะถือว่าคุณได้ติดตั้ง cmake ล่าสุดแล้ว การติดตั้ง cmake ที่เหมาะสมของ Ubuntu 18.04 จะทำงานได้ที่นี่แน่นอน

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.