문맥:저는 Ubuntu VM(VirtualBox)을 사용하고 있습니다. 내가 만든 가상 머신에는 디스크 공간이 제한되어 있습니다. 원래 생각했던 것보다 활용도가 더 높아졌습니다. 저는 해당 언어로 작성된 애플리케이션을 배포할 수 있는 대규모 분석/설계 환경(Matlab)을 사용하고 있습니다. 올바른 런타임이 설치되어 있으면 이러한 애플리케이션을 다른 플랫폼에서 실행할 수 있습니다. 이 개발 주기 동안 저는 Matlab의 여러 버전과 관련 런타임 사이를 전환하는 것을 발견했습니다. 가상 디스크가 작기 때문에 다른 것을 설치하기 위해 특정 버전의 Matlab 또는 해당 런타임을 제거하고 있습니다. 설치는 인터넷을 통해 이루어졌지만 불행히도 집에서 사용하기에는 적당한 대역폭이 있습니다.
제거하고 다시 설치하는 대신 런타임을 일시적으로 교체하고 이를 호스트 Windows OS의 더 큰 디스크에 저장하여 시간을 절약하려고 했습니다. 호스트 OS 사용자의 홈 폴더가 /media/sf_HostOSusr로 마운트되고 런타임 폴더 트리 루트가 /usr/local/MATLAB/MATLAB_Runtime/v912에 있다고 가정하면:
cd /usr/local/MATLAB/MATLAB_Runtime/
tar czf \
/media/sf_HostOSusr/VendorApp/matlab/20230425.1502%usr%local%MATLAB%MATLAB_Runtime%V912.tgz \
v912
수십 개의 오류가 발생합니다.
tar: v912/bin/glnxa64/libmwfftw3f_mpi.so.3: Cannot create symlink to ‘libmwfftw3f_mpi.so.3.5.8’: Operation not permitted
tar: v912/bin/glnxa64/libPDFRes.so.7: Cannot create symlink to ‘libPDFRes.so.7.1’: Operation not permitted
tar: v912/bin/glnxa64/libmwfftw3f.so.3: Cannot create symlink to ‘libmwfftw3f.so.3.5.8’: Operation not permitted
<...snip...>
tar: v912/runtime/glnxa64/libmwmclmcrrt.so: Cannot create symlink to ‘libmwmclmcrrt.so.9.12’: Operation not permitted
tar: v912/sys/java/jre/glnxa64/jre/lib/amd64/server/libjsig.so: Cannot create symlink to ‘../libjsig.so’: Operation not permitted
tar: v912/bin/glnxa64/libMatlabDataArray.so: Cannot create symlink to ‘../../extern/bin/glnxa64/libMatlabDataArray.so’: Operation not permitted
tar: Exiting with failure status due to previous errors
이러한 기호 링크의 대부분은 동일한 디렉터리에 존재하는 파일을 가리킵니다. tar의 내용이 tar 볼에 캡슐화되어 있기 때문에 이것이 호스트 Windows 10(64비트) 파일 시스템과의 비호환성 때문이라고 생각하지 않습니다. 타르볼을 생성할 때 이러한 심볼릭 링크 문제가 발생하는 다른 이유는 무엇입니까?
위에서 심볼릭 링크와 해당 대상을 보관하려고 시도했지만 심볼릭 링크 오류가 발생하지 않았습니다.
cd v912/runtime/glnxa64/
tar czf /media/sf_HostOSusr/tmp/Test.zip libmwmclmcrrt.so libmwmclmcrrt.so.9.12