트릭 tar "모드를 rwxrwxrwx로 변경할 수 없습니다: 해당 파일이나 디렉터리가 없습니다"?

트릭 tar "모드를 rwxrwxrwx로 변경할 수 없습니다: 해당 파일이나 디렉터리가 없습니다"?

GCC 10을 빌드하려고 했는데 결국 실패했습니다 (그러나 대신 make install실행을 시도했기 때문에 .deb 패키지를 빌드할 수 있었습니다). 실패한 부분은 다음과 같습니다.sudo checkinstall -D --install=no --fstrans=nomake install

...
/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사용 하여 복사합니다 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그러면 "Cannot Change mode to 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 installcheckinstall

답변1

하지만 해결 방법은 부족합니다. 심볼릭 링크는 자체 폴더의 소스에 상대적이므로 다음과 같이 합니다.

mv  /mnt/loop/tmp/pi/gcc-10.1.0_build/gcc/include-fixed/python3.5 /tmp/

...제거하세요. 이건 통과됩니다. 내 의도는 대상 디렉터리에 복원하는 것이었지만 이제 다른 오류가 발생합니다...

관련 정보