Solaris 10에서 심볼릭 링크를 사용하여 tar 아카이브의 압축을 풀면 다음 오류가 발생합니다.
tar: lib/jre/: symbolic link failed: Not a directory
심볼릭 링크 lib/jre
가 가리키는 파일은 lib/jre1.8.0_46
tar 아카이브에도 있습니다. GNU tar를 사용하면 tar의 압축을 풀 수 있습니다. 그렇다면 여기서 문제는 무엇입니까?
답변1
Solaris에서 gnu tar를 사용하려는 경우. 그런 다음 인라인으로 살펴보십시오.
- Solaris 10: 해당 항목이 있는지 확인하세요
pkginfo SUNWgtar
. 일반적인 경로는 다음과 같습니다./usr/sfw/bin/gtar
pkg info gnu-tar
Solaris 11: "일반적인 경로는/usr/gnu/bin/tar
두 개의 심볼릭 링크를 사용합니다."를 수행하여/usr/sfw/bin/gtar
해당 경로가 있는지 확인합니다./usr/bin/gtar
댓글을 기반으로 정보를 업데이트합니다. gnu tar를 사용할 수 없는 경우 POSIX 호환 tar --format=posix
옵션을 만들 수 있습니다.
이는 GNU tar 버전 1.14부터 사용할 수 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다.그누 타르
답변2
발생한 오류를 보면 Not a directory
tar 아카이브의 심볼릭 링크가 다음과 같은 것이 분명합니다.
lib/jre/ -> lib/jre1.8.0_46
이는 귀하가 문자로 알려주신 내용과 다릅니다.
gtar
링크에 대해 불만이 없으면 링크가 끊어진 것입니다 .
안타깝게도 제한 사항에 대한 충분한 정보를 제공하지 않았습니다.
우리는 다음을 알아야 합니다:
- 어떤 유형의 tar 아카이브에 대해 이야기하고 있습니까? 유형을 얻을 수 있습니다.
star -t -print-artype < foo.tar.gz
- 아카이브의 정확한 항목은 무엇입니까? 를 통해 답변을 얻을 수 있습니다.
star -tv < foo.tar.gz pat='*jre*'
사용하여 생성된 아카이브는 gtar
POSIX와 호환되지 않으며 아카이브 중간에 아카이브 유형을 변경할 수도 있습니다. 이것이 매우 이상한 결과를 낳을 수 있다는 것을 이해해야 합니다.
이를 얻으려면 star
다음에서 최신 버전을 얻는 것이 좋습니다 schilytools
.https://sourceforge.net/projects/schilytools/files/그리고 그것들을 컴파일하세요.