TL; DR: RVM'nin komutu yeniden yükleyerek veya vererek en az 1.26.11'e kadar güncel olduğundan ve rvm get head
terminal ortamı için yalnızca bir kez başlatıldığından emin olun.
Sonuç
Sonunda çevremi düzeltebildim. Bazıları aynı belirtiye sahip olsalar da, başka bir kök nedene sahip olsalar bile, bazılarına yardım etmek için özel sorunumla ilgili bazı bilgiler yayınlayacağım.
Sebeb olmak
Kök sorunun bir bölümü RVM'den geliyordu ve komut satırı ortamlarım için nasıl başlatıldığını gösteriyor. Bunu yapmanın birkaç farklı yolunu bulmuştum, özellikle de fish
kabuk ortamı için özel olarak ek bir yöntem üretildi .
Kök neden ya da görünüyordu:
- RVM'yi bir defadan fazla başlatmak, terminal konfigürasyon dosyası başına bir defa ifade ettiğim ve zincirleme şekli nedeniyle, otomatik olarak eklenen diğerlerinin farkında değildim.
- Veya, bir şekilde, bir terminal ortamı için ilklendirmeyi karıştırıp,
fish
diğer terminal ortamımda çalıştırıldığını bash
veya bunun tersi olduğunu söyleyen ifadeler eklendi . Bu, bozuk bash
PATH’in :
s tarafından sınırlandırılmış yollardan bazılarının bulunduğu , ancak daha sonra da diğerleri için yanlış sözdizimi olan bash
ancak bunun için doğru olan boşlukların içerdiği ayrıntılarımda görülebilir fish
.
- Ya da her ikisi de oluyordu!
Ardından, kök sorunun diğer bir bölümü, RVM / direnv ile ilgili bir hatanın, tuzak işlevi ile ilgili yakın zamanda sarıldığı görülüyordu. Muhtemelen, RVM'nin neden olabileceği diğer problemli yayınlardan birine sahip olduğumda tekrar karşılaştım:
- Bir yeniden kurulum:
curl -sSL https://get.rvm.io | bash
- Manuel güncelleme:
rvm get head
- Ekleyerek bir otomatik güncelleme (Sadece yaptığını)
rvm_autoupdate_flag=2
için~/.rvmrc
Bu sorun 30 Mart 2016 veya daha sonra 1.26.11 sürümünden itibaren düzeltilmelidir:
Hikaye
GNU yardımcı programları ile dosya sistemi üzerinde tam bir arama yapmak için mücadele ettikten sonra dosya içeriğini incelemek için Atom'u daha başarılı olmak için kullandım ve bunun tek bir oluşumunun Zanchey tarafından belirtilen dosyada shell_session_update
bulunduğunu tespit /etc/bashrc_Apple_Terminal
ettim (tarih dosyaları dışında). ve benzeri). Ayrıca neden çalıştırıldığından da emin değilim çünkü iTerm (2) kullanıyordum ve $TERM_PROGRAM
bu durumda ki değer iTerm.app
değil Apple_Terminal
.
Ayrıca, bir nedenden ötürü, RVM kurulumunu bir kereden fazla yönetmek zorunda kalmamıştım, görünüşe göre zaten birkaç 'nokta dosyasına' konfigürasyon ekleyen kurulum sürecinden geçtim, burada bazılarını veya satırlarını manuel olarak da ekledim. .
Bununla birlikte, bir .bashrc
dosya yapmıştım ve Mac'imden ona bağlıydım .bash_profile
, çünkü görünüşe göre varsayılan olarak yoktu. Daha önce, .bash_profile
bazı kişiselleştirmeler .bashrc
için iyi olan ve kullanıcı takma adlarını ve işlevlerini tanımlama veya diğerleri için iyi olan bir Linux sisteminde okudum . Bu yüzden , benzer sistemin de kopyaladığı, tüm kullanıcı dizinindeki .bash_profile
dosyanın içine, özellikle de dosyaya bakmaya alışkın değildim .profile
. Unutmayalım ki a da path_helper
(!) Karışımında, ancak herhangi bir soruna katkıda bulunmadığı görülüyor.
Ortamı kurmanın, doğru ya da doğru olmasının olası yolları şunlardır:
Daha fazla detay
Daha fazla inanılmaz ayrıntı için, problemin hatalarını ayıklarken farklı ortamlar arasında yakaladığım bazı örnek yollar:
Orijinal (kırık) balık YOLU
/Kullanıcılar / kullanıcı adı /. ruby-2.0.0-p648 / bin / Kullanıcı / kullanıcı adı /.rvm/bin / usr / yerel / bin / kullanıcı / bin / kutu / kullanıcı / sbin / sbin / kullanıcı / yerel / munki / kullanıcı / kullanıcı / kullanıcı adı /. çöp Kutusu
'Doğal olarak' daha iyi balık PATH
/ usr / yerel / opt / coreutils / libexec / gnubin / usr / yerel / opt / findutils / bin / usr / yerel / bin / usr / bin / bin / usr / sbin / sbin / usr / yerel / munki
Orijinal (kırılmış) bash PATH
/libexec/gnubin:/bin:/Users/username/.rvm/gems/ruby-2.0.0-p648/bin /Users/username/.rvm/gems/ruby-2.0.0-p648@global/bin / Kullanıcılar /username/.rvm/rubies/ruby-2.0.0-p648/bin / Kullanıcı / kullanıcı adı/.rvm/bin / usr / yerel / bin / usr / bin / bin / usr / sbin / sbin / usr / yerel / munki : /Users/username/.rvm/bin
'El ile' Sabit bash PATH
/libexec/gnubin:/bin:/Users/username/.rvm/gems/ruby-2.0.0-p648/bin:/Users/username/.rvm/gems/ruby-2.0.0-p648@global/bin: /Users/username/.rvm/rubies/ruby-2.0.0-p648/bin:/Users/username/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: /sbin:/usr/local/munki:/Users/username/.rvm/bin:/Users/username/.rvm/bin
'Doğal olarak' daha iyi bash PATH
/ Usr / local / opt / coreutils / libexec / gnubin: / usr / local / opt / findutils / bin: / usr / local / opt / coreutils / libexec / gnubin: / usr / local / opt / findutils / bin: / usr / local / bin: / usr / bin: / bin: / usr / sbin / sbin: / usr / local / Munki
Notlar:
- 'Orijinal', problemi çözerken her iki komut satırındaki tercümandaki yepyeni ortama başlamaktan kaynaklanıyordu.
- Tabii ki yanlış yol dizgisini aldığımda, sözdizimi hatalarını düzelttiğimde ve yorumlayıcının daha doğru çalıştığını gördüğümde 'el kitabı', kök nedenini düzeltmeye devam ederken ne bekleyeceğimi biliyordum.
- 'Doğal', benim gibi çevre terminal yapılandırma dosyalarımı yüklemeyi ilk atladığım zamanlardı
.bashrc
ve sonunda sorun çözüldükten sonra çalıştırılmalarını sağladı.
shell_session_update
OS X tarafından yüklenen bir Bash işlevi/etc/bashrc_Apple_Terminal
olduğundan, RVM'nin çalıştığı Bash komutlarındaki bir şey çıktı olarak üretiyordur.