定位问题是,由于交换分区不足,导致编译出错。
解决思路就是增加交换分区空间,然后重新启动交换分区。方法如下(默认使用的是root用户):
1.创建用于交换分区的文件:
dd if=/dev/zero of=/swapfile bs=block_size count=number_of_block
注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=2048 代表设置 2G 大小 SWAP 分区。
如果使用dd增加空间报错"dd: failed to open '/swapfile': Text file busy"
这时候使用 swapoff -a 关闭,再使用上面的dd命令,就可以创建成功。
2.设置交换分区文件:
mkswap /swapfile
3.立即启用交换分区文件
swapon /swapfile
-----------------------------------------------------------------------------------------
下面是一些扩展:
1.可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
2.可以通过修改/etc/fstab 的内容来配置交换分区文件。
3.查看当前内存和交换分区分配大小 free -m