Ruby'nin Ubuntu'da belirli bir sürümü için Ruby Gem Kurma


1

Ubuntu işletim sistemimde Ruby 1.8 ve Ruby 1.9.1 var. Bir yaptığımda gem install php_http_build_query, gemiyi Ruby 1.8'e yükler. Ruby 1.9.1'e nasıl kurarım?

Yanıtlar:


1

Önsöz RVM (Ruby Sürüm Yöneticisi) en iyi uzun vadeli alternatif olabilir.

Senaryonuzu bildiğime inanıyorum çünkü Ubuntu 12.04'ü kullanırken daha önce de oradaydım. Her şeyden önce, bu çemberlerin içinden atladıktan sonra Ruby'yi bir sistemde yönetmenin en iyi yolunun RVM (Ruby Sürüm Yöneticisi) kullanmak olduğunu öğrendim . Resmi Ubuntu / Debian paket yöneticisi kurulumunun bir parçası değil, ancak Ruby'nin gelişimi konusunda ciddiyseniz, RVM kurulum yapmadan ve Ruby'nin birden çok sürümünü çakışma olmadan kullanmanın en iyi yoludur.

Ancak, yalnızca Ruby 1.9.1 kullanıyorsanız ve bunun varsayılan Ruby sürümü olarak tanınmasını istiyorsanız, aşağıdakileri yapın.

Bununla birlikte, RVM'nin ihtiyaçlarınızı karşılamayacağı bir kurulumdaysanız veya Ruby 1.9.1 ile kalmayı tercih ediyorsanız, okumaya devam edin…

Bu yüzden, Ubuntu 12.04'teki varsayılan depo aracılığıyla Ruby 1.8'i kurduğunuzu farz edeceğim ve daha sonra - gerçeğinden sonra - Ruby 1.9.1'e ihtiyacınız olduğunu fark ettiniz, böylece şöyle bir komutla yüklediniz:

sudo aptitude install ruby1.9.1 ruby1.9.1-dev \
                      rubygems1.9.1 irb1.9.1 ri1.9.1 rdoc1.9.1 \
                      build-essential libopenssl-ruby1.9.1 \
                      libssl-dev zlib1g-dev

Eh, bu olacak Yakut 1.9.1 Sisteminizde yüklü olsun ama olmaz Yakut varsayılan 1.9.1 olun. Bu setin elde edilmesinin anahtarı kullanmaktır update-alternativesve resmi el update-alternativeskitabında açıklandığı gibi :

Aynı veya benzer işlevleri yerine getiren birçok programın aynı anda tek bir sisteme kurulması mümkündür. Örneğin, birçok sistemde aynı anda kurulu birkaç metin editörü vardır. Bu, bir sistemin kullanıcılarına, her birinin istenirse farklı bir düzenleyici kullanmasına izin veren bir seçenek sunar, ancak bir programın, bir kullanıcı için belirli bir tercih belirtmemişse, bir düzenleyicinin çağırması için iyi bir seçim yapmasını zorlaştırır.

Debian'ın alternatif sistemi bu sorunu çözmeyi amaçlamaktadır. Dosya sistemindeki genel bir ad, değiştirilebilir işlevsellik sağlayan tüm dosyalar tarafından paylaşılır. Alternatifler sistemi ve sistem yöneticisi birlikte bu asıl dosyanın hangi asıl dosyaya başvurduğunu belirler.

Bu durumda, Ruby 1.9.1'in sistemdeki varsayılan Ruby olarak doğru bir şekilde tanınması için atmanız gereken üç adım vardır.

İlk önce bu komutu çalıştırın:

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 400 \
                         --slave   /usr/share/man/man1/ruby.1.gz ruby.1.gz \
                                   /usr/share/man/man1/ruby1.9.1.1.gz \
                         --slave   /usr/bin/ri ri /usr/bin/ri1.9.1 \
                         --slave   /usr/bin/irb irb /usr/bin/irb1.9.1 \
                         --slave   /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.1

Ardından, update-alternativesRuby tercümanınızı seçmek için tekrar çalıştırın . Bu, çekirdek Ruby öğeleri için sembolik bağlantıları da değiştirir:

sudo update-alternatives --config ruby

Seçiminizi yapın ve ardından update-alternativesilgili Ruby GEM'lere gidin:

sudo update-alternatives --config gem

Son olarak, Ruby sürümünün şu şekilde güncellendiğini onaylayın:

 ruby --version

1

Gem'in belirli sürümünü ruby'nin belirli bir sürümüne yüklemek için mutlak yolu kullanın . örn /opt/sensu/embedded/bin/gem install vmstat.

ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

/opt/sensu/embedded/bin/ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

Varsayılan sürümüm yakut 1.9.3p392 olsa da, yakut 2.3.0p0'a özgü taşlar yükleyebilirim.


0

En iyi çözüm değil, ama acelem var. /var/lib/gems/1.8/gems/Klasöre gittim ve içeriğini klasöre kopyaladım /var/lib/gems/1.9.1/gems. 1.9.1'de bir mücevher klasörü yoktu, bu yüzden manuel olarak oluşturmak zorunda kaldım.


0

Gem komutu, kurulu olan Ruby versiyonuna bağlı.

Ruby 1.8 için Gem, yakut 1.9 için gem farklıdır.

Bu nedenle, yolunuz 1.8’i gösteriyorsa, gem komutu taşı 1.8 ile ilgili yola yükler.

Çözüm: Hızlı ve basit yol, ortam değişkenindeki yakut yolunu 1,9 olarak değiştirip gem yüklemesini yapmaktır.

Not: Ruby 1.8'e ihtiyacınız varsa yolu tekrar değiştirmeniz gerekir. Ayrıca gem her Ruby sürümü için yukarıda belirtilen şekilde ayrı ayrı kurulmalıdır.


0

gemKomutlar da başına sürümü dosya ile birlikte gelir. Bir göz atın bu paket örneğin: İçerdiği gem1.8. Bu, sistem varsayılanı Ruby sürümünden bağımsız olarak istediğiniz Ruby sürümünü hedefleyebileceğiniz anlamına gelir.

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.