如何在aarch64 Ubuntu上构建DuckDB R包并避免磁盘空间不足
解决AWS ARM Ubuntu实例构建DuckDB 1.3.1空间不足问题
临时目录优化
- 切换临时文件存储路径:如果实例挂载了更大的磁盘分区(比如额外EBS卷),先设置临时目录到该分区,再启动R构建:
也可以在R会话内直接配置:export TMPDIR=/path/to/your/larger/disk/tmp RSys.setenv(TMPDIR="/path/to/your/larger/disk/tmp") - 清理现有临时文件:手动清空/tmp下的冗余文件,释放即时空间:
sudo rm -rf /tmp/*
释放根目录空间
- 清理系统冗余包:移除Ubuntu中无用的旧包和缓存:
sudo apt autoremove --purge sudo apt clean sudo apt autoclean - 压缩系统日志:削减journal日志占用的空间:
sudo journalctl --vacuum-size=500M
优化构建过程
- 调整编译并行数:在
~/.R/Makevars中限制并行编译的进程数,减少临时文件的同时生成量:MAKEFLAGS += -j2 # 根据实例CPU核心数调整,比如2核设-j2,4核可设-j4 - 优先使用预编译包:如果无需源码定制,直接安装预编译版本跳过源码构建:
install.packages("duckdb", type="binary")
扩容实例存储
- 扩展根EBS卷:通过AWS控制台或CLI增加根分区的EBS卷容量后,在系统中扩展文件系统:
sudo growpart /dev/nvme0n1 1 sudo resize2fs /dev/nvme0n1p1
内容的提问来源于stack exchange,提问作者Art
相关产品推荐
相关产品推荐

