我正在尝试构建 GCC 10,最后,我失败了make install
(不过,我尝试运行sudo checkinstall -D --install=no --fstrans=no
而不是make install
,所以我可以构建 .deb 包)。失败的地方在这里:
...
/bin/bash /mnt/loop/tmp/pi/gcc-10.1.0_source/gcc-10.1.0/gcc/../mkinstalldirs /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include
rm -rf /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed
mkdir /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed
chmod a+rx /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed
echo `${PWDCMD-pwd}`
/mnt/loop/tmp/pi/gcc-10.1.0_build/gcc
(cd `${PWDCMD-pwd}`/include ; \
tar -cf - .; exit 0) | (cd /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include; tar xpf - )
(cd `${PWDCMD-pwd}`/include-fixed ; \
tar -cf - .; exit 0) | (cd /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed; tar --ignore-failed-read -xpf - )
tar: ./python3.5: Cannot change mode to rwxrwxrwx: No such file or directory
tar: Exiting with failure status due to previous errors
Makefile:3861: recipe for target 'install-headers-tar' failed
make[2]: *** [install-headers-tar] Error 2
更具体地说,我已${PWDCMD-pwd}
解决 /mnt/loop/tmp/pi/gcc-10.1.0_build/gcc;然后这部分失败了:
(cd `${PWDCMD-pwd}`/include-fixed ; \
tar -cf - .; exit 0) | (cd /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed; tar --ignore-failed-read -xpf - )
tar: ./python3.5: Cannot change mode to rwxrwxrwx: No such file or directory
所以,这块要进入/mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/include-fixed
,并将内容复制到/usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed
using中tar
。
源目录/mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/include-fixed
确实存在并且包含内容:
$ ls -la /mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/include-fixed/
total 68
drwxr-xr-x 5 pi pi 4096 Feb 2 20:42 .
drwxr-xr-x 21 pi pi 36864 Feb 3 01:21 ..
drwxr-xr-x 2 pi pi 4096 Feb 2 06:26 arm-linux-gnueabihf
-rw-r--r-- 1 pi pi 6171 Feb 2 20:42 limits.h
drwxr-xr-x 3 pi pi 4096 Feb 2 06:26 python2.7
lrwxrwxrwx 1 pi pi 10 Feb 2 06:26 python3.5 -> python3.5m
drwxr-xr-x 3 pi pi 4096 Feb 2 06:26 python3.5m
-rw-r--r-- 1 pi pi 750 Feb 2 20:42 README
-rw-r--r-- 1 pi pi 330 Feb 2 06:26 syslimits.h
因此,可以看出导致./python3.5
“无法将模式更改为 rwxrwxrwx”的文件存在,并且实际上是符号链接。
事实上,此时,甚至目标目录也已填充 - 并且至少符号./python3.5
链接已被复制:
$ ls -la /usr/lib/gcc/arm-linux-gnueabihf/10.1.0/include-fixed/
total 36
drwxr-xr-x 5 root root 4096 Feb 3 01:21 .
drwxr-xr-x 5 pi pi 4096 Feb 3 01:21 ..
drwx------ 2 root root 4096 Feb 2 06:26 arm-linux-gnueabihf
-rw-r--r-- 1 pi pi 6171 Feb 2 20:42 limits.h
drwx------ 3 root root 4096 Feb 3 01:21 python2.7
lrwxrwxrwx 1 pi pi 10 Feb 2 06:26 python3.5 -> python3.5m
drwx------ 3 root root 4096 Feb 3 01:21 python3.5m
-rw-r--r-- 1 pi pi 750 Feb 2 20:42 README
-rw-r--r-- 1 pi pi 330 Feb 2 06:26 syslimits.h
所以,我想我“只是”必须说服tar
不要崩溃,如果它有权限问题 - 我想我会通过使用tar --ignore-failed-read -xpf -
而不是原来tar xpf -
的/mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/Makefile
)来做到这一点 - 但显然,从上面的日志来看,这并不'不工作。
在这种情况下我能做些什么来说服tar
不要在这里崩溃,这样我就可以完成我的make install
(即checkinstall
)?
答案1
蹩脚的解决方法,但是 - 由于符号链接相对于其自己文件夹中的源,我只是这样做:
mv /mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/include-fixed/python3.5 /tmp/
...摆脱它 - 这确实过去了。我的目的是在目标目录中恢复它 - 但现在我遇到了其他错误......