あなた自身の単純なリポジトリをホストする¶
あなた自身の単純なリポジトリ [1] をホストしたいのであれば、 devpi のようなソフトウェアパッケージを使うこともできますし、単に web サーバ上に適切なディレクトリを作成して静的ファイルを提供し自動でインデックスを生成させることも可能です。
どちらの場合でも、ユーザとしての既定のリポジトリではない場所をあなたのリポジトリにしようとしているのでしょうから、あなたのプロジェクトの説明にインストーラを適切に設定するように指図しておくべきでしょう。例えば pip なら:
python3 -m pip install --extra-index-url https://python.example.com/ foobar
py -m pip install --extra-index-url https://python.example.com/ foobar
加えて、あなたのリポジトリを公開する場合は正当なHTTPSで公開することが 強く 推奨されます。この時、ユーザがあなたのパッケージをインストールする際のセキュリティは、すべてのリポジトリが適切なHTTPS設定を使っているか否かに依存します。
"手動"リポジトリ¶
ディレクトリ構造は極めて単純で、ルートディレクトリ内に各プロジェクトを納めたディレクトリを作成する必要があります。このディレクトリは、プロジェクトの 標準化された名前 になっているべきです。各プロジェクトのディレクトリには、それぞれダウンロード可能なファイルを置くだけです。"Foo" というプロジェクト (のバージョン 1.0 と 2.0) と "bar" というプロジェクト (のバージョン 0.1) があるなら、ディレクトリ構造はこんなふうになるでしょう:
.
├── bar
│ └── bar-0.1.tar.gz
└── foo
├── Foo-1.0.tar.gz
└── Foo-2.0.tar.gz
この配置ができあがったら、あとはルートディレクトリを自動インデックス付きでウェブサーバから提供するように設定するだけです。 Twisted の組み込みウェブサーバを使う例では、単に twisted -n web --path. を走らせておいて、ユーザに対してこのURLをインストーラの設定に加えるように指示するだけです。
既存のプロジェクト¶
プロジェクト |
パッケージアップロード |
PyPI フォールスルー [2] |
補遺 |
|---|---|---|---|
✔ |
✔ |
同期、複製、フェールオーバ、ミラーリングが可能な複数のインデックス |
|
✔ |
|||
✔ |
|||
メンテナンスされていない; またプロクシでキャッシュ; 認証、認可 |
|||
メンテナンスされていない; GitHub内のファイルを提供する |
|||
✔ |
また、ミラーリング、プロクシ利用; Pulp 用のプラグイン |
||
また、ミラーリング; 手動の同期 |
|||
サーバではなくて、静的ファイルのサイトのジェネレータ |
|||
標準ライブラリ |
|||
✔ |
mod_rewrite および mod_cache_disk を用いて、Apache サーバ経由のパッケージインデックスへのリクエストをキャッシュすることができます |