V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Changelog
zjgsamuel
V2EX  ›  VirtualBox

用 VirtualBox 的同学 有没有碰到过 win下 NTFS共享文件夹 无法做 hard linking 的问题啊?

  •  
  •   zjgsamuel · 2013-11-19 10:19:20 +08:00 · 4986 次点击
    这是一个创建于 4008 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在还是在win平台上开发 但是我想我的环境是 ubuntu 的
    参照了 打造 Mac 下的完美开发环境 http://www.imququ.com/post/my-dev-env-in-macos.html
    使用 VirtualBox 搭了一个ubuntu 的开发环境来,使用共享文件夹 做和win主机的代码交换。

    现在发现我运行一些实例代码的时候 一直会报错 检查了一下原因是我共享文件NTFS格式和ubuntu系统不一致导致的,网上也有类似问题:
    http://stackoverflow.com/questions/7719380/python-setup-py-sdist-error-operation-not-permitted
    https://www.virtualbox.org/ticket/818
    https://www.virtualbox.org/ticket/10085

    貌似 VirtualBox 也一直没有解决改问题,这个让我很郁闷,一直不想用FTP来访问开发环境,

    所以来问问大家,你们win下的开发环境是咋部署的呢? 或者有没有更加好的方案让我借鉴一下,万分感谢!
    16 条回复    1970-01-01 08:00:00 +08:00
    lululau
        1
    lululau  
       2013-11-19 10:32:02 +08:00   ❤️ 1
    用 Windows 文件共享,然后在 Linux 上用 smbfs 挂载试试

    http://www.samba.org/samba/smbfs/
    yushiro
        2
    yushiro  
       2013-11-19 12:08:04 +08:00
    如果只是共享源代码的话, 通过git吧。
    WIN下的远程源直接指定到ubuntu的IP上
    justan
        3
    justan  
       2013-11-19 13:40:37 +08:00
    用的 xp ?
    xp 不支持符号链接
    zjgsamuel
        4
    zjgsamuel  
    OP
       2013-11-19 14:18:17 +08:00
    @yushiro git 的话 每次更改都要更新 然后拉取 生产环境这么部署没有问题

    我想的是如何快速的开发那 远程登录进 这个还不如我直接操作VirtualBox 去也麻烦 ...
    zjgsamuel
        5
    zjgsamuel  
    OP
       2013-11-19 14:18:45 +08:00
    @justan 恩 现在的win 是 Server2008
    zjgsamuel
        6
    zjgsamuel  
    OP
       2013-11-19 14:35:08 +08:00
    我突然发现了 我需要一台 apple mini 或者再装一台专门用来开发的笔记本或者台式机装 ubuntu 系统...
    zjgsamuel
        7
    zjgsamuel  
    OP
       2013-11-19 14:37:49 +08:00
    我的 VirtualBox 版本是4.3.0 貌似最新版是4.3.2了 我先更新一下再看看
    yushiro
        8
    yushiro  
       2013-11-19 16:12:41 +08:00
    @zjgsamuel 不明白, 为什么要“远程登录进”?
    我的理解:
    开发机:Win,
    生产环境:Ubuntu

    在Win下写代码, git管理, 写完后git push 到ubuntu。
    在ubuntu下git pull, 然后编译之类的。


    如果你理想的状态不是这样, 那请详细描述一下。
    yangg
        9
    yangg  
       2013-11-19 16:38:02 +08:00
    不明白共享什么, 干嘛不直接用virtualbox的Shared Folders
    yushiro
        10
    yushiro  
       2013-11-19 17:10:46 +08:00
    btw: 如果你的生产环境是不需要GUI界面的, 那干嘛不用vargrant + ssh?
    zjgsamuel
        11
    zjgsamuel  
    OP
       2013-11-20 11:57:41 +08:00
    @yushiro 谢谢你的回复哈,我再阐述的明确些

    win下写代码 我想能快速实时能够看到代码的效果 按照你的方法 我就得不断的 git push 到ubuntu ,我嫌这个方式比较繁琐啦! 仅此而已...

    我的理想方式就是能够 在win下部署一个和生产环境一样的开发环境 能够在win下写代码然后马上可以预览到效果 而我理想的生产环境又是基于ubuntu的 所以这里有些冲突了

    主要是最新准备看看 meteor 发现按照之前的做法貌似压根就没法运行,提示错误
    [[[[[ ~/Project/myapp ]]]]]
    Unexpected mongo exit code 100. Restarting.
    Unexpected mongo exit code 100. Restarting.
    Initializing mongo database... this may take a moment.
    Unexpected mongo exit code 100. Restarting.
    Can't start mongod
    MongoDB had an unspecified uncaught exception.
    This can be caused by MongoDB being unable to write to a local database.
    Check that you have permissions to write to .meteor/local. MongoDB does
    not support filesystems like NFS that do not allow file locking.


    还有就是配置一些环境的时候提示
    making hard links in helloworld-2013.2.dev1.gc66465f...
    hard linking .testr.conf -> helloworld-2013.2.dev1.gc66465f
    error: Operation not permitted

    ln: failed to create hard link `Project/lnmp1.0-full.tar.gz' => `lnmp1.0-full.tar.gz': Invalid cross-device link

    说白了就是 VirtualBox 的共享文件夹(Shared Folders) 的问题了...

    不知道你平时win下的开发环境是怎么搭的?
    zjgsamuel
        12
    zjgsamuel  
    OP
       2013-11-20 11:58:36 +08:00
    @yangg 额 我说的 共享文件夹 就是你说的 Shared Folders 啦 ~~
    yushiro
        13
    yushiro  
       2013-11-20 12:09:01 +08:00
    @zjgsamuel 感觉你做的是WEB项目? 那为什么要发布到ubuntu? 不能直接从ubuntu上面访问win下的IIS(或其他web服务)?
    yushiro
        14
    yushiro  
       2013-11-20 12:10:08 +08:00
    还有, 既然WIN下的目录共享有问题, 能否以ubuntu下的目录为主, 然后“共享”或者SMB方式, 在WIN下访问?
    zjgsamuel
        15
    zjgsamuel  
    OP
       2013-11-20 12:33:43 +08:00
    @yushiro 对哦 我还可以试试这个方案 谢啦~

    我一直觉得web项目在LNMP 会比较好 ,只不过一直没有把工作的环境切回到非win 下面,这一步迟早要做的 哈~
    glasslion
        16
    glasslion  
       2014-03-03 20:27:28 +08:00
    @zjgsamuel
    快猛糙的解决方法:

    在setup.py里加上
    if os.environ.get('USER','') == 'vagrant':
    del os.link
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1507 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:19 · PVG 01:19 · LAX 09:19 · JFK 12:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.