关于python:Mastodon 和 Rails 在 .profile 中导出的正确 shell 路径是什么?

关于python:Mastodon 和 Rails 在 .profile 中导出的正确 shell 路径是什么?

@steeldriver 的回答在 bash 脚本中,如何使用 su 从 root 用户更改为另一个用户,然后退出?在 bash 脚本中使用 sudo 和 su 效果很好,但新的问题与 .profile 文件中的 Rails 路径有关。

我正在运行 Mastodon,并尝试使用 shell 脚本运行所有不同的 Rails 命令并在更改文件后重新启动 mastodon。在脚本之外手动运行所有命令可以正常工作。

但是在脚本中,三个 Rails 命令都抛出了错误bundle: command not found,即使其余的 shell 脚本运行并完成了:

#!/bin/bash

sudo su -l mastodon -c '
  cd live
  RAILS_ENV=production bundle exec rake tmp:cache:clear
  RAILS_ENV=production bundle exec rails assets:generate_static_pages
  RAILS_ENV=production bundle exec rails assets:precompile
  exit
'
systemctl restart mastodon-*

我已将其添加export RAILS_ENV=production到 ~/.profile 但没有成功。

为执行命令,Rails 的正确导出路径是什么?

这可能与此有关:“Mastodon 默认设置不合理使用,mastodon 不是登录用户”https://github.com/NixOS/nixpkgs/issues/199029

或者这是另一个问题?

〜/.profile:

# ~/.profile: executed by Bourne-compatible login shells.

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

mesg n 2> /dev/null || true

export RAILS_ENV=production

相关内容