gem kurulum izni sorunu


90
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.

Mevcut oturum açma kullanıcısı qichunren ve qichunre kullanıcısı .gem dir. İle yazma iznine sahip. Gem'in neden ilk olarak ev .gem dizinine dosya yüklemediğini bilmek istiyorum? Gem Common neden önce /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8'e dosya yüklemek istiyor

Yanıtlar:


52

Sistem çapında bir Ruby kurulumu için, root olun. Örneğin:

$ sudo gem install hpricot

Bununla birlikte, geliştirme dahil birçok durumda modern yaklaşım, Ruby'yi normal bir kullanıcı olarak kolayca kurmanıza ve kullanmanıza izin veren bir araç kullanmaktır. Bu, kök olmak zorunda kalmanızı önler. Bu tür birkaç araç var ve kullandığım araç RVM .

# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of ruby into your ~
$ rvm install ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME

41
Sudo kullanmayın çünkü onları root olarak yükleyeceksiniz ve normal kullanıcınızı kullanırken onlara erişiminiz olmayacak. RVM ve mücevher setleri kullanın.
Ryan

4
örn.rvm gem install hpricot
AJP

4
Bu cevabı silmek isteyebilirsiniz. Puanları koruyacak ve insanları çok fazla baş ağrısından kurtaracaksınız.
Olhovsky

175

Ayarlamayı deneyin GEM_HOMEve GEM_PATHkarşı ~/.gem,

Mevcut terminal oturumu için şunu yazın:

export GEM_HOME=~/.gem
export GEM_PATH=~/.gem

Bunların bir terminali her açışınızda ayarlanmasını istiyorsanız, yukarıdaki komutları ~/.bashrcdosyanıza ekleyin .

Özel bir yakut ortamı kurmaya yönelik daha kapsamlı bir çözüm için , Site5KB'nin bir .gemrcdosya kullanmayı açıklayan bu eğiticisine bakın .


12
Bu gerçek doğru cevap. Gerekmiyorsa, sudo yüklemeye gitmeyin.
Jesse O'Brien

Yanıttaki bağlantı değişmiş görünüyor. Bu kılavuzdaki ilk adım benim için aynı şeyi gerçekleştirdi: kb.site5.com/ruby-on-rails/…
Mike S

@MikeSlutsky Bunu işaret ettiğiniz için teşekkürler. Gelecekte, bozuk bir bağlantı (veya değişmiş ve artık alakalı olmayan bir bağlantı) bulursanız, uygun bir yedeğiniz olduğunu düşünüyorsanız, bir "düzenleme" önerisi göndermekten çekinmeyin.
meagar

@meagar @ Mike-Slutsky tarafından verilen bağlantıyı güncelledim, ancak bunun .gemrcyapılandırma dokümantasyonu olduğunu fark ettim . Yakut mücevher acemileri için, çözümünüzün eklediğim çok daha basit olduğunu anladığımda, bu göz korkutucu. Çözüm benim için işe yarıyor, ancak bir Ruby acemi olarak, lütfen değişikliklerimin amacınıza uygun olduğunu onaylayın.
David LeBauer

1
GEM_PATH'nizi global PATH'a eklemeyi unutmayın. Yaptığım şey bu: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
2016

10

Paylaşılan sunucumda 1and1 barındırma aracılığıyla bu hatayı alıyordum. benim çözümüm, --user-installsadece oturum açmış kullanıcı için (paylaşılan bir sunucu ortamında ihtiyacınız olan tek şey bu) seçeneği ekleyen seçeneği eklemekti . sass yüklemek

gem install sass --user-install

Ben her ne kadar İlginçtir, bu hatayı alıyorum gelmiş belirtilen --user-install.
sschuberth

4

Rbenv kullanıyorsanız ve bu oluyorsa, aşağıdakileri .bash_profile dosyanıza eklemeniz gerekir:

export RBENV_ROOT="$HOME/.rbenv"

if [ -d $RBENV_ROOT ]; then
  export PATH="$RBENV_ROOT/bin:$PATH"
  eval "$(rbenv init -)"
fi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.