SORU
22 ŞUBAT 2012, ÇARŞAMBA


Nasıl RVM ve RBEnv gerçekten işe yarıyor mu?

İlgi nasıl olduğumuRVMveRBEnvaslında iş. Açıkçası Ruby farklı sürümleri ve gemsets arasında takas ederler, ama bu nasıl yapılır? Sadece sembolik güncelleme, ama (ve Bash bilgim yüzeysel olduğunu itiraf etmeliyim) bu daha işin görünen kodu dalmıştır sahip olduklarını düşünmüştüm.

CEVAP
23 ŞUBAT 2012, PERŞEMBE


Kısa açıklama: çevre PATH takma tarafından rbenv çalışır. Konsept basit, ama şeytan ayrıntı; tam kepçe aşağıda yer almaktadır.

İlk olarak, rbenv oluştururaltlıklartüm komutları(, , *, gem *rakeirb2 ve Yakut tüm yüklü sürümleri arasında. Bu süreç denirne. Her zaman Ruby yeni bir sürümünü yüklemek veya komut sağlayan bir mücevher yükleyin rbenv rehash herhangi bir yeni komutları takozlanarak olduğundan emin olun.

Bu levhaları tek bir dizin (varsayılan~/.rbenv/shims) yaşıyor. Rbenv kullanmak için PATH: cephe levhaları dizin eklemek gerekir

export PATH="$HOME/.rbenv/shims:$PATH"

O zaman her zaman çalıştırmak ruby komut satırından veya bir komut dosyası çalıştırmak olan mesele okur #!/usr/bin/env ruby, işletim sistemi bulacak ~/.rbenv/shims/ruby ilk ve koşmak yerine diğer ruby çalıştırılabilir olabilir yüklü.

Her shim teslim rbenv exec çalışan küçük bir Bash betik. Senin yolunda rbenv ile, irb rbenv exec irb eşdeğer ruby -e "puts 42" rbenv exec ruby -e "puts 42" eşdeğerdir.

rbenv exec komutu kullanmak istediğiniz ne, o zaman bu sürüm için İlgili komutu çalıştırır rakamlar. İşte nasıl:

  1. Eğer RBENV_VERSION ortam değişkeni ayarlanmışsa, değeri Ruby sürümü kullanılacağını belirler.
  2. Eğer geçerli çalışma dizini .rbenv-version bir dosya varsa, içeriği RBENV_VERSION ortam değişkeni ayarlamak için kullanılır.
  3. Eğer geçerli dizindeki .rbenv-version dosyası yok, rbenv senin dosya sisteminin kök vurur kadar .rbenv-version bir dosya için her ana dizini arar. Eğer biri bulunursa, onun içindekiler RBENV_VERSION ortam değişkeni ayarlamak için kullanılır.
  4. Eğer RBENV_VERSION hala ayarlanırsa, rbenv ~/.rbenv/version dosya içeriğini kullanarak ayarlamak için çalışır.
  5. Eğer herhangi bir sürümü herhangi bir yerde belirtilmemişse, rbenv "" Ruby—yani ne olursa olsun versiyonu ise rbenv yolunuzda olmasaydı çalıştırın. sistemi kullanmak istediğinizi varsayar

(Geçerli dizindeki .rbenv-version bir dosya yaratır rbenv local komutu ile projeye özel Ruby sürümü ayarlayabilirsiniz. Benzer şekilde, rbenv global komut ~/.rbenv/version dosyasını değiştirir.)

RBENV_VERSION ortam değişkeni ile silahlı, rbenv PATH execs komut ve argümanlar senin önünde rbenv exec geçti ~/.rbenv/versions/$RBENV_VERSION/bin ekler. Voila!

Kaputun altında neler olup bittiğini tam olarak ayrıntılı bir görünüm için, RBENV_DEBUG=1 ayar ve Ruby komut çalıştırmayı deneyin. Her Bash rbenv çalışır terminal için yazılacak komut.


Şimdi, rbenv sürüm değiştirme ile ilgili, ama eklentileri gelişen bir ekosistem setting up your environment, managing "gemsets" automating bundle exec bile installing Ruby gelen her şeyi yapmak yardımcı olacaktır.

Oldukça IRC destek anahtarlama Ruby sürümleri ile ne ilgisi var emin değilim, ve rbenv ve destek istemek için değil, basit anlaşılır yeterli olacak şekilde tasarlanmıştır. Ama eğer yardıma ihtiyacı var., sorun ve tıklama sadece bir çift uzakta takipçi Twitter.

Rbenv yazarı değilim, ruby-yapı ve rbenv-vars. açıklama:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • buttheadgsxr1000

    buttheadgsxr

    24 Ocak 2008
  • guau . .

    guau . .

    25 Ocak 2008
  • sghaff1

    sghaff1

    23 Mart 2009