上下文:我使用的是 Ubuntu VM (VirtualBox)。我创建的虚拟机的磁盘空间有限。我对它的使用已经超出了我最初的设想。我正在使用一个大型分析/设计环境(Matlab),它允许我部署以其语言编写的应用程序。如果安装了正确的运行时,这些应用程序可以在其他平台上运行。在这个开发周期中,我发现自己在不同版本的 Matlab 及其相关的运行时之间切换。由于虚拟磁盘较小,我正在卸载某个版本的 Matlab 或其运行时版本,以便安装其他东西。安装是通过互联网进行的,不幸的是,我的带宽适中,适合家庭使用。
我没有卸载并重新安装,而是尝试通过临时交换运行时并将其存储在主机 Windows 操作系统的更大磁盘中来节省时间。如果我们假设主机操作系统用户的主文件夹安装为 /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
大多数这些符号链接都指向同一目录中存在的文件。我不认为这是由于与主机 Windows 10(64 位)文件系统不兼容造成的,因为 tar 的内容被封装在 tar 球中。 创建 tar 球时出现此类符号链接问题的其他原因是什么?
我尝试从上面归档一个符号链接及其目标,这没有导致任何符号链接错误:
cd v912/runtime/glnxa64/
tar czf /media/sf_HostOSusr/tmp/Test.zip libmwmclmcrrt.so libmwmclmcrrt.so.9.12