在资源极其有限的 VPS 上使用 Homebrew 安装大型工具(如 CMake)通常会遇到内存不足、编译失败等问题。
在这篇文章中,我将分享如何在 仅 512MB 内存的 VPS 上通过 启用虚拟内存(Swap) 成功安装 cmake
的完整流程。
由于 cmake
的安装过程可能需要超过 1GB 的内存,我们可以通过增加 Swap 空间(即硬盘模拟内存)来避免编译过程 OOM(内存溢出)的问题。
# 创建一个 1GB 的 Swap 文件
sudo fallocate -l 1G /swapfile
# 如果 fallocate 不可用,可使用 dd 命令代替:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
# 设置文件权限为 600
sudo chmod 600 /swapfile
# 格式化为 swap 格式
sudo mkswap /swapfile
# 启用 swap
sudo swapon /swapfile
# 验证 swap 是否启用成功
swapon --show
# 添加到 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
配置环境变量(添加到 .bashrc
或 .zshrc
):
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install cmake
整个编译过程会非常耗时(尤其是第一次),但在启用了 swap 之后,即使只有 512MB RAM,也可以稳定编译完成!
cmake --version
输出应类似于:
cmake version 3.xx.x
htop
监控内存和 swap 使用情况。sudo swapoff /swapfile
在 Ubuntu 中,如果系统自带了 swap 文件,你可以通过以下方法查看其大小:
执行以下命令:
sudo swapon --show
该命令会显示所有活跃的 swap 分区或文件,并包含它们的大小信息。
示例输出:
NAME TYPE SIZE USED PRIO
/swapfile file 1G 0B -2
在这个例子中,/swapfile
的大小是 1GB。
/swapfile
的实际大小如果你想查看 swap 文件本身的大小,可以使用:
ls -lh /swapfile
这会显示 swapfile
的大小,例如:
-rw------- 1 root root 1.0G Jun 10 12:34 /swapfile
这里显示的是 1GB 大小的 swap 文件。
如果你发现默认的 swap 文件太小,可以通过以下步骤调整其大小:
关闭 swap
sudo swapoff /swapfile
修改 swap 文件大小
sudo fallocate -l 2G /swapfile # 例如,修改为 2GB
重新格式化并启用 swap
sudo mkswap /swapfile
sudo swapon /swapfile
验证
sudo swapon --show
在低配 VPS 上编译大型工具并非不可能,只需合理使用虚拟内存(swap),就能绕过 RAM 限制。通过本文提供的步骤,我成功在一台只有 512MB 内存的 VPS 上完成了 cmake
的安装。希望对你也有所帮助!
Back To Top