2012-07-25 118 views
21

在我所有的gem安裝中,我必須做sudo?所以如何在沒有sudo的情況下安裝gems

sudo的創業板安裝導軌

將工作,而只有

創業板安裝導軌

將無法​​正常工作。我該如何補救?

我已經安裝了RVM -

[email protected]:~$ which rvm 
/home/murtaza/.rvm/bin/rvm 

[email protected]:~$ which gem 
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem 

但是我也得到這個警告,當我做任何操作與寶石 -

[email protected]:~$ gem 
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777 

編輯

我已經使用重新安裝RVM curl -L get.rvm.io | bash -s stable --auto(沒有sudo)。

然而,當我嘗試安裝寶石它給了我下面的錯誤仍然 -

[email protected]:~$ gem install rails 
/home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777 
ERROR: While executing gem ... (Errno::EACCES) 
    Permission denied - /home/murtaza/.gem/specs 

編輯

我做CHOWN對整個事情,但仍然得到錯誤 -

[email protected]:~$ sudo chown murtaza.murtaza -R ~/.rvm/* 


[email protected]:~$ gem install rails 
    /home/murtaza/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /opt in PATH, mode 040777 
    ERROR: While executing gem ... (Errno::EACCES) 
     Permission denied - /home/murtaza/.gem/specs 
+0

的提醒,讓我們看看[這個答案](http://stackoverflow.com/questions/2796421/warning-insecure-world-writable-dir-when-i-run- a-ruby-or-gem-command)會有所幫助。 – 2012-07-25 06:11:57

+0

你的'chown'對我來說看起來很奇怪。它不應該是'murtaza:murtaza'嗎? – 2012-07-25 07:03:05

+0

完成但仍然是錯誤。但是我檢查了〜/ .gem目錄,並且它沒有一個specs文件。我該怎麼辦 ? – murtaza52 2012-07-25 07:05:00

回答

6

您應該安裝Ruby Version Manager。它將已安裝的紅寶石和寶石存儲在您的家庭目錄中,所以現在您不必使用sudo來安裝寶石。除此之外,它還有更多的功能。 :)

+0

我已經安裝了rvm。請參閱我的編輯。 – murtaza52 2012-07-25 06:08:01

+0

那麼可能你已經安裝了系統級的RVM。您應該在用戶安裝時重新安裝它。 – 2012-07-25 06:08:57

+0

查看我的編輯,rvm路徑顯示在我的主文件夾下。它仍然是系統範圍嗎? – murtaza52 2012-07-25 06:11:31

12

當你不使用sudo安裝它們時,Ruby不知道它們被安裝到哪裏。我不記得默認情況下安裝它們的位置,可能是〜/ .gems之類的地方。無論如何,你可以通過設置GEM_HOME環境變量來告訴Ruby它們是在哪裏安裝的。

$ # assuming your gems are stored in ~/.gems 
$ GEM_HOME="$HOME/.gems" ruby my_program.rb 

如果這樣的作品,那麼你可能把它放在你的〜/ .bashrc(也有一些可能的文件,這可以進去,取決於你的系統)

+2

要離開這個答案,因爲它可能對別人有幫助,但是因爲你編輯它說你正在使用rvm,所以它沒有任何意義了(rvm會爲你管理這個變量)。 – 2012-07-25 06:17:08

+1

''GEM_HOME'也是如果您不希望在臨時機器中使用系統安裝的Ruby時使用'rvm'的方式,例如,在Docker容器中。 – gertas 2014-10-18 22:20:35

27

使用chown對整個.rvm.gem目錄返回給您的用戶。你之前可能使用過sudo,並且它搞砸了權限。

sudo chown -R username:group ~/.rvm 
sudo chown -R username:group ~/.gem 

當然,用戶名更改爲您的用戶名和你的小組

+0

請參閱我的編輯,我做了它,但仍然出現錯誤。 – murtaza52 2012-07-25 07:00:22

+0

對不起,'chown'你的'〜/ .gem'。 – 2012-07-25 13:34:54

+0

我解決了一個類似的問題,使用這個建議,並與-R遞歸標誌。 – andrewheins 2013-03-14 01:47:17

0

對於Mac用戶來說,這個工作對我來說...

  1. 添加GEM_HOME您.bash_profile

例如,nano ~/.bash_profile並添加出口GEM_HOME=/Users/Michael/.gem所在的路徑是你自己的主文件夾

  • 添加寶石可執行文件到您的系統路徑
  • 也在.bash_profile中,添加export PATH="$GEM_HOME/bin:$PATH"

    來源:http://michaelehead.com/2016/02/06/installing-gems-without-sudo.html

    相關問題