无法在流浪盒上创建工作的meteor.js项目

时间:2014-09-07 16:33:53

标签: mongodb meteor vagrant

我无法在Vagrant linux机器上启动新的Meteor应用程序(在Mac上运行)。每次在Mongo中出现“未指定的未捕获异常”时它都会失败。我已经尝试了很多东西来实现这一目标,但即使使用最简单的设置,我也无法让项目运行。我会很感激任何建议。

我的步骤是:

  1. 创建一个完全干净的Vagrant框(“ubuntu / trusty64”);
  2. 在新方框(curl https://install.meteor.com/ | sh)上安装Meteor;
  3. 选择创建项目的位置;
  4. 创建一个新的Meteor项目(meteor create app);
  5. 启动项目(cd app; meteor
  6. 我知道vagrant共享文件夹的权限很古怪,所以对于上面的第3步,我尝试了这个项目:

      共享的访客/主机文件夹中的
    1. /vagrant
    2. 位于Vagrant主文件夹(/home/vagrant)的子目录中,
    3. 位于/的子目录中(权限设置为vagrant:vagrant),
    4. 位于/的子目录中,权限设置为root:root,项目使用sudo meteor create app创建,并使用sudo meteor
    5. 运行

      在所有情况下,我都会看到此错误:

      => 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并且构建失败,我尝试使用--release 0.9.0--release 0.9.2-rc1创建项目,并且无需解释即可完成下载。

5 个答案:

答案 0 :(得分:33)

(1)在步骤2'在新方框上安装Meteor(curl https://install.meteor.com/ | sh)'

user$ cd /vagrant
user:/vagrant$ meteor create myApp

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

(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

我挂载本地文件夹而不是< .meteor>的原因文件夹是你仍然可以在< .meteor>内编辑文件。 Mac主机上的文件夹。您可以用您想要的任何名称替换myApp

希望这个帮助

答案 1 :(得分:4)

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

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

但是,要将符号链接放在共享文件夹中,您需要在VM中启用符号链接...这需要以管理员身份启动Vagrant。

我将Vagrantfile与一些脚本和说明组合在一起:

https://github.com/ElectronVector/vagrant-meteor

答案 2 :(得分:3)

我遇到了类似的问题,试图在Windows上运行流星。似乎mongodb无法写入/ vagrant文​​件夹。我通过

解决了这个问题

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

(来自https://gist.github.com/gabrielhpugliese/5855677

答案 3 :(得分:3)

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

问题是mongodb无法在共享文件夹中创建数据文件,所以在这种情况下只需使用现有的mongodb进行流星项目:

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

答案 4 :(得分:0)

vagrant reload --provision

解决了我的问题。 我认为原因可能是某些文件被破坏或被删除。