我通过pupphpet.com生成配置。我想在第一次运行vagrant up
时安装composer-asset-plugin
。
我写了一个简单的脚本puphpetfilesexec-oncecomposer-asset-plugin.sh
,它试图做到这一点:
#!/usr/bin/bash
echo "Installing Composer Asset Plugin"
composer global require "fxp/composer-asset-plugin:~1.0.0"
它在/root/.composer
中安装了插件,所以当我通过vagrant ssh
(在用户vagrant
下)连接并尝试使用Composer时,我会收到一个错误,这意味着插件不存在,因为Composer在/home/vagrant/.composer
中确实不存在。在我安装插件恶意之后,Composer运行良好。
在插件安装之前,我试图将用户从root
更改为vagrant
:
#!/usr/bin/bash
echo "Installing Composer Asset Plugin"
expect -c 'set timeout 3600; spawn su - vagrant; expect "Password:" {send -- "vagrantr";}; exit 0'
composer global require fxp/composer-asset-plugin:~1.0.0;
它在命令expect
之后挂起。我做错了什么?
以下可能会有所帮助:
# Install Composer
if [ ! -f /usr/local/bin/composer ]; then
cd /tmp
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
fi
# Install necessary plugin
sudo -H -u vagrant bash -c "composer global require fxp/composer-asset-plugin:~1.0.0"
在这种情况下,命令将在流浪用户上下文中执行,并且将使用他的家。