2015-07-23 25 views
13

Kullanmakta olduğum paylaşılan bir makinede sınırlı ayrıcalıklara sahibim, bu yüzden taşlarımı eskiden olduğum şekilde kuramıyorum. Örneğin:Gem'i yerel klasöre kurun

$ gem install request-log-analyzer 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory. 

Yerel olarak bir taş kurmak mümkün mü? (önemliyse, this gem'u yüklemeye çalışıyorum.)

Yığın Taşması'nda Bundler veya gemfiles öğelerini kullanma hakkında bir çok ileti gördüm ancak bu gemiyi Ruby on Rails projesi için yüklemiyorum - I sadece izolasyonda kullanmak istiyorum.

Linux'u çalıştırıyorum, hangi lezzetin olsa da emin değilim.

cevap

15

---local bayrak ekle yüklüyoruz:

gem install --local request-log-analyzer 

o herhangi bir sorun neden olursa, elle mücevher indirip kullanarak ona doğrudan gem işaret deneyin: Eğer yüklemek istiyorsanız

gem install --local path/to/gem/filename.gem 

Kullanıcı evinize rubygems:

--user-install seçeneğini kullandığınızda, RubyGems gems'i ev dizininizdeki bir dizine kuracaktır, ~/.gem/ruby ​​/ 1.9.1 gibi. 'u yüklediğiniz taşlar tarafından sağlanan komutlar ~/.gem/ruby ​​/ 1.9.1/bin olarak sonuçlanacaktır. orada yüklü programlar için, sizin PATH ortam değişkeninize ~/.gem/ruby ​​/ 1.9.1/bin eklemeniz gerekir.

bunun için komut sadece

gem install --user-install request-log-analyzer 
+0

"--force" ifadesini ekledikten sonra gem install --force --local * .gem –

0

RVM'yi sadece Ruby Version Manager kullanabilirsiniz. Düğüm sürümü yöneticisi (nvm) ve diğerlerinin satırları boyunca eksiksiz bir sürüm yöneticisidir, böylece her proje için yakut ve farklı mücevher koleksiyonlarına sahip olmanızı sağlar. Birbirinden izole edilen değerli taşların yanı sıra sistemdeki yakuttan korunma işini de yapar, ancak tam bir versiyon yöneticisi öğrenme pahasına.

Kök olmadan çalıştırıldığında, yerel olarak ~/.rvm içine yükler ve diğer kullanıcıları etkilemez.

+0

Hmm, RVM yüklemeden bunu yapmanın bir yolu var mı? Bu paylaşılan bir bilgisayar olduğundan, yüklemem gereken şeylerin sayısını en aza indirmeye çalışıyorum. –

+0

RVM'nin avantajı, hiçbir ayrıcalık gerektirmez. Bunu "el ile" yapabilirdiniz ama daha karmaşıktır .... Kendinizi kurma, vb. – rholmes

+0

@mchenja RVM mükemmeldir ve bunu kullanmanızı tavsiye ederim. Ancak istemiyorsanız, yerel olarak yüklemek için bir çözüm gönderdim. – jkeuhlen

26

Deneyebilirsin olacaktır: gem install --user-install gem_name

+4

Doğru cevabı, en azından ruby ​​1.9.3.Kabul edilen cevap kafa karıştırıcı çünkü hem yerel bir dosyadan - bir yerel dizine - hem de yerel bir dizine - bir yerel geminin kurulduğuna dikkat çekiyor. – jdlourenco

+0

Ayrıca '-n ~/bin 'seçeneğini de eklemem gerekiyordu çünkü bir yürütülebilir dosyayı hala çalıştırmaya çalışıyordu. usr/local/bin' Tam olarak: 'gem install --user-install -n ~/bin gem_name'. –