我正在尝试为我的Vagrantfile所在的目录提供一个带有同步文件夹的vm (应该是默认行为,但它不起作用)。下面是处于当前状态的current文件(参见下面的bootstrap.sh ):
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.box_check_update = true
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.hostname = "vagrant"
config.vm.network "private_network", ip: 'XXX.XXX.XX.XXX'
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", 2048]
vb.customize ["modifyvm", :id, "--cpus", 2]
vb.customize ["modifyvm", :id, "--cpuexecutioncap", 50]
end
config.vm.provision :shell, path: "bootstrap.sh"
end下面是vagrant up输出的挂载部分,并用--debug标志进行切换:
INFO synced_folders: Invoking synced folder enable: virtualbox
INFO interface: output: Mounting shared folders...
INFO interface: output: ==> default: Mounting shared folders...
==> default: Mounting shared folders...
INFO interface: detail: /vagrant => /path/to/my/project
INFO interface: detail: default: /vagrant => /Users/michaelmartorella/code/ethereum
default: /vagrant => /path/to/my/project但是,当我将ssh放入vm中时,/vagrant目录不包含主机上同步目录的内容。我已经试过了this solution中列出的所有东西,但没有任何运气。我还尝试将config.vm.synced_folder命令移到virtualbox修改下面,也没有得到任何进展。
此外,如果我运行cd /,我就不会移动到根目录--它使我保持在主目录中(看起来很奇怪,我认为它与引起这个问题的原因有关)。
我在用:
Vagrant 1.9.5VirtualBox Version 5.1.22Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-119-generic x86_64)我是从MacOS Sierra Version 10.12.5来的
如果有帮助,下面也是我的bootstrap.sh代码:
#!/bin/bash
# Install git for version control, pip for install python packages
echo "Installing base python requirements..."
sudo apt-get -qq -y install git python-dev build-essential automake pkg-config libtool libffi-dev libgmp-dev python-pip libssl-dev > /dev/null 2>&1
# Customize the shell
echo "cd() { builtin cd "$@"; ls -FGlAhp; }" >> ~vagrant/.bashrc
echo "alias cd..='cd ../'" >> ~vagrant/.bashrc
echo "mcd () { mkdir -p "$1" && cd "$1"; }" >> ~vagrant/.bashrc
echo "mgrep () { grep -rnIi \"$1\" . --color; }" >> ~vagrant/.bashrc
echo "alias geth-init='bash /vagrant/init_geth.sh'" >> ~vagrant/.bashrc
echo "alias geth-console='bash /vagrant/geth_console.sh'" >> ~vagrant/.bashrc
# Install ethereum
echo "Installing ethereum..."
sudo apt-get install software-properties-common > /dev/null 2>&1
sudo add-apt-repository -y ppa:ethereum/ethereum > /dev/null 2>&1
sudo apt-get update > /dev/null 2>&1
sudo apt-get -y install ethereum > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Successfully installed ethereum!"
else
echo "Could not install ethereum" >&2
exit 1
fi
# Install pyethapp
echo "Installing pyethapp..."
pip install pyethapp > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Successfully installed pyethapp"
else
echo "Could not install pyethapp" >&2
exit 1
fi
# Complete
echo ""
echo "Vagrant install complete!"以上代码没有错误。
提前感谢!
发布于 2017-06-14 06:56:02
在这一行的bootstrap.sh脚本中有一个问题
echo "cd() { builtin cd "$@"; ls -FGlAhp; }" >> ~vagrant/.bashrc特殊字符需要转义,您可以在提供之后验证您的.bashrc文件,但这与您在shell脚本中的情况不同;所以您应该用
echo "cd() { builtin cd \"\$@\"; ls -FGlAhp; }" >> ~vagrant/.bashrc要小心转义,对于mgrep函数是正确的,但对于mcd则是不正确的,因此需要修复这个问题。通常,如果您希望通过脚本进行修改,则验证您的.bashrc文件是否相应地完成了更新。
https://stackoverflow.com/questions/44534775
复制相似问题