我有作曲家设置运行asset:dump:
"scripts": {
"post-install-cmd": [
"Incenteev\ParameterHandler\ScriptHandler::buildParameters",
"Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap",
"Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache",
"Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installAssets",
"Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile",
"php app/console assetic:dump --env=prod",
"php app/console cache:clear --env=prod"
],
当我SSH到我的服务器并运行composer install
时,它工作得很好,没有任何问题。然而,当我从git后更新钩子运行composer install
时,我得到了关于ruby无法找到指南针的奇怪错误。Ruby和compass都正确安装,当我手动运行composer install
时,它工作正常。
我是否遇到了一些环境问题?
编辑:实际的错误信息是:
...../rubygems/dependency.rb:298:in `to_specs`: Could not find 'compass' (>= 0) among 14 total gem(s) (Gem::LoadError)
我找到了问题所在。git部署脚本在不包含GEM_PATH
环境变量的环境中运行。通过在git钩子脚本中运行assetic:dump
之前添加这一行,一切都工作了:
export GEM_PATH=/usr/local/rvm/gems/ruby-2.1.2:/usr/local/rvm/gems/ruby-2.1.2@global