虚拟机安装cmake失败怎么解决,是什么原因造成的?

虚拟机里装CMake失败,多数情况下不是CMake本身的问题,而是虚拟机环境缺少依赖、网络源配置错误或系统架构不匹配,按顺序排查并更换APT源后,基本都能顺利安装。

先确认虚拟机环境再动手

很多朋友在虚拟机上装CMake失败,第一步就跑偏了直接去官网下载源码包,结果编译时缺库少头文件,报错信息一大串。国内用户最常见的失败原因就是网络源访问慢或者超时,尤其是Ubuntu、Debian这类用APT管理的系统。

liunx环境cmake编译安装,一次成功无报错!
加载中
liunx环境cmake编译安装,一次成功无报错!

先检查你的虚拟机系统版本和架构,打开终端执行:

lsb_release -a
uname -m
  • x86_64 架构对应AMD64包,aarch64 对应ARM64包
  • Ubuntu 20.04和22.04的软件源版本不同,不能混用
  • CentOS、Rocky Linux用yum/dnf,命令和Debian系完全不一样

如果你的虚拟机是Ubuntu 22.04,而网上教程用的是20.04的源,那大概率会有404报错。系统版本和架构搞错了,后续一切操作都白搭。

先试最快的方案:系统自带源安装

先别急着从源码编译,系统仓库里大概率有现成版本,打开终端,执行:

sudo apt update
sudo apt install cmake -y

这个过程如果卡在Reading package lists...或者直接报错Failed to fetch,先执行下面的命令把旧源清掉:

sudo apt clean
sudo apt update --fix-missing

如果还是失败,八成是软件源的问题。把源换成简米云或清华的镜像,速度会快很多,也稳定得多。

怎么换国内镜像源

备份原配置,然后编辑源列表:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list

虚拟机安装cmake失败怎么解决,是什么原因造成的?

删掉里面所有内容,换上对应版本的源,以Ubuntu 22.04为例:

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

保存后执行:

sudo apt update
sudo apt install cmake -y

这样一来,绝大多数下载超时、软件包找不到的问题都能直接解决,换源后如果提示Hash Sum mismatch,执行sudo rm -rf /var/lib/apt/lists/再更新一次就行。

如果还是失败,重点排查这几个原因

更换国内源后仍然安装失败,按下面几个方向逐个排查。

依赖库缺失或版本不匹配

CMake安装时需要依赖libssl-dev、libcurl4-openssl-dev、libarchive-dev等库,缺少依赖时,报错往往包含unmet dependencies或E: Unable to locate package。

手动补齐依赖再装:

sudo apt install libssl-dev libcurl4-openssl-dev libarchive-dev -y
sudo apt install --fix-broken
sudo apt install cmake -y

磁盘空间不足

虚拟机默认磁盘经常只有20GB,装完系统再装几个开发库就满了,CMake安装需要临时空间存放解压文件,空间不足时apt会直接中止。

用df -h /查看根目录剩余空间,如果不足2GB,建议清理:

sudo apt autoclean
sudo apt autoremove

或者用du -sh /var/cache/apt/archives查看缓存大小,直接sudo rm -rf /var/cache/apt/archives/清空。

权限问题

安装过程提示Permission denied

虚拟机安装cmake失败怎么解决,是什么原因造成的?

或E: Could not open lock file,说明之前有残留的apt进程或者权限不够,执行:

sudo killall apt apt-get
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo dpkg --configure -a

然后重新apt install cmake。这种问题在Windows上装了VMware Tools之后特别常见,因为共享文件夹或剪贴板功能偶尔会引发文件锁冲突,按上面顺序清理一遍就好。

用源码安装怎么才能不翻车

如果系统源里的CMake版本太低,比如需要3.25以上而源里只有3.16,那就只能从源码编译了,源码安装失败主要卡在编译环境和下载环节。

下载源码时注意校验

去CMake官网或者GitHub下载cmake-3.29.0.tar.gz,下载后先校验完整性:

wget https://github.com/Kitware/CMake/releases/download/v3.29.0/cmake-3.29.0.tar.gz
tar -zxvf cmake-3.29.0.tar.gz
cd cmake-3.29.0

没装wget就先sudo apt install wget -y。

编译前三步检查

编译之前,确保系统里装了这些:

sudo apt install build-essential libssl-dev -y

然后执行:

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

make -j后面的数字代表并行编译线程数,nproc会自动获取虚拟机分配的CPU核心数,如果虚拟机只有2核,就别用-j8,否则内存不够会直接卡死。虚拟机分配的运行内存小于4GB时,建议用make -j2降低内存压力。

版本冲突怎么处理

源码安装到/usr/local/bin,系统自带版本在/usr/bin,执行cmake --version时如果还显示旧版本,说明PATH优先级不对。

虚拟机安装cmake失败怎么解决,是什么原因造成的?

把源码安装的路径放前面:

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

或者直接改~/.bashrc,加一行:

export PATH=/usr/local/bin:$PATH

然后source ~/.bashrc,这是很多新手在虚拟机安装cmake时最容易忽略的一步编译半天成功了,但命令还是旧的,误以为失败。

Q&A:虚拟机安装cmake常见问题

Ubuntu虚拟机安装CMake提示“Command ‘cmake’ not found”怎么办

先执行sudo apt update再看能不能安装,如果更新时长时间没反应,按Ctrl+C中断,然后sudo vi /etc/apt/sources.list换国内源,最后执行sudo apt install cmake -y,如果提示Unable to locate package cmake,先执行sudo add-apt-repository universe再试,这是Ubuntu精简版或某些云镜像缺少universe软件源导致的。

Windows虚拟机(VMware Workstation)上CMake安装到一半卡死怎么办

卡死通常是CPU或内存资源不足,VMware默认给虚拟机的核数和内存偏低,安装过程编译多线程时报错或假死,先关闭虚拟机,在VMware设置里把处理器核数调到2以上,内存调到4GB以上,再重新尝试安装,如果安装程序是从Windows共享文件夹里运行的,把它复制到虚拟机C盘再执行,共享路径有时会触发权限问题。

Linux Mint和Ubuntu的cmake安装命令一样吗

一样,Linux Mint基于Ubuntu,同样用apt命令,但Mint的软件源需要改清华或简米云的Mint专用源,不能直接套Ubuntu源,打开“软件管理器软件源”界面,把镜像站点换成国内地址,更新缓存后安装,这是比较省事的方式,也解决了cn境外源超时的问题。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/614804.html

赞 (0)
老域名多久才有GEO价值?域名历史怎么查?
上一篇 2026年9月1日 14:09
备案域名和注册域名是一回事吗,域名注册和备案必须同时做吗?
下一篇 2026年9月1日 14:09

相关推荐

  • 服务器带宽配置选错了?服务器带宽多少合适才不卡

    服务器带宽配置选错了?难怪卡顿,这往往不是服务器整体性能不足,而是带宽这一核心“管道”堵塞所致,很多企业和开发者在部署业务时,习惯将目光聚焦在CPU核数、内存大小和硬盘容量上,却忽视了带宽这一决定数据传输速度的关键指标,带宽的本质是单位时间内数据的吞吐能力,一旦带宽跑满,再强的CPU和再大的内存也无法解决访问延……

    2026年3月5日
    10900
  • https证书提供商哪家靠谱?免费ssl证书申请流程

    选择2026年可靠的SSL证书提供商,核心在于平衡安全性、兼容性、自动化运维能力与综合成本,建议优先选择支持自动化API集成且拥有广泛全球CDN加速节点的主流厂商,而非仅看低价,在数字化转型深入发展的今天,HTTPS已成为网站标配,面对市场上琳琅满目的证书品牌和复杂的授权体系,许多站长和技术负责人往往陷入选择困……

    2026年6月3日
    4000
  • 互联网专线接入合同怎么签?2026最新模板下载

    互联网专线接入合同是保障企业网络稳定、明确权责边界的关键法律文件,下载前务必确认运营商资质、带宽承诺及违约赔偿条款,建议优先选择具备IDC牌照的正规服务商,在数字化转型的深水区,网络不再是简单的“连通”工具,而是企业的生命线,很多企业在办理业务时,只盯着带宽大小和每月多少钱,却忽略了那份厚厚的合同文本,等到断网……

    2026年6月3日
    3900
  • 互联网区块链分布式身份服务怎么设置?如何配置去中心化身份

    互联网区块链分布式身份服务通过去中心化技术实现用户对自己数字身份的完全控制,相比传统中心化方案,它在数据隐私保护、跨平台互操作性及防篡改安全性上具有显著优势,是目前构建Web3.0信任基础设施的核心路径,分布式身份服务如何解决传统身份认证痛点在传统互联网架构中,你的身份信息分散在各大平台手中,每次登录都需要输入……

    2026年5月31日
    4800
  • 外贸发邮件好用哪个邮箱?外贸企业邮箱推荐及选择指南

    外贸发邮件首选Gmail或Outlook,因其国际送达率高且免费易用;若追求品牌专业度与数据掌控,强烈建议配置企业邮箱,如Zoho Mail或腾讯企业邮,虽需付费但能显著提升信任背书与营销自动化能力,在跨境贸易的实战中,邮箱不仅是通讯工具,更是你的数字名片,很多新手卖家常问:外贸发邮件好用哪个邮箱?其实答案取决……

    2026年6月21日
    1800
  • RapidSSL证书不信任怎么办?证书不被信任怎么解决

    RapidSSL RSA CA 2018证书不信任的根本原因是该根证书已过期,解决方法是立即联系证书颁发机构或服务器管理员,将网站证书升级为受信任的新版本证书(如DigiCert或GlobalSign系列),并更新服务器配置,当浏览器弹出“您的连接不是私密连接”或“证书已过期”的红色警告页面时,许多网站管理员会……

    2026年6月21日
    1500
  • flash存储器原理会导致启动失败回滚告警吗,是什么原因?

    ALM-4287373398告警表示存储系统启动时检测到版本回滚,通常与flash存储器中固件或配置数据损坏有关,需通过检查flash存储器的物理状态和日志来定位根因,flash存储器原理与启动失败回滚的关联flash存储器是存储设备中固件、配置文件以及部分元数据的核心载体,其工作原理基于浮栅晶体管,数据通过隧……

    2026年8月2日
    800
  • WooCommerce常规设置怎么做?新手建站必看的详细教程

    WooCommerce的常规设置核心在于完成基础店铺信息配置、支付网关对接以及物流运费计算,这是搭建独立站变现能力的基石,很多新手在搭建WordPress网站时,往往被琳琅满目的插件和复杂的代码劝退,WooCommerce作为全球最流行的电商解决方案之一,其魅力恰恰在于“开箱即用”的友好性,你不需要成为程序员……

    2026年6月19日
    2210
  • SSL证书过期后果有多严重?ssl证书过期影响网站排名

    SSL证书一旦过期,最直接且严重的后果是浏览器会向用户展示“不安全”的红色警告页面,导致网站流量断崖式下跌,同时搜索引擎排名大幅下滑,甚至面临数据泄露的法律风险,想象一下,你正兴致勃勃地准备在某个电商平台下单购买心仪已久的商品,点击“提交订单”的瞬间,屏幕突然弹出一个刺眼的红色警告,提示连接不安全,这种体验不仅……

    2026年6月22日
    3410
  • HTML短信验证怎么实现?短信验证码接口开发教程

    HTML短信验证通过在前端生成验证码并调用后端API发送,利用Session或Token机制校验用户身份,是保障账户安全与提升转化率的标准技术实现方案,在数字化运营中,短信验证早已不是简单的“收个码”那么简单,它构成了用户信任的基石,也是防止恶意注册的第一道防线,很多开发者在初期往往只关注功能实现,忽略了安全性……

    2026年6月11日
    3900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注