"Uyarı! Rvm kullanırken 2.0.0 --default kullanırken PATH düzgün ayarlanmadı "


115

Yukarıdakiler ilk seferde çalışmaz, 2. sefer çalışır.

Herhangi bir yeni kabuk penceresi için ruby ​​sürümünü 2.0.0 olarak ayarlamayı deneyin.

$ rvm use 2.0.0 --default

verir

Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/
bin' is not at first place,
         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 --au
to-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247

Sonra aynısını yapıyorum

$ rvm use 2.0.0 --default

şimdi hata vermiyor, yani

$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$ 

ancak yeni pencereler bana 2.0.0 değil hala 1.9.3 ruby ​​veriyor

Dosyamın .bashrciçinde:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"

.Bash_profile dosyamda:

source ~/.profile
case $- in *i*) . ~/.bashrc;; esac

çalışılıyor

rvm get stable

işe yarıyor gibi görünüyor, ancak birçok yeşil çıktının sonunda:

Could not update RVM, get some help at #rvm IRC channel at freenode servers.

Yeni bir terminal penceresi şunu rvm list rubiesgösterir:

$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place,
         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-1.9.3-p125'.

rvm rubies

=> ruby-1.9.3-p125 [ x86_64 ]
   ruby-1.9.3-p194 [ x86_64 ]
 * ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Yanıtlar:


176

Rvm'yi kaldırdıktan sonra takılı kaldım

rvm implode

daha sonra rvm'yi yeniden yükledikten sonra aynı hata mesajını aldı. Wayne Seguin'in git hub sayfasına baktıktan sonra. Araçları sayfasında listeler ve

rvm reset 

bir kurulumdan sonra. Bu, hata mesajımı düzeltti. PATH düzenlemesine gerek yoktur.


13
Kontrol & my yeniden kontrol ettikten sonra ~/.bashrc, ~/.bash_profilekoşu rvm get stable --auto-dotfiles, yeniden denetimi ~/.bashrc, ~/.bash_profileve ~/.profilebirçok kez ... Bu cevap nihayet sabit! Ran: rvm resetve uyarılardan kurtuldu! (IMHO ... RVM yolda ilk olma konusunda çok titiz ... Yoluma ilk önce başka bir şey
koyarsam

11
: tu:rvm reset
JBird

18
bu benim için çalıştı! PATH düzenlemesine gerek yok, sadece rvm reset(mesaj son bir kez gösterilecek), şimdi bir rvm komutu verdiğimde artık PATH uyarısı vermem.
JohnRDOrazio

1
Rvm sıfırlamayı kullandığımda, rvm sıfırlamayı çalıştırdığım terminaldeki sorunu çözüldü. Bununla birlikte, yeni terminale geçtiğimde, rvm sıfırlamayı tekrar çalıştırmazsam hata / uyarı devam ediyor
Apurva Mayank

rvm helpşunun için oldukça korkutucu bir ipucu döndürüyor rvm reset: tüm varsayılanları ve sistem ayarlarını kaldırın 😄
Muhamed Huseinbašić

171

Cevap şuydu:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
# Load RVM into a shell session *as a function*

** .bashrc dosyamın ALTINDA ** (son satır - önemli!). Bunu .bash_profile dosyamda tuttum (Ubuntu'dayım) ve bu sadece kısmen kafa karıştırıcı hatalara yol açan kısmen çalıştı.


1
RVM zincirin tepesinde olmak istiyorsa, aşağıya doğru hareket etmek mantıksız görünüyor mu?
reneruiz

9
. [ba | z] shrc içinde yolu yeniden tanımlayan başka satırlar olması durumunda rvm'nin dosyanın altında olması gerekir. export PATH="/usr/local/bin:/usr/local/sbin:$PATH"Homebrew için muhtemelen rvm ile çatışan yaygın bir tanesidir.
TimeEmit

4
Yolu birkaç kez yeniden tanımladığım için .bash_profile profilimin altına koydum. Bu da işe yaradı.
Kyle Suss

1
terminali yeniden başlattıktan sonra bu benim için iyi çalıştı
NSTJ

24
bu kesinlikle doğru çözüm, ancak bunu yaparsanız rvm reset, bunu sizin için otomatik olarak yapacaktır ...
Ralph Callaway

34

Belki bunu çözmenin en iyi yolu bu değildir, ancak bu satırı .zshrc dosyamın altına ekledim (.bashrc'de de çalışacak!)

export PATH="$GEM_HOME/bin:$PATH"

Bu, RVM güncellemeleri ile daha temiz bir çözüm olan IMO'dur.
Dan L

Katılmıyorum, bence bunu çözmenin en iyi yolu bu :) Bunu .bash_profile'imin son satırı olarak koymak zorunda kaldım çünkü en son çalışıyor ve içinde başka yol bildirimleri var.
applejack42

Bu, bu sorunu çözmek için gerçekten en iyi çözümlerden biridir. Neredeyse 3 saat geçirdim ve sonunda pes etmek üzereydim: D sen adamsın. :)

~ / Bash_profile'ın son satırı tarafından yüklenen ~ /. Bu şekilde Bash'de çalışacak ve diğer mermiler tarafından alınacak.
Dmitri

Evet, bu en iyi çözümdür, çünkü açıktır ve dışa aktarımın nereye koyulacağını belirtin. Teşekkürler!!!
Albert Català

23

Michael Durrant'ın çözümünü denedim ve benim için işe yaramadı. ama koştum rvm get stable --auto-dotfilesve istediğim gibi çalışmaya başladı.

Umarım yardımcı olur


Bu, Mavericks'te işe yaradı, düzeltmeyi tamamlamak için terminali yeniden başlatmak zorunda kaldı.
Brett Bim

1
İTerm2 3.0.15 ile Mac 10.12.3'te, 2.5.0 balık tutun ve dosyamın rvm defaultaltında config.fish. komut rvm reset, terminal penceresini açık tutarken yardımcı olmadı. Bu komut işe yaradı.
Çıktım

Ah, muhtemelen komutları çalıştırırken, bashyorumlayıcı kullanıyorlardı ve bu yapılandırma dosyalarını da kontrol
etmeliydim

Hayır, iTerm yeniden başlatıldıktan sonra bile diğer terminal pencerelerinde hala bozuktu ve herhangi bir sayıda profil komut dosyasını kontrol etmek işe yaramadı, bu yüzden tüm yapılandırma satırlarını kaldırdım, bilgisayarımı yeniden başlattım, balık işlevi entegrasyonuyla RVM'yi yeniden yükledim ve bir rvm defaultsatır. Şimdi daha iyi ..
Pysis

8

Bu, sorulan sorunun yanıtı değil, çoğu yorumcunun / yanıtlayanın sorduğu ilgili sorunun yanıtı - Neden rvm satırını shell rc dosyasının altına koymanız gerekiyor?

Cevap basit.

  1. Arasında "ön" koyar ikili dizinlere yakut RVM yüklenir rvm kodu $PATHve
  2. .bashrc (veya varsayılan kabuğunuz için eşdeğeri) yukarıdan aşağıya satır satır okunur ve yorumlanır.

Öyleyse şu senaryoyu hayal edin:

$ echo $PATH
  /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
  /Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

$ export PATH=<something>:$PATH
$ echo $PATH
  <something>:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

Açıktır ki , RVM satırından sonra kabuk başlatma dosyasında bir şey varsa ve $ PATH üzerinde herhangi bir değişiklik yaparsa, daha özel olarak dizinlerin başına $PATHeklerse, bu değişiklikler rvm tarafından eklenen dizinleri ilk konumlarından aşağı itecektir. RVM çağrıldığında, Ruby ikili dizinlerinin BAM'ın en başında olmadığını görecektir $PATH! uyarıyı alacaksınız :).

Umarım bu işleri netleştirir.


6

Sadece deneyimlerimi eklemek: kullanıyorsanız .bash_profile, .bashrcmüdahale edip etmediğini kontrol edin . Bu durumda .bashrcçalışarak tek Bash yapılandırması lehine öldürme .bash_profile.


1
Bu benim sorunumu çözdü. Tüm yapılandırmalarım .bash_profile'da olduğu için .bashrc'nin oraya nasıl geldiğinden bile emin değilim. Rvm, yüklemede bashrc'ye bir şey koyar mı? Bashrc'nin içinde yalnızca bir satırı olduğunu ve bunun rvm ile ilgisi olduğunu düşünürdüm.
kevindeleon

1
Ne tür bir komut satırı yükleyicisinin onu ittiğini Tanrı bilir.
Kirletme

2
Bu genel bir çözüm değil, FWIW. .bashrcher iç içe geçmiş etkileşimli kabuk için yürütülür; .bash_profilesadece girilen ilk bash kabuğunda, yani oturum açma kabuğunda çalıştırılır. Değişkenler genellikle içinde ayarlanmalıdır .bash_profile, oysa işlevler, takma adlar vb. (Normal miras alınan ortamda iletilmeyen şeyler) ayarlanmalıdır .bashrc.
Barry Kelly

5

Buna bir takip sorum var (keşke sadece yorum ekleyebilseydim - ancak yeterli kredim yok). Aynı sorunu yaşadım - ve kullanılması önerilen rvm komut dosyasını izlediğimde--auto-dotfiles şekilde kabuk betiği .bashrc_profile'ımı sildiği için başım belaya girdi. .

Her neyse, sonunda yukarıda listelenen aynı yanıta geldim ve bu satırı sayfanın altına koydum .bashrc dosyasının koydum . [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Bashrc dosyasının ortasındaki satırla değil de neden böyle çalıştığını buldunuz mu? Unix'in, RVM'yi bir örnekte çalışırken başka bir örnekte çalışmasını sağlayan ortam değişkenini yükleme şekli konusunda biraz netlik var mı?


Hayır. İşe yaradı ve devam ettim :) Kızartılacak çok daha ilginç balık :)
Michael Durrant

5

Ben de aynı sorunla karşı karşıyaydım. Bunu bashrc dosyasında buldum

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
export PATH=$HOME/local/bin:$PATH

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

rvm için birden çok girdi. Bir girişi yorumladım ve iyi çalışıyor.

#export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
#export PATH=$HOME/local/bin:$PATH

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

3

Zshrc dosyamdaki PATH = satırımdan .rvm olan her şeyi temizledim

Bu, benim için sorunu çözdü, buradaki diğer cevaplar (rvm betiğini kaynaklamak veya otomatik nokta dosyalarıyla kararlı hale gelmek) çözmedi.


2

Bu komutu çok faydalı buldum. Davamı çözdü. Öyleyse, aynı sorunu yaşayan biri varsa, bunu deneyin: rvm get stable --auto-dotfiles


1

rvm install ruby-head Benim için sorunu çözdü - biraz zaman alıyordu ama hile yaptı. Bash dosyalarımda herhangi bir habersiz güncelleme yapıp yapmadığından emin değilim.


1

Ben çıkarmadan sona erdi ~/.profile, ~/.bashrcve ~/.zshrc.

Temelde sadece Mac'imde tuttum ~/.bash_profile. Ve çalışıyor.

Sanırım benim durumumda şunlar var:

dışa aktar PATH = "$ PATH: $ HOME / .rvm / bin"
[[-s "$ HOME / .rvm / scripts / rvm"]] && source "$ HOME / .rvm / scripts / rvm" # RVM'yi bir kabuk oturumuna * bir işlev olarak yükleyin *

bu dosyalarda ve bu yinelenen ayarlarda kafa karıştırıcı rvm


1

feragat

Çoğunlukla python kullanarak geliştiriyorum, bu yüzden bu geçici çözümün size doğru bir yakut ortamı vereceğinden veya sadece yolu değiştirip uyarıdan kurtulacağından emin değilim.

Arka fon

Benim durumumda, kurdum rvm önce, sonra pyenvsonra . Her ikisi için de yapılandırma değişecektir $PATH. Uyarıdan, rvm'nin her zaman yoldaki ilk kişi olmak istediği anlaşılıyor

$ echo $PATH

$HOME/.rvm/gems/ruby-2.6.3/bin: ......

Eklemek Ama eğer eval "$(pyenv init -)"olarak gerektirdiğipyenv sizin değişecek, $PATHTo

$ echo $PATH

$HOME/.pyenv/shims:$HOME/.rvm/gems/ruby-2.6.3/bin: ......

Çözümüm

$ rvm use system # Sistem gelişim aşamasına geri dön

$ rvm use ruby-2.6.3 # Kullanmanız gereken sürüme geçin

rvm sevdiği şeye giden yolu değiştirecek ve sinir bozucu uyarıyı bir daha görmeyeceksiniz.


0

En üstteki 2 yinelenen satırı yorumladıktan ve bunları en alta ekledikten sonra çalıştı. Çalışması için terminali yeniden başlatmayı unutmayın.

#[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
#[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
export PATH="/usr/local/opt/postgresql@9.6/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/postgresql@9.6/lib"

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

0

Ekleyebilirsin

rvm_silence_path_mismatch_check_flag=1

sizin için ~/.rvmrcdosyanın. Şimdi uyarı mesajı bunu gösteriyor.


1
Bu sadece mesajı görmezden gelmek, düzeltmek değil, kullanıcının istediği şey budur. Artı, yeni bir proje için sorun yeniden ortaya çıkacaktır.
ma3x

@ ma3x Aslında, OP bir soru sormadan sadece bir sorunu belirtti, bu yüzden bir uyarı mesajını 'görmezden gelmeyi' geçerli bir öneri olarak kabul ediyorum . Ayrıca yeni projeler ile ilgili kısmı da anlamıyorum.
AkaZecik

1
Soru işareti olmasa bile, hatayı düzeltmeye çalıştığı bağlamdan kesinlikle anlayabilirsiniz, gizlemeye değil :) Artı, cevabınız eksik çünkü bu, uyarı mesajının önerdiği şeyin sadece bir parçası. Başlangıçta, en son kararlı RVM'yi edinmenizi ve dosyalarınızı otomatik noktalamanızı önerir. Benim hatam olan yeni projeler için yeni mücevher setlerine başvurmak istedim.
ma3x

@ ma3x Görüşleriniz için teşekkürler :) Belki de akıl yürütme yöntemlerimiz farklıdır, ancak soruyu ve diğer cevapları okuduktan sonra, OP'nin bu uyarıdan kurtulmak istediği sonucuna vardım. Bunun bir hata olmadığını , bir uyarı olduğunu bir kez daha vurgulamak istiyorum . Ve PATHbeni rahatsız eden ve en fazla koruyucu seslerde bir yol düzeni uyguladığından , bu yanıtı göndermeye karar verdim. Cevabımı yeniden düşünmek ve yorumlarınıza göre iyileştirmek için zaman
ayıracağım

-3

BU PROBLEMİ DÜZELTİM. ŞU GİBİ KOMUTU KULLANIN:

rvm use 2.0.0-p353

-P353 veya başka bir versiyon detayını satır sonuna EKLEYİN


6
Bu, yalnızca mevcut kabuk oturumundaki sorunu çözer, bu nedenle tam olarak en iyi cevap değildir.
IIllIIll
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.