虚拟机安装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

相关推荐

  • acs云原生网络是什么?acs云原生网络配置方法

    阿里云ACK(容器服务Kubernetes版)通过其内置的CNI插件体系,实现了云原生网络的高性能、高可用与精细化管控,是当前企业构建现代化微服务架构的首选网络底座,在数字化转型的深水区,网络不再仅仅是连通性工具,而是业务稳定性的核心命脉,许多技术负责人在选型时,往往会被复杂的术语劝退,理解ACK网络的关键在于……

    2026年7月1日
    2200
  • HP服务器PE下拷贝文件失败怎么办?pe系统怎么复制文件到硬盘

    在HP服务器PE环境中拷贝文件,最快且最稳定的方式是通过挂载虚拟光驱或ISO镜像,利用PE内置的磁盘管理工具将数据写入本地硬盘或网络共享路径,全程无需重启进入操作系统,很多IT运维人员在面对HP ProLiant系列服务器时,常因硬件RAID卡驱动缺失或系统分区加密问题,陷入无法直接访问数据的困境,PE(预安装……

    2026年6月10日
    7100
  • 上海IDC报价和机位成本的关系

    上海IDC报价的底层逻辑很简单:机位成本决定报价下限,机房等级决定报价上限,两者叠加后的服务溢价才是最终报价,换句话说,你看到的每一份上海IDC报价单,拆开来看都是机位成本、带宽成本和运维成本的组合,其中机位成本占比最大,也最容易被忽视,上海IDC报价差异大的原因:机位成本不是简单的一个“柜子钱”很多企业在对比……

    2026年8月11日
    1600
  • html在线编程网站怎么用?免费好用的在线编程工具推荐

    HTML在线编程网站是开发者无需配置本地环境即可在浏览器中编写、运行和调试代码的高效工具,特别适合初学者入门、快速原型开发以及远程协作场景,在2026年的数字化工作流中,本地开发环境的配置依然占据大量时间成本,对于许多希望快速验证想法或进行轻量级编码的用户而言,云端IDE(集成开发环境)已成为主流选择,这类平台……

    服务器宽带 2026年6月9日
    3000
  • html5动画网站怎么做?html5动画制作教程

    HTML5动画网站通过原生代码实现跨平台流畅交互,相比传统Flash技术具有更好的SEO兼容性、加载速度与移动端适配能力,是当前企业官网升级的首选方案,在数字化营销的浪潮中,视觉体验直接决定了用户的留存率,传统的静态网页早已无法满足现代用户对于沉浸式浏览的需求,而HTML5动画技术凭借其无需插件、支持触摸交互以……

    服务器宽带 2026年6月11日
    3200
  • 服务器爆炸点位有哪些?,常见原因是什么?

    一类是吃鸡类游戏中轰炸区刷新概率最高的固定热点,另一类是大型游戏开服时玩家密集扎堆、导致服务器延迟飙升的地图坐标,很多玩家问“服务器爆炸点位有哪些”,问的其实是两件事,如果你玩的是《和平精英》或《PUBG》这类战术竞技游戏,你关心的是轰炸区往哪炸、怎么提前跑;如果你玩的是MMORPG或开放世界二次元游戏,你关心……

    2026年9月26日
    300
  • 南京租一台千兆口服务器每月预算多少,价格贵不贵

    在南京租一台千兆口服务器,每月预算通常在800元到2500元之间,主流配置月费约1500元,具体取决于硬件配置、带宽类型和机房等级,南京千兆口服务器月租的核心价格构成租一台千兆口服务器,预算主要花在三个地方:硬件配置、带宽类型和机房环境,每一项都直接影响最终报价,理解清楚才能避免花冤枉钱,硬件配置如何影响预算服……

    2026年8月9日
    900
  • FTP21端口被占用怎么解决?如何查看端口占用情况

    检查FTP 21端口是否被占用,最直接有效的方法是在命令行使用netstat或lsof命令查看监听状态,若发现端口已被其他进程占用,需通过任务管理器或kill命令终止冲突进程,在服务器运维或本地开发环境中,FTP服务虽然逐渐被SFTP取代,但在某些特定内网传输或老旧系统兼容场景中,21端口依然是关键入口,当新部……

    2026年6月22日
    1200
  • HTML图片等比显示怎么做?css实现图片等比例缩放

    在HTML中实现图片等比显示的核心方法是同时设置width和height属性,或仅设置其中一个而让浏览器自动计算另一个,配合CSS的object-fit属性可确保图片在容器内不失真缩放,很多前端开发者和网页设计师在初期都会遇到图片变形的问题,尤其是当图片原始尺寸与展示容器尺寸不匹配时,这种视觉上的拉伸或压缩不仅……

    2026年6月10日
    3700
  • 顶级网吧服务器有哪些值得选,网吧服务器配置怎么选?

    以万兆无盘系统为骨架,以高主频CPU、大容量NVMe固态硬盘和电竞级显卡为血液,同时兼顾多人在线稳定性和未来3-5年游戏升级冗余的高性能商用计算机,它并非单指某一台机器,而是一整套包含存储服务器、计算节点和万兆内网的分布式解决方案,顶级网吧服务器按需求分三大流派顶级的标准从来不是唯一的,不同业态对“顶级”的定义……

    服务器宽带 2026年11月4日
    000

发表回复

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