编译前
sudo yum -y install libxslt-devel libxml2-devel
编译
building 'lxml.etree' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc -Isrc/lxml/includes -I/usr/local/python370/include/python3.7m -c src/lxml/etree.c -o build/temp.linux-aarch64-3.7/src/lxml/etree.o -w
gcc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Compile failed: command 'gcc' failed with exit status 4
creating tmp
cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitj0ap0ipk.c -o tmp/xmlXPathInitj0ap0ipk.o
cc tmp/xmlXPathInitj0ap0ipk.o -L/usr/lib64 -lxml2 -o a.out
error: command 'gcc' failed with exit status 4
内部错误解决
# 1.建立一个1G的大文件(文件大小根据需要的SWAP分区大小建立)
sudo mkdir -p /var/swap/
sudo dd if=/dev/zero of=/var/swap/swapfile0 bs=4M count=512
# 2.将文件格式化成swap分区
sudo mkswap /var/swap/swapfile0
# 3.写入到配置文件/etc/fstab, 这样每次重启系统的时候就会自动加载 swap 文件了.
/var/swap/swapfile0 swap swap defaults 0 0
# 4.让配置文件生效
sudo swapon -a
# 或者 激活 swap 文件
sudo swapon /var/swap/swapfile0
# 5.因为默认/swapfile其他人可读,所以不安全,更改权限为600
sudo chmod 600 /var/swap/swapfile0
删除
# 1.先确定准备需要删除的swap分区没有在使用:
swapon -s
# 2.禁用需要删除的swap分区
swapoff /var/swap/swapfile0
# 3.删除配置文件对应的swap
# 4.删除文件
rm -f /var/swap/swapfile0
重要:如果将新增的swap文件放在内置sdcard上,可能会因为sdcard读写操作太频繁,造成设备重启,所以建议新增一个usb设备,存放swap文件,使用命令如下:
# 从usb存储中新建一个分区,用于放置swap
mkdir -p /home/pi/my/usb_3
fdisk /dev/sda # 选择 n,p
mkfs -t ext4 /dev/sda4
sudo mount /dev/sda4 /home/pi/my/usb_3
# 生成swap文件
sudo dd if=/dev/zero of=/home/pi/my/usb_3/swapfile0 bs=4M count=512
sudo mkswap /home/pi/my/usb_3/swapfile0
sudo swapon /home/pi/my/usb_3/swapfile0
# 编译过程中监控空间使用情况
while true; do free -m; sleep 3; done