assetic:从作曲家转移奇怪的环境问题

时间:2014-08-17 04:15:48

标签: git symfony compass-sass assetic

我有作曲家设置来运行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)

1 个答案:

答案 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