私は最近、2つの人気のあるプログラミング言語のパッケージ配布システムに関するいくつかの批判( 1 、 2 、を参照)を読みました:Ruby gems and Python eggs。それらに対して述べられている最も重要な議論は、それらがシステムパッケージマネージャーを置き換えることです(すべてのLinuxディストリビューションのように1つある場合)、これにより、卵や宝石の追跡が困難になり、コードのパッチ適用が困難になります。
実際に卵と宝石は正しいですか?そうでない場合は、PythonまたはRubyモジュールを配布する代わりの方法はありますか?開発者はパッケージマネージャー(apt-get、pacman、。 ..)機能?
たとえば、Ubuntuパッケージマネージャーを介して利用できる 多数 pythonモジュールがあります。他のソフトウェアと同様に、それを独自のパッケージに入れるのはディストリビューターの仕事です。ネイティブOSパッケージが利用可能になったときに気づいて使用するのはユーザーの仕事です。考えられるすべてのパッケージ形式を説明するのは開発者の仕事ではないと思います。
卵と宝石は、まだシステムパッケージを取得していないモジュールや、パッケージマネージャーに似たものがないにもかかわらず不可解に人気のあるオペレーティングシステムにとって、優れた配布方法です。
私はRubyを使用しています。多くの場合、私はそれをWindowsで使用します。 Windowsでapt-get
やrpm
などを使用するのはかなり困難です。しかし、宝石は私が必要としていた方法で一貫して機能し、まったく問題を引き起こしませんでした。
質問は、Linuxオペレーティングシステムの特定のサブセットを実行していない開発者があなたの言語を使用できるようにしたいですか?
もしそうなら、多分あなたはrubygemsのような組み込みのパッケージシステムがあなたが利用可能にするツールを誰もが利用できるようにしたいでしょう。
言語に、OSパッケージマネージャーによって管理されているディレクトリとは異なるディレクトリにパッケージをインストールさせます。これは何 /usr/local
は発明されました。