【问题标题】:Installing rvm sh script doesn't source properly, how to安装 rvm sh 脚本无法正确获取源,如何
【发布时间】:2015-04-19 16:09:55
【问题描述】:

我正在制作一个 shell 脚本来安装 Apache、MySQL、Postgresql、php5、rvm、ruby 和 rails,有点像自动安装脚本,但是我的 rvm 源代码和所有这些都有问题,这就是我所拥有的到目前为止:

autoinstall autoconf automake bison build-essential curl git-core libapr1 libaprutil1 libc6-dev libltdl-dev libreadline6 libreadline6-dev libsqlite3-0 libsqlite3-dev libssl-dev libtool libxml2-dev libxslt-dev libxslt1-dev libyaml-dev ncurses-dev nodejs openssl sqlite3 zlib1g zlib1g-dev
autoinstall git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
autoinstall libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby
# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"
else
  printf "ERROR: An RVM installation was not found.\n"
fi
type rvm | head -1
rvm -v

这个脚本到达 type rvm | head -1 并说 rvm: not found,我怀疑这是一个奇怪的情况,必须关闭所有 bash 终端并重新打开,因为 if 也到达了 printf "ERROR: An RVM installation was not found.\n" 但是当我的脚本退出时我再次这样做type rvm | head -1 并显示安装正确。

任何想法为什么会在我的 shell 脚本中发生这种情况?

[编辑]: 我确保它一直运行到源代码行,那个不工作的似乎是 rvm 脚本的源代码,以便能够在 shell 脚本中使用 rvm,当我检查 rvm 版本时出现错误,但在终端它给出我一个版本,为什么?

【问题讨论】:

  • 不存在“必须关闭所有 bash 终端的情况”。那不是存在的东西。他们不互动。对 shell 启动文件的更改不会影响现有的 shell 会话,但会立即影响任何新的会话。
  • 顶级脚本在哪个 shell 中运行?
  • 我只是将 shell 运行为:sudo sh installwebtools.sh,我的 rvm 脚本基于此链接 rvm Scripting@Etan Reisner
  • 我只是将 shell 运行为:sudo sh installwebtools.sh,我在此链接 rvm Scripting @EtanReisner 中将我的脚本作为 rvm 的基础
  • 您试图明确获取does not run in sh(和其他shell)的文件可能是因为它们缺少它所依赖的功能。尝试改用sudo bash。 (链接页面上没有任何地方显示sudo sh。)

标签: ruby bash shell curl rvm


【解决方案1】:

您尝试明确获取does not run in sh(和其他shell)的文件可能是因为它们缺少它所依赖的功能。

使用sudo bash 来运行它应该可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多