解决 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
相关推荐
小生不才yz8 小时前
(三)命令管理-命令历史-history命令的使用
linux
空灵之海10 小时前
Docker部署Nexus Repository Community Edition
运维·docker·容器
aramae10 小时前
Linux开发工具入门:零基础到熟练使用(二)
linux·运维·服务器·网络·笔记
nassi_10 小时前
I/O详解
linux·php
咖啡教室11 小时前
程序员应该掌握的网络命令telnet、ping和curl
运维·后端
泡沫冰@11 小时前
shell编程:sed - 流编辑器(6)
linux
爱吃喵的鲤鱼11 小时前
仿muduo库One Thread One Loop主从Reactor模型实践——介绍
linux·c++
庄风子11 小时前
In VI, when an arrow key is pressed, a character (e.g. “A“) is sent.
linux·vi
优秘智能UMI12 小时前
UMI企业智脑智能营销:多平台视频矩阵引领营销新潮流
大数据·运维·人工智能·ai·矩阵·aigc
荣光波比12 小时前
ZooKeeper与Kafka分布式协调系统实战指南:从基础原理到集群部署
运维·分布式·zookeeper·kafka·云计算