解决 Ubuntu 20.04 虚拟机中 catkin_make 编译卡死问题

完整解决步骤

1. 禁用当前交换文件

bash 复制代码
sudo swapoff /swapfile

2. 删除旧的交换文件

bash 复制代码
sudo rm /swapfile

3. 使用更可靠的创建方法

bash 复制代码
# 使用 dd 命令创建交换文件(更兼容但较慢)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

# 或者使用 truncate 命令(快速创建)
sudo truncate -s 4G /swapfile

4. 设置正确权限

bash 复制代码
sudo chmod 600 /swapfile

5. 格式化为交换空间

bash 复制代码
sudo mkswap /swapfile

6. 启用交换文件

bash 复制代码
sudo swapon /swapfile

7. 永久生效配置

bash 复制代码
# 添加到 /etc/fstab
# 可以sudo cat /etc/fstab 一下看看是否有这一行,有 /swapfile none swap sw 0 0 字样则不需要执行
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 验证配置
sudo swapon --show
free -h
  1. 一键 配置生效
    一键执行:一个脚本执行即可
bash 复制代码
#!/bin/bash
sudo swapoff /swapfile
sudo rm /swapfile
# 使用 dd 命令创建交换文件(更兼容但较慢)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

# 或者使用 truncate 命令(快速创建)
sudo truncate -s 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 添加到 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 验证配置
sudo swapon --show
free -h
相关推荐
RisunJan6 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯7 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者7 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn7 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
小顿的企业观察8 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官8 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互8 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
大飞记Python10 小时前
Linux命令速查手册(测试开发4年实战总结,附PDF)
linux·网络·pdf
liguojun202510 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节
Promise微笑11 小时前
红外分辨率 160×120、320×240、384×288 与 640×480实战选型指南
大数据·运维·人工智能·物联网