2011-10-28 6 views
8

Ho un po 'di esperienza con Ruby, ma è inferiore alla mia esperienza con Python. Ho confezionato e pubblicato diversi pacchetti Python, ma c'è un solo pacchetto Ruby che ho pubblicato. Voglio conoscere rapidamente l'ecosistema di packaging di Ruby confrontandolo con Python.Ruby Packaging Ecosystem As Python Terminolgies

  • Credo che ci sia lo strumento equivalente a virtualenv in Ruby, ma non so cosa sia ancora. Quali sono i ruoli di RVM e Bundler?
  • Quando scrivo un pacchetto Python, di solito uso il comando setup.py develop - risolve le dipendenze ma non è installato sui pacchetti del sito. Qual è la cosa equivalente in Ruby?
  • Qual è il modo migliore per creare una struttura di layout di directory dei pacchetti Ruby?
  • Regola di denominazione del pacchetto gemma. La gemma è maiuscola/minuscola? Dovrebbe essere uguale al nome del modulo Ruby contenuto?
  • Altri punti che ho perso.

risposta

10

RVM è simile a virtualenv anche rbenv cassa (forse più simile virtualenv)

Bundler è per le dipendenze di confezionamento per lo sviluppo e la distribuzione, funziona come setup.py e PIP (non ho usato pip, sembra di avere alcune caratteristiche del rubygems e Bundler)

di Bundler Gemfile è simile a quella di pip di file requisito

Bundler installerà le dipendenze nella directory di sviluppo, e li pacchetto per la distribuzione.

layout Directory tendono ad assomigliare a questo:

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

Jeweler è un buon strumento per la creazione, il mantenimento e rilasciando gemme.

EDIT:

Qui ci sono alcune altre risorse:

Alcuni link layout di Rubino:

Alcuni per Python:

Eccone uno facendo un confronto di strumenti:

+0

Così dove RubyGems mai io non giocare?Esegue il download del codice da un repository di pacchetti e lo decomprime molto come per pip e per easy_install? – user37078

+1

sì, rubygems fornisce il comando 'gem' per l'installazione e la gestione di ruby" gems "o pacchetti. – drnewman