错误提示
➜ WORKING_DIRECTORY repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.1_r35
Traceback (most recent call last):
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/main.py", line 531, in <module>
_Main(sys.argv[1:])
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/main.py", line 507, in _Main
result = repo._Run(argv) or 0
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/main.py", line 180, in _Run
result = cmd.Execute(copts, cargs)
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/subcmds/init.py", line 399, in Execute
self._SyncManifest(opt)
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/subcmds/init.py", line 234, in _SyncManifest
clone_bundle=not opt.no_clone_bundle):
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/project.py", line 1231, in Sync_NetworkHalf
self._UpdateHooks()
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/project.py", line 2312, in _UpdateHooks
self._InitHooks()
File "/mnt/winShare/worksp/asop/WORKING_DIRECTORY/.repo/repo/project.py", line 2341, in _InitHooks
os.symlink(os.path.relpath(stock_hook, os.path.dirname(dst)), dst)
OSError: [Errno 13] Permission denied
可以看到创建symlink的时候出问题了。
所以,我们换一个姿势看报错:
➜ winShare ln -s /home/test/sublime /mnt/winShare/
ln: 无法创建符号链接'/mnt/winShare/sublime': 权限不够
➜ winShare sudo ln -s /home/test/sublime /mnt/winShare/
[sudo] test 的密码:
ln: 无法创建符号链接'/mnt/winShare/sublime': 不支持的操作
错误原因
在摸索的过程中发现了一个闪光点:
因为在linux中使用虚拟VMware共享工具访问了Windows的共享文件实际上为另一个分区;
而单单”ln”命令,则建立一个硬链接,硬链接是不能跨分区,所以会产生错误。
然而,我这里用的是软链接,软链接可是号称可以在交叉文件系统(即跨不同文件系统,如ext4和ntfs)中创建的。
由于CIFS协议的特性,不支持你在远程文件系统上更改inides。所以,软链接不能直接在cifs文件系统上创建。
使用Windows Services for Unix可以帮你实现这个操作。目前最新版本是很多年以前的sfu3.5。