2012-07-25 13 views
21

Na wszystkich moich instalacjach klejnotów muszę robić sudo? Więcjak zainstalować klejnoty bez sudo

sudo gem install szyn

będzie działać, gdy tylko

gem install szyn

nie będzie działać. Jak mogę to naprawić?

mam RVM zainstalowany -

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

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

Jednak mam też coraz to ostrzeżenie, kiedy wykonywać żadnych operacji z perłą -

[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 

EDIT

I ponownej instalacji RVM korzystania curl -L get.rvm.io | bash -s stable --auto (bez sudo).

Jednak nadal przy próbie instalacji gem daje mi następujący błąd -

[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 

EDIT

zrobiłem chown na całość, ale wciąż otrzymuję błąd -

[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

za ostrzeżenie, zobaczmy, czy [ta odpowiedź] (http://stackoverflow.com/questions/2796421/warning-insecure-world-writable-dir-when-i-run- a-ruby-or-gem-command) pomoże. –

+0

Twój "chown" wygląda na dziwnego. Czy nie powinno to być "murtaza: murtaza"? –

+0

Zrobiono, ale nadal błąd. Jednak sprawdziłem katalog ~/.gem i nie ma on w ogóle pliku specyfikacji. Co powinienem zrobić ? – murtaza52

Odpowiedz

6

Powinieneś zainstalować Ruby Version Manager. Przechowuje zainstalowane rubiny i klejnoty w twoim katalogu domowym, więc teraz nie musisz używać sudo do instalowania klejnotów. Poza tym ma o wiele więcej funkcji. :)

+0

Mam już zainstalowane oprogramowanie rvm. Zobacz moją edycję. – murtaza52

+0

Prawdopodobnie zainstalowałeś systemowy robot RVM. Powinieneś zainstalować go ponownie jako instalację użytkownika. –

+0

Zobacz moją edycję, ścieżka rvm pokazuje się w moim katalogu domowym. Czy system nadal jest szeroki? – murtaza52

12

Po zainstalowaniu ich bez sudo, Ruby nie wie, gdzie są instalowane. Nie pamiętam, gdzie instaluje je domyślnie, prawdopodobnie gdzieś w rodzaju ~/.gems lub coś podobnego. W każdym razie możesz powiedzieć Ruby, gdzie są zainstalowane, ustawiając zmienną środowiskową GEM_HOME.

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

Jeśli to działa, to możesz umieścić go w ~/.bashrc (istnieje kilka możliwych plików to może iść w zależności od systemu)

+2

Podejmowanie tej odpowiedzi, ponieważ może być pomocne dla kogoś innego, ale od czasu, gdy edytowałeś ją, mówiąc, że używasz rvm, to nie ma już sensu (rvm będzie zarządzał tą zmienną dla ciebie). –

+1

'GEM_HOME' jest również sposobem, jeśli nie chcesz używać' rvm', gdy używasz systemu zainstalowanego Ruby w efemerycznych maszynach, np. w pojemniku Docker. – gertas

27

Zastosowanie chown na cały .rvm i .gem katalogów z powrotem do użytkownika. Najprawdopodobniej wcześniej używałeś sudo, a on zgubił uprawnienia.

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

Oczywiście, należy zmienić nazwę użytkownika na swoją nazwę użytkownika i grupy do swoją grupę

+0

Proszę zobaczyć moją edycję, zrobiłem to, ale wciąż dostaję błąd. – murtaza52

+0

Przepraszam, 'chown' twój' ~/.gem'. –

+0

Rozwiązałem podobny problem za pomocą tej sugestii oraz z flagą rekurencyjną -R. – andrewheins

0

dla użytkowników komputerów Mac, to działa na mnie ...

  1. Dodaj GEM_HOME do swojej .bash_profile

Na przykład, nano ~/.bash_profile i dodać eksport GEM_HOME=/Users/Michael/.gem gdzie ścieżka jest do własnego katalogu domowym

  1. Dodaj gem pliki wykonywalne na ścieżce systemowej

Również w .bash_profile, dodaj export PATH="$GEM_HOME/bin:$PATH"

Źródło: http://michaelehead.com/2016/02/06/installing-gems-without-sudo.html

Powiązane problemy