【问题标题】:Rails console not starting after using /usr/bin/env to load environment variables使用 /usr/bin/env 加载环境变量后 Rails 控制台未启动
【发布时间】:2020-01-15 21:04:07
【问题描述】:

我的 RoR 应用程序未正确加载,加载环境变量 .env 文件时出现第一个错误。

脚本很简单,(应该)加载 .env 来启动 rails 控制台:

basedir=/home/mapaapp/mapaapp/
cd $basedir/current
env $(cat $basedir/shared/.env | xargs) rails c
cd -

我在加载脚本时收到了两个响应:cat: /shared/.env: No such file or directory,即使知道此目录中有一个 .env 文件,而我认为 env: #: No such file or directory 指的是 /usr/bin/env,它也存在。

这个应用程序运行:

  • Ubuntu 15.10(GNU/Linux 4.2.0-42-generic x86_64)
  • Rails 4.2.1
  • 红宝石 2.2.2p95
  • nginx 1.9.3
  • 彪马2.15.3

知道是什么阻止了rails c 的启动吗?如果需要任何其他信息,我很乐意提供。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    我认为我会尝试的第一个尝试是为您的路径使用一个字符串(更安全)并使用它的完整路径调用 env 可执行文件,因为 bash 脚本在子 shell 中运行,因此 env 命令可能不在$PATH 变量:

    basedir="/home/mapaapp/mapaapp/"
    cd "$basedir/current"
    /usr/bin/env $(cat "$basedir/shared/.env" | xargs) rails c
    cd -
    

    现在您似乎没有将任何命令传递给 xargs 具有以下格式的命令:

    $(echo 1)
    

    表示在子shell中执行括号之间的命令并返回结果。所以我可以将值 1 分配给这样的变量:

    a=$(echo 1)
    

    所以我会尝试修改该行以确保使用 .env 文件中的参数:

    /usr/bin/env $(cat "$basedir/shared/.env") | xargs rails c
    

    【讨论】:

    • 我尝试了/usr/bin/env $(cat "$basedir/shared/.env") | xargs rails c 并收到了这个答案:/usr/bin/env: #: No such file or directory Loading development environment (Rails 4.2.1) Switch to inspect mode.
    猜你喜欢
    • 2013-02-28
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多