未能启动 Homestead Vagrant Box
Posted
技术标签:
【中文标题】未能启动 Homestead Vagrant Box【英文标题】:Failure to launch Homestead Vagrant Box 【发布时间】:2016-11-19 01:31:56 【问题描述】:我正在关注Laravel Tutorial,它指示我安装宅基地流浪者盒子;我被困在作曲家部分。
我使用 Ubuntu 14.04 LTS(64 位)并通过 virtualbox 5.0.24r108355 (amd64) 运行 Vagrant。显然 Homestead 与 virtualbox 5.1 有冲突。
我对 Homestead 的理解是它会设置
Ubuntu 16.04
Git
php 7.0
HHVM
nginx
mysql
MariaDB
Sqlite3
Postgres
Composer
Node (With PM2, Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd
以下部分证实了这一点:16.04 LTS 安装。
yhk@home:~/Homestead$ vagrant ssh
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Fri Jul 15 13:20:08 2016 from 10.0.2.2
但是,当我尝试vagrant up
时,它失败了。显然,我已经在使用作曲家了。我该如何继续修复这个故障并让 vagrant 正常运行?
yhk@home:~/Homestead$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
yhk@home:~/Homestead$ vagrant provision
==> default: Running provisioner: file...
==> default: Running provisioner: shell...
default: Running: inline script
==> default: Running provisioner: shell...
default: Running: inline script
==> default: Running provisioner: shell...
default: Running: /tmp/vagrant-shell20160715-14549-1a6hi0t.sh
==> default: Running provisioner: shell...
default: Running: script: Creating Site: homestead.app
==> default: Running provisioner: shell...
default: Running: script: Restarting Nginx
==> default: Running provisioner: shell...
default: Running: script: Creating MySQL Database
==> default: Running provisioner: shell...
default: Running: script: Creating Postgres Database
==> default: Running provisioner: shell...
default: Running: script: Clear Variables
==> default: Running provisioner: shell...
default: Running: inline script
==> default: You are already using composer version 1.1.3 (stable channel).
==> default: Running provisioner: shell...
default: Running: /tmp/vagrant-shell20160715-14549-l87w5y.sh
我认为设置正确...
yhk@home:~/Homestead$ ls
CHANGELOG.md composer.lock init.bat LICENSE.txt scripts Vagrantfile
composer.json homestead init.sh readme.md src
yhk@home:~/.homestead$ ls
after.sh aliases Homestead.yaml Homestead.yaml~
再一次,我该如何继续解决 composer 问题并让 vagrant 启动并运行?
【问题讨论】:
我认为您对 composer 没有意见。供应商运行并得出结论,不需要对该软件进行任何更改。除非你在某处有错误。 在我看来,您可以将vagrant ssh
发送到该框内,就好像它实际上已经启动并运行一样。除了因为你已经是最新的而没有运行作曲家更新之外,是什么让你认为它不是?
啊-也许我只是迷失在流浪者/宅基地的运作方式。当我使用 anaconda 3 时,我可以从提示符中判断我所处的环境。我可以用vagrant ssh
看到这一点,但vagrant up
没有。
我的后续问题是 - ~/Homestead
到底是做什么的?我是否必须在此目录中创建所有项目?我不能在(比如说)~/repository/php/ 中创建项目吗?我问的原因是vagrant up
似乎在其他地方不起作用。 composer require laravel/homestead --dev
在~/repository/php
中不起作用,表示找不到命令作曲家。 composer require laravel/homestead --dev
yhk@home:~/repository/php$ vagrant up
表示“运行此命令需要 Vagrant 环境或目标机器。运行 vagrant init
以创建新的 Vagrant 环境。或者,从 @987654337 获取目标机器的 ID @ 运行这个命令。最后一个选择是切换到一个带有 Vagrantfile 的目录,然后再试一次。 yhk@home:~/repository/php$ composer require laravel/homestead --dev
"没有找到命令'composer',你的意思是:来自包'mime-support'的命令'compose' (main) composer: command not found"
【参考方案1】:
您是否尝试过使用 sudo 权限运行 vagrant? cd 到 Homestead 文件夹并执行
sudo vagrant up
然后查看错误是否仍然存在。有时这是与权限相关的问题。
【讨论】:
使用sudo
运行 Vagrant 会使您的权限问题变得更糟,而不是更好。
我有一个类似的情况,vagrant 可以在我的机器上运行的唯一方法是使用 sudo。我只是说试试看(笑)....以上是关于未能启动 Homestead Vagrant Box的主要内容,如果未能解决你的问题,请参考以下文章