Ruby GEM_HOME ve GEM_PATH nasıl ayarlanır?


10

Linux ve Linux mint 17.1 kullanan bir NOVICE kullanıcısıyım

Bu sorun için Linux Mint'i son 3 günde 20 kez yeniden yükledim ancak düzeltemedim

Yeni bir Linux kurulumuna başlayın ve terminal oturumunu kapatır kapatmaz başarıyla yüklenen bir terminal oturumunda taşlar ve yakut ve şeyleri yüklemeyi denerseniz, rvm'yi kullanarak raylara ruby ​​yüklemeye çalışıyorum. .

Son 3 gün içinde 20 kez yeniden yükleyerek web'de de arama yaptım. Ortam değişkenini /etc/environmento oturumda yankılandığım söylendi ve bunu /etc/environmentdosyaya yapıştırdım .

şimdi bile yüklü taşlarımı alamıyorum

yazdığımda rvm -vaşağıdaki hataları alıyorum

Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see:
    https://github.com/wayneeseguin/rvm/issues/3212

Warning! PATH is not properly set up, $GEM_HOME is not set,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

Terminalle çalışmaya gelince çok acemi bir insanım. Ruby ile çalışmak için birkaç temel komut çalıştırabilirim.

bilmek isterim

  1. PATH nasıl ayarlanır
  2. GEM_HOME nasıl ayarlanır?
  3. GEM_PATH nasıl ayarlanır?

Tam yolum aşağıda

echo $PATH
/home/sharif/.rvm/gems/ruby-2.2.2/bin:/home/sharif/.rvm/gems/ruby-2.2.2@global/bin:/home/sharif/.rvm/rubies/ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin

Sayın @mohsen pahlevanzades bana söyleme sakıncası yoksa, bu iki satır silmenin ne olduğunu sorabilir miyim, saygılar
Amjad

Eğer doğru hatırlıyorsam, saygılar yazdım ya da teşekkür ettin,
PersianGulf

Yanıtlar:


18

exportOrtam değişkenlerini ayarlama komutunu istediğiniz gibi geliyor :

export PATH=$PATH':/path/to/add'
export GEM_HOME=$HOME/.gem
export GEM_PATH=$HOME/.gem

Ancak bu sadece geçerli oturum için geçerli olacaktır. Onları daha kalıcı hale getirmek için, bu satırları kendinize ekleyin ~/.bashrc.


3

Genellikle bu rvm'nin doğru ayarlanmadığı anlamına gelir. Genel hata, .bashrcdoğru (veya benzeri) kodunuzu değiştirmemeniz veya terminalinizi yeniden yüklememenizdir.

Rvm kullanırken GEM_HOME veya GEM_PATH ayarlarını manuel olarak ayarlamamalısınız.

Bunun işe yarayıp source ~/.rvm/scripts/rvmyaramadığını görebilirsiniz.

Ayrıca henüz bir mücevher inşa etmemiş olabilirsiniz. Rvm ve sudo kullanmayın. Rvm en iyi, sistem genelinde değil, hesabınıza yüklendiğinde çalışır.


Ayrıca , yeni bir kabuğa her başladığınızda yüklendiğinden emin olmak source ~/.rvm/scripts/rvmiçin ~/.bashrccihazınıza ekleyebilirsiniz .
Niel de Wet

2

İşte öğrendiklerim ve GEM_HOME ve GEM_PATH ortam değişkenlerinin ayarlanmayan bu sık karşılaşılan sorununu nasıl ayarladığımı nasıl çözdüm.


Arka fon

RVM kurulumunun, ayarlanan her RVM için GEM_HOME ve GEM_PATH env değişkenleri oluşturması beklenir ve bunu yapar. Ancak görünüşe göre öyle bir hata var ki, bazı durumlarda env değişkenleri sadece geçici olarak ayarlanır ve tekrar ayarlamak için bunları komut satırıyla ayarlamanız gerekir. Env vars bir RVM için kalıcı yapmak için bir geçici çözüm buldum.

Geçici çözüm

  1. Etkin (RVM'de) Ruby sürümünü bulun: Üretim sunucunuzda uygulama dizininize gidin ve yazın $rvm list. Bu, yüklü Ruby sürümlerinin ve RVM için hangisinin aktif olduğuna ilişkin bir liste ile sonuçlanır. Yanıt örneği:

    rvm rubies ruby-1.9.3-p547 [ x86_64 ] => ruby-1.9.3-p551 [ x86_64 ]

Yani, RVM'nin şu anda sürüm kullandığını biliyorum ruby-1.9.3-p551. Bir sonraki adım için bu bilgiye ihtiyacınız var.

  1. GEM_PATH ve GEM_HOME yollarını alın : Bunu komut satırından çalıştırarak yapabilirsiniz $rvm use ruby-1.9.3-p551. Sonra hala comman satırından komutu kullanarak tüm ortam ayarlarını gösterir env. GEM_PATH ve GEM_HOME için arama yapın ve bunların tamamını bir çalışma alanına kopyalayın.

    GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

  2. GEM_HOME ve GEM_PATH ortam değişkenlerini ayarlayın : Şimdi bu ortam değişkenlerini birçok profil dosyasından birinde ayarlayın. Ben RVM sürüm yalıtım yapısını korumak istedim, bu yüzden /profile.d/appspecific.sh bu iki satır ile güncelledi:

    export GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551


görünüşe göre GEM_HOME ve GEM_PATH RVM'ye özgü değil mi?
barlop

2

Ben .profile son yüklenen ve ~ / .local / bin ve ~ / bin yolun önüne koyar bulundu. /Etc/profile.d/rvm.sh dosyasını ~ / .rvm'ye taşıdım ve .profile dosyasının sonuna "source ~ / .rvm / rvm.sh" ekledim ve hata gitti. Linux Mint 18.3 kullanıyorum. Pyenv, rvm ve sdkman yükledim ve hepsi son olmak istiyor. Şimdi hepsi iyi çalışıyor. :)

Paylaşılan bir sistemse, rvm.sh dosyasını yolun dışına taşıyın ve örneğin /opt/rvm/rvm.sh gibi başka herhangi bir kullanıcı kaynak sağlayabilir.


1

@Coteyr belirttiğimiz gibi, elle ayarlamak gerekir GEM_HOME ve GEM_PATH kullanarak rvm. PATH ortam değişkeninizi kontrol ederseniz $ echo $PATHve $ HOME / .rvm / bin komutunun bir parçasıysa, terminalinizin komutları bir oturum açma kabuğu olarak çalıştırdığından emin olmanız gerekir. Örneğin, bir Ubuntu makinesindeyseniz terminalinizi açarsınız ve şu menüye gidersiniz: menü> Düzenle> Profil Tercihleri> Komut sonra "Komutu giriş kabuğu olarak çalıştır" ı seçin

Bu rvm, bir süredir olduğu için düzeltmenin önemsiz olmadığını düşündüğüm eski bir sorun gibi görünüyor .


1

Doldurma için $GEM_PATHsistemimde (Manjaro / Takı) ile gemskız kardeşime karşı eklendi .bashrc:

for _entry in /usr/lib/ruby/gems/*; do
  if [[ -d $_entry ]]; then
    # TODO: Add only if not there already
    export GEM_PATH=$_entry:$GEM_PATH
  fi
done
unset _entry
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.