qichunren@zhaobak:~> gem install hpricot
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory.
Bieżący użytkownik logowania to qichunren, a użytkownik qichunre ma uprawnienia do zapisu w katalogu .gem Chciałbym wiedzieć, dlaczego gem nie instaluje najpierw plików w moim katalogu domowym .gem? Dlaczego mój wspólny gem najpierw chce zainstalować pliki w /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8
ruby-on-rails
ruby
gem
qichunren
źródło
źródło
rvm gem install hpricot
Spróbuj ustawić
GEM_HOME
iGEM_PATH
do~/.gem
,Dla bieżącej sesji terminala wystarczy wpisać:
export GEM_HOME=~/.gem export GEM_PATH=~/.gem
Jeśli chcesz, aby były one ustawiane za każdym razem, gdy otwierasz terminal, dodaj powyższe polecenia do swojego
~/.bashrc
pliku.Bardziej kompleksowe rozwiązanie dotyczące konfigurowania niestandardowego środowiska Ruby można znaleźć w tym samouczku z witryny Site5KB , w którym opisano używanie
.gemrc
pliku.źródło
.gemrc
konfiguracji. Dla nowicjuszy z rubinem jest to zniechęcające, kiedy rozumiem, że twoje rozwiązanie jest znacznie prostsze, które dodałem. To rozwiązanie działa dla mnie, ale jako nowicjusz w Ruby proszę potwierdzić, że moje zmiany są zgodne z twoimi intencjami.PATH=$HOME/.gems/bin:$HOME/bin:$PATH GEM_HOME=$HOME/.gems GEM_PATH=$HOME/.gems:/var/lib/gems/2.1.0:/usr/lib/ruby/gems/2.1.0 export PATH GEM_HOME GEM_PATH
Otrzymałem ten błąd na moim serwerze współdzielonym przez hosting 1and1. moim rozwiązaniem było dodanie
--user-install
opcji, która po prostu instaluje ją dla zalogowanego użytkownika (co jest wszystkim, czego potrzebujesz w środowisku serwera współdzielonego); instalowanie sassźródło
--user-install
.Jeśli używasz rbenv i tak się dzieje, musisz dodać następujące elementy do swojego .bash_profile:
export RBENV_ROOT="$HOME/.rbenv" if [ -d $RBENV_ROOT ]; then export PATH="$RBENV_ROOT/bin:$PATH" eval "$(rbenv init -)" fi
źródło
zainstaluj ponownie ruby, rozwiąż mój problem.
źródło