Debian

讓所有使用者都可以使用 ruby

  • July 21, 2017

我打算在編寫執行基於 Debian 的 Occidentals 的 Raspberry Pi 時使用 Ruby。通過 SSH,我執行了:

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

它下載了ruby源並編譯了它。它的工具大約需要 2 小時才能完成。我想通過 AdaFruit 的 WebIDE - http://learn.adafruit.com/webide/使用 ruby ​​。但是,我通過 SSH 執行的 ruby​​ 安裝.rvmpi使用者目錄中創建了一個名為的文件夾,而 WebIDE 使用webide使用者帳戶。

允許webide使用者帳戶訪問 ruby​​ 的最佳方法是什麼?我嘗試將.rvm文件夾從移動/home/pi/etc/share,但這不起作用 - 嘗試在終端上使用 ruby​​ 時出現錯誤“錯誤:缺少 RVM 環境文件:’/home/pi/.rvm/environments/ruby-2.0. 0-p353’" 所以我一定是斷開了一些連結。

我正在阻止為 webide 使用者執行另一個 2 小時安裝,因為我確信有更好的方法!

不要忽視 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

安裝 Ruby

現在將以下內容添加到每個使用者的$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。您可以使用以下步驟以使用者身份執行此操作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 以獲取完整的詳細資訊。

參考

引用自:https://unix.stackexchange.com/questions/102678