我在制作教程时正在构建一个简单的流浪盒。我在这里建立的盒子是我的流浪文件。
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.provision :shell, :path => "bootstrap.sh"
#config.vm.network "forwarded_port", guest: 80, host: 8080
end
这似乎工作正常,正在等待其他一些配置但我遇到的问题与配置。
它找到Shell脚本没有错误。它甚至建造了流浪盒。但是当它完成时我得到了这个错误
==> default: stdin: is not a tty
==> default: bash: /tmp/vagrant-shell: /user/bin/env: bad interpreter: No such file or directory
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell
Stdout from the command:
Stderr from the command:
stdin: is not a tty
bash: /tmp/vagrant-shell: /user/bin/env: bad interpreter: No such file or directory
当我ssh in nothing时,我安装了安装程序。当我在terminal命令中运行bash脚本时,它可以工作。这是我的bash脚本。
#!/user/bin/env bash
#install
sudo apt-get update
sudo apt-get install -y python-software-properties
sudo add-apt-repository -y ppa:ondrej/php5
sudo apt-get update
sudo apt-get install -y wget php5 apache2 php5-mcrypt php5-curl git
sudo apt-get update
#apache onfig
sudo a2enmod rewrite
#Symlink for local development
#remove the WWW for Apache
sudo rm -rf /var/www
#symlink for local directory ln -fs {PATH TO LOCAL PROJECT} /var/www
sudo ln -fs /pathtolocaldirectory /var/www
#Restart Apache
sudo service apache2 restart
答案 0 :(得分:5)
实际上错误消息非常清楚:/user/bin/env
不存在。
只需将bash脚本中的第一行替换为:
#!/usr/bin/env bash
答案 1 :(得分:0)
您的/ tmp目录或脚本本身缺少权限,这可能是此执行问题的根本原因。
要解决此问题,请尝试
chmod 755 /tmp/
chmod +x /tmp/vagrant-shell
然后尝试执行命令,它将安全工作。