PythonのTerminolgiesとしてのRubyパッケージング環境

私はRubyにいくつかの経験がありますが、それは私のPythonの経験よりも少ないです。私はいくつかのPythonパッケージをパッケージ化して公開しましたが、私が公開したRubyパッケージは1つだけです。 Pythonと比較して、Rubyパッケージのエコシステムについて素早く学びたいと思っています。

  • Rubyにはvirtualenvに相当するツールがあると思いますが、それはまだ分かりません。 RVMとBundlerの役割は何ですか?
  • Pythonパッケージを書くときには、通常、 setup.py コマンドを使用します。依存関係は解決されますが、サイトパッケージにはインストールされません。 Rubyに相当するものは何ですか?
  • Rubyパッケージのディレクトリレイアウト構造を作るための好ましい方法は何ですか?
  • Gemパッケージの命名規則Gemは大文字と小文字を区別しますか?含まれているRubyモジュールの名前と同じである必要がありますか?
  • 私が見逃したその他の点。
8

1 答え

RVMはvirtualenv checkout rbenvと似ています(おそらくvirtualenvのようなものです)

Bundlerは、開発とデプロイメントの依存関係をパッケージ化するためのもので、 setup.py とpip(RubygemsとBundlerのいくつかの機能を持っているようです)

Bundlerの Gemfile はpipの要件ファイルに似ています

Bundlerは開発ディレクトリに依存関係をインストールし、それらをデプロイメント用にパッケージ化します。

ディレクトリのレイアウトは次のようになります。

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

Jeweler is a good tool for setting up, maintaining and releasing gems.

編集:

他にもいくつかのリソースがあります:

Rubyレイアウトのいくつかのリンク:

いくつかはPython用です:

ここではツールの比較をしています:

10
追加された
では、ルビー宝石はどこで使われますか? pipリポジトリからコードをダウンロードし、pipやeasy_installのように解凍しますか?
追加された 著者 Dan,
はい、rubygemsは、Rubyの "gems"やパッケージをインストールして管理するための gem コマンドを提供します。
追加された 著者 drnewman,