我无法在Vagrant linux机器上启动新的Meteor应用程序(在Mac上运行)。每次在Mongo中出现“未指定的未捕获异常”时它都会失败。我已经尝试了很多东西来实现这一目标,但即使使用最简单的设置,我也无法让项目运行。我会很感激任何建议。
我的步骤是:
curl https://install.meteor.com/ | sh
)上安装Meteor; meteor create app
); cd app; meteor
)我知道vagrant共享文件夹的权限很古怪,所以对于上面的第3步,我尝试了这个项目:
/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并且构建失败,我尝试使用--release 0.9.0
和--release 0.9.2-rc1
创建项目,并且无需解释即可完成下载。
答案 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与一些脚本和说明组合在一起:
答案 2 :(得分:3)
我遇到了类似的问题,试图在Windows上运行流星。似乎mongodb无法写入/ vagrant文件夹。我通过
解决了这个问题sudo mount --bind /home/vagrant/meteorapp/.meteor/ /vagrant/meteorapp/.meteor /
答案 3 :(得分:3)
这是解决我问题的answer。从Debian VMware虚拟机上的共享文件夹启动meteor项目(在Windows上运行)。
问题是mongodb无法在共享文件夹中创建数据文件,所以在这种情况下只需使用现有的mongodb进行流星项目:
export MONGO_URL=mongodb://localhost:27017/your_db
答案 4 :(得分:0)
做
vagrant reload --provision
解决了我的问题。 我认为原因可能是某些文件被破坏或被删除。