11

通常、私はパッケージマネージャーを介してインストールする傾向があります。しかし、私がたくさんのperlをプログラムしたとき、私はCPAN、新しいバージョンなどを使用しました。

一般的に、私はパッケージマネージャーを介してシステムのものをインストールし、独自のパッケージマネージャー(gem / easy_install | pip / cpan)を介して言語のものをインストールしていました。

現在、主にPythonを使用していますが、ベストプラクティスは何ですか?

4

2 に答える 2

17

システムのPythonバージョンとそのライブラリは、ディストリビューションのソフトウェアでよく使用されます。使用しているソフトウェアが、ディストリビューションと同じバージョンのpythonとすべてのライブラリに満足している限り、ディストリビューションパッケージを使用しても問題なく動作します。

ただし、多くの場合、パッケージの開発バージョン、新しいバージョン、または古いバージョンが必要です。そして、それはもう機能しません。

したがって、通常は、開発に使用する独自のPythonバージョンをインストールし、 buildoutまたはvirtualenv 、あるいはその両方を使用して開発環境を作成し、システムpythonと開発環境を相互に分離することをお勧めします。

于 2009-10-13T10:41:50.853 に答える
17

2つの完全に反対の陣営があります。1つはシステム提供のパッケージを支持し、もう1つは個別のインストールを支持します。私は個人的に「システムパッケージ」キャンプにいます。以下、それぞれの側からの議論を提供します。

Proシステムパッケージ:システムパッケージャーは、依存関係と、全体的なシステムポリシー(ファイルレイアウトなど)への準拠をすでに考慮しています。システムパッケージは、互換性を壊さないように気を配りながらセキュリティアップデートを提供します。そのため、アップストリームの作成者がバックポートしなかったセキュリティ修正をバックポートすることがあります。システムパッケージは「安全」です。システムのアップグレード:システムのアップグレード後、おそらく新しいPythonバージョンもありますが、システムパッケージャーからのものである場合は、すべてのPythonモジュールが引き続き存在します。これがDebianでの個人的な経験です。

Conシステムパッケージ:すべてのソフトウェアがシステムパッケージとして提供されているわけではなく、最新バージョンでは提供されていない場合もあります。自分でシステムにインストールすると、システムパッケージが破損する可能性があります。アップグレードすると、アプリケーションが破損する可能性があります。

プロの個別インストール:一部の人々(特にWebアプリケーション開発者)は、必要なパッケージだけを使用し、システムPythonから完全に切り離された、繰り返し可能なセットアップが絶対に必要であると主張しています。これは、自己インストール型パッケージとシステムパッケージを超えています。自己インストール型の場合でも、システムpythonを変更する可能性があるためです。別のインストールでは、あなたはしません。Lennartが説明しているように、このセットアップをサポートするための専用のツールチェーンがあります。人々は、このアプローチだけが再現可能な結果を​​保証できると主張しています。

個別のインストールの制限:バグ修正を自分で処理する必要があり、すべてのユーザーが個別のインストールを使用していることを確認する必要があります。Webアプリケーションの場合、後者は通常簡単に実現できます。

于 2009-10-13T10:57:17.673 に答える