Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Can';t在一个流浪者盒子上创建正在工作的meteor.js项目_Mongodb_Meteor_Vagrant - Fatal编程技术网

Mongodb Can';t在一个流浪者盒子上创建正在工作的meteor.js项目

Mongodb Can';t在一个流浪者盒子上创建正在工作的meteor.js项目,mongodb,meteor,vagrant,Mongodb,Meteor,Vagrant,我不能在一个流浪的linux机器上(在Mac上运行)启动一个新的Meteor应用程序。它每次都失败,在Mongo中出现一个“未指定的未捕获异常”。我已经尝试了很多方法,但即使是最简单的设置,我也无法让项目运行。如有任何建议,我将不胜感激 我的步骤是: 创建一个完全干净的流浪者盒子(“ubuntu/trusty64”) 在新盒子上安装Meteor(curlhttps://install.meteor.com/ |sh) 选择创建项目的位置 创建一个新的Meteor项目(Meteor创建应用程序)

我不能在一个流浪的linux机器上(在Mac上运行)启动一个新的Meteor应用程序。它每次都失败,在Mongo中出现一个“未指定的未捕获异常”。我已经尝试了很多方法,但即使是最简单的设置,我也无法让项目运行。如有任何建议,我将不胜感激

我的步骤是:

  • 创建一个完全干净的流浪者盒子(“ubuntu/trusty64”)
  • 在新盒子上安装Meteor(
    curlhttps://install.meteor.com/ |sh
  • 选择创建项目的位置
  • 创建一个新的Meteor项目(
    Meteor创建应用程序
  • 启动项目(
    cd-app;meteor
  • 我知道vagrant共享文件夹的权限很奇怪,因此对于上面的第3步,我尝试将项目放入:

  • 在共享的来宾/主机文件夹中,
    /vagrant
  • 在Vagrant主文件夹(
    /home/Vagrant
    )的子目录中
  • /
    的子目录中(权限设置为
    vagrant:vagrant
    ),以及
  • 在权限设置为
    root:root
    /
    子目录中,使用
    sudo meteor create app
    创建项目,并使用
    sudo meteor
    运行项目
  • 在所有情况下,我都会看到以下错误:

    => Started proxy.
    Unexpected mongo exit code 100. Restarting.
    Unexpected mongo exit code 100. Restarting.
    Unexpected mongo exit code 100. Restarting.
    Can't start Mongo server.
    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.
    

    我不知道这是一个流浪问题(尽管我认为不是,考虑到我的尝试)还是一个Meteor问题,但我怀疑这是Meteor(或者它的许多依赖项之一)。我怀疑这是权限问题,因为它在以root用户身份运行时失败。我曾尝试从头开始构建meteor,但构建失败,我曾尝试使用
    --0.9.0版
    --0.9.2-rc1版
    创建项目,但下载过程毫无解释地被终止。

    我在windows上运行meteor时遇到类似问题。mongodb似乎无法写入/vagrant文件夹。我通过这样做解决了这个问题

    sudo mount--bind/home/vagrant/meteorapp/.meteor//vagrant/meteorapp/.meteor/

    (从中获得)

    (1)在第2步“在新盒子上安装Meteor(curl | sh)”之后

    您应该在Mac主机上看到myApp文件夹(与文件相同的文件夹)

    (2) 在myApp文件夹中,您将看到默认的.meteor文件夹,如果没有,则创建一个名为local的文件夹

    user:/vagrant$ cd myApp/.meteor
    user:/vagrant/myApp/.meteor$ mkdir local
    
    (3) 在/home/vagrant中创建相同的文件夹结构

    user:/vagrant/myApp/.meteor$ cd ~
    ~$mkdir -p myApp/.meteor/local
    
    (4) 将/vagrant/myApp/.meteor/local链接或挂载到/home/vagrant/myApp/.meteor/local

    sudo mount --bind /home/vagrant/myApp/.meteor/local/ /vagrant/myApp/.meteor/local/
    
    或者永久地

    echo “sudo mount --bind /home/vagrant/myApp/.meteor/local/ /vagrant/myApp/.meteor/local/” >> ~/.bashrc && source ~/.bashrc
    
    (5) 现在你可以启动流星了

    ~$cd /vagrant/myApp
    user:/vagrant/myApp$meteor
    
    我挂载本地文件夹而不是文件夹的原因是,您仍然可以编辑Mac主机上文件夹内的文件。你可以用你想要的任何名称替换myApp


    希望这有帮助

    我正在使用Windows主机,但这可能也适用于您的情况

    导致问题的唯一文件夹是
    /meteor/local
    。如果您使用符号链接将其重新定位到共享
    /vagrant
    文件夹之外,您应该能够运行meteor应用程序

    但是,要在共享文件夹中放置符号链接,您需要在VM中启用符号链接。。。这需要开始作为管理员流浪汉

    我在这里整理了一个Vagrant文件,其中包含一些脚本和说明:

    这是一个解决我问题的方法。从Debian VMware虚拟机(在Windows上运行)上的共享文件夹启动meteor项目

    问题是mongodb无法在共享文件夹中创建数据文件,因此在这种情况下,只需使用现有mongodb for meteor项目:

    export MONGO_URL=mongodb://localhost:27017/your_db
    

    解决了我的问题。
    我想原因可能是一些文件被损坏或删除。

    谢谢。不幸的是,我遇到了同样的问题与您的流浪文件和指示。我认为这个问题是针对Mac电脑的。我怀疑(尽管我还没有确认)如果我使用rsync(而不是任何其他文件系统共享系统)设置复制,问题就会消失。谢谢,很抱歉,您没有解决这个问题。我试着在windows上使用rsync进行设置,但最初对我不起作用。“流浪者”似乎是一个非常好的主意,但似乎需要一些工作才能使它在任何地方都能开箱即用。祝你好运这应该是市场的正确答案。也适用于VMWare这也修复了意外的mongo出口代码45。MongoDB无法在Windows 7中打开文件或获得文件锁。解决方案非常棒。我唯一不能让它工作的是《流浪汉》中的流星重置。有什么想法吗?@adamsoh:如果你用的是上面的解决方案。流星重置将工作,如果你没有创建一个永久安装。我做的是第一件事,做一个流浪汉。这将强制重新启动,并清除装载点。然后进入/vagrant//目录并运行meteor reset。重置完成后。重复上述解决方案中的步骤2和步骤4。你回到了原来的状态,可以运行和启动meteor,但现在你有了一个重置状态。这个技巧也适用于它们的
    node\u模块
    目录中的节点项目
    export MONGO_URL=mongodb://localhost:27017/your_db
    
    vagrant reload --provision