使 ruby​​ 可供所有用户使用

使 ruby​​ 可供所有用户使用

我打算在对运行基于 Debian 的 Occidentals 的 Raspberry Pi 进行编程时使用 Ruby。通过 SSH,我执行了:

curl -L https://get.rvm.io | bash -s stable --ruby

下载了 ruby​​ 源代码并编译了它。大约需要 2 小时才能完成。我想通过 AdaFruit 的 WebIDE 使用 ruby​​ -http://learn.adafruit.com/webide/。然而,我通过 SSH 执行的 ruby​​ 安装创建了一个在用户目录.rvm中调用的文件夹pi,而 WebIDE 使用webide用户帐户。

webide允许用户帐户访问 ruby​​ 的最佳方式是什么?我尝试将.rvm文件夹从/home/pi移至/etc/share,但这不起作用 - 当尝试在终端使用 ruby​​ 时,我收到错误“错误:缺少 RVM 环境文件:'/home/pi/.rvm/environments/ruby-2.0. 0-p353'" 所以我一定破坏了某些链接。

我不想为 webide 用户运行另一个 2 小时的安装,因为我确信有更好的方法!

答案1

不要忽视 RVM 的价值

您可以使用 Ruby 的存储库版本,但我建议采用另一种方式并使用 RVM 来管理 Ruby。我意识到这似乎会减慢您的速度,但是通过存储库部署的 Ruby 版本虽然可用,但通常会导致出现问题。通常最好创建专用版本的解释器和任何可专用于特定应用程序和/或用例的所需库 (Gems)。

RVM 提供了为单用户安装(这就是您所做的)以及进行多用户安装的能力。

$ curl -L https://get.rvm.io | sudo bash -s stable

以这种方式运行安装将自动触发 RVM 进行多用户安装,该安装将在/usr/local/rvm. Unix 组中的任何人都可以从这里访问该软件rvm

$ sudo usermod -a -G rvm <user>

<user>用户在哪里webide

安装红宝石

现在将以下内容添加到每个用户的$HOME/.bashrc.我通常把它放在文件的末尾:

[[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm

这样,您将需要注销并重新登录。

注1:在 gnome-terminal 中启动另一个选项卡是不够的,它需要是新登录的会话。这样您刚刚添加该用户的组就会被选中。

笔记2:如果您发现已在此处安装了以下文件,则可能不必将上述内容添加到您的文件中$HOME/.bashrc,这将为rvm系统上组中的所有用户执行上述操作以及更多操作。

$ ls -l /etc/profile.d/rvm.sh 
-rwxr-xr-x 1 root root 1698 Nov 27 21:14 /etc/profile.d/rvm.sh

登录后,您需要安装 Ruby。您可以以 user 身份使用以下步骤执行此操作webide

有哪些版本可以安装?

$ rvm list known | less
...
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p374]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p320]
[ruby-]1.9.3[-p484]
[ruby-]2.0.0-p195
[ruby-]2.0.0[-p353]
[ruby-]2.1.0-preview2
[ruby-]2.1.0-head
ruby-head
...

笔记:第一次安装 Ruby 时,您应该使用具有sudo权限的用户执行此操作,以便可以安装依赖项。例如,在 Ubuntu 上,您将看到此类活动。安装完这些后,其他用户(例如webide)也应该能够将其他 Rubies 安装到目录中/usr/local/rvm

Installing requirements for ubuntu.
Updating system..............................................................................................................
Installing required packages: libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, libffi-dev...............................................................................................
Requirements installation successful.

查看已安装的版本

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

安装第二个 Ruby

$ whoami
webide

$ rvm install 2.0.0-p195
...
ruby-2.0.0-p195 - #validate binary
ruby-2.0.0-p195 - #setup
Saving wrappers to '/usr/local/rvm/wrappers/ruby-2.0.0-p195'........
ruby-2.0.0-p195 - #importing default gemsets, this may take time..................

现在,当我们列出已安装的内容时:

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]
   ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

从上面我们可以看到用户webide能够安装 Ruby。

为所有 rvm 用户设置默认值

$ rvm use ruby-2.0.0-p195 --default
Using /usr/local/rvm/gems/ruby-2.0.0-p195

$ rvm list

rvm rubies

   ruby-1.9.3-p484 [ x86_64 ]
=* ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

以组中的另一个用户身份登录,我们可以看到设置默认值rvm的效果。ruby-2.0.0-p195

$ rvm list

rvm rubies

=> ruby-1.9.3-p484 [ x86_64 ]
 * ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

因此,该用户正在使用 ,ruby-1.9.3-p484并且他现在ruby-2.0.0-p195也配置为使用默认值。

下载/安装速度慢

如果您遇到下载缓慢的情况,您可能需要使用离线安装方法。这将允许您稍后重新安装。或者也许通过该系统下载有问题,您可以在一个系统上下载 RVM 安装程序,然后使用scp将安装程序复制到该系统。

$ curl -L https://github.com/wayneeseguin/rvm/tarball/stable -o rvm-stable.tar.gz

看这里,RVM 处于离线模式了解完整详情。

参考

答案2

由于您正在运行基于 debian 的发行版,安装 ruby​​ 的最简单方法是以 root 身份运行以下命令(例如使用sudo或您喜欢的任何方法):

 aptitude install ruby

相关内容