2011-10-28 7 views
8

Ruby ile ilgili deneyimim var, ancak Python deneyimimden daha az. Birkaç Python paketi paketledim ve yayınladım, ancak yayınladığım sadece bir Ruby paketi var. Ruby paketleme ekosistemi hakkında Python ile karşılaştırarak hızlı bir şekilde öğrenmek istiyorum.Python Terminolgies Olarak Yakut Ambalaj Ekosistemi

  • Ruby'de virtualenv'e eşdeğer bir araç olduğuna inanıyorum, ancak bunun ne olduğunu bilmiyorum. RVM ve Bundler'ın rolleri nelerdir?
  • Bir Python paketi yazdığımda genellikle setup.py develop komutunu kullanırım - bağımlılıkları giderir, ancak site paketlerine yüklenmez. Ruby'de eşdeğer olan nedir?
  • Ruby paketlerinin dizin düzeni yapısını oluşturmanın tercih edilen yolu nedir?
  • Gem paketi adlandırma kuralı. Gem ismi büyük/küçük harfe duyarlı mı? İçerdiği Ruby modülünün adıyla aynı mı olmalı?
  • Kaçırdığım diğer tüm noktalar.

cevap

10

RVM (Virtualenv belki daha fazla gibi)

Bundler (ben pip kullanmadıysanız, bu setup.py ve pip gibi çalışır geliştirme ve dağıtım için paketleme bağımlılıkları içindir, öyle görünüyor

da çıkış rbenv VIRTUALENV benzer rubygem'ler ve Bundler bazı özelliklerini) olması

Bundler en Gemfile gereksinimi dosyasını en pip benzer

Bundler geliştirme dizininde bağımlılıkları yüklemek ve dağıtım için onları paketi.

Dizin düzenleri şuna benzer eğilimindedir:

/ - 
    lib - classes/modules etc. 
    bin - executables things you want on $PATH 
    test - unit tests 

Jeweler kurmak, bakımını yapmak ve mücevherler serbest bırakılması için iyi bir araçtır.

DÜZENLEME: İşte

bazı diğer kaynaklar: Yakut düzenine

bazı bağlantılar:

Python için bazıları: Burada

biri yapıyor

+0

Peki rubygems i geliyor nto oynamak?Bir paket deposundan kod indiriyor mu ve pip'e çok benziyor mu ve easy_install kullanılıyor mu? – user37078

+1

evet, rubygems ruby ​​"taşlar" veya paketleri yüklemek ve yönetmek için 'gem' komutu sağlar. – drnewman