我有作曲家设置来运行assetic: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 post-update钩子运行composer install
时,我得到了关于ruby无法找到指南针的奇怪错误。 Ruby和指南针都安装正确,当我手动运行composer install
时它可以正常工作。
我遇到了一些环境问题吗?
编辑:
实际的错误消息是:
...../rubygems/dependency.rb:298:in `to_specs`: Could not find 'compass' (>= 0) among 14 total gem(s) (Gem::LoadError)
答案 0 :(得分:0)
我想出了这个问题。 git deploy脚本运行时的环境不包含GEM_PATH
环境变量。通过在git hook脚本中运行assetic:dump
之前添加此行,一切正常:
export GEM_PATH=/usr/local/rvm/gems/ruby-2.1.2:/usr/local/rvm/gems/ruby-2.1.2@global