2

FOSSコマンドラインユーティリティ(つまり、ライブラリではなくアプリケーション)を作成し、それを便利なインストール用のパッケージとして配布したい場合は、次の方法でこれを行うことをお勧めします。

NB。一般的に正しい慣行はなく、どちらか一方のアプローチが明らかに最善である特定の状況があると思われる場合、これらの状況は何ですか?

4

2 に答える 2

1

このブログエントリによると、あなたがすべき主な理由は

Debian システムに setuptools/ ez_setupを使用して Python モジュールをシステム全体にインストールしないでください

それは

  1. 同じ Python モジュールの異なるバージョンを異なるインストール パス ( および を介してインストールeasy_install)aptitudeに配置できること

  2. ありませんeasy_uninstall。(しかし、pipこれを行うことができるようです: How do I remove packages installed with Python's easy_install? )

同じことが、一種の (Python) モジュールでもある CLI ツールにも当てはまります。

もちろん、easy_installすべてのシステム パッケージ マネージャーをパッケージ化するよりも、 をパッケージ化する方が必要な作業は少なくて済みます。しかし、ツールをeasy_installパッケージ化して、特定のターゲットのパッケージ化に詳しい人に助けを求めてみませんか? submit@bugs.debian.org(Debian の場合は、「[needs-packaging]」で始まる件名の電子メールを に送信してみてください。)

ユーザーとしての私の限られた経験からのみお話しさせてください -- Python と Debian/Ubuntu。最終的に Windows から Ubuntu に切り替えたときの主な理由の 1 つは、Debian 用にパッケージ化されたほぼすべてのソフトウェアを簡単にインストールできることでした。移行の最初の期間中の質問の 1 つは、次のとおりでした。

「最新の多方向差分ツールは何ですか?OK、融合と拡散があります。見てみましょう...」

sudo apt-get install meld diffuse

「わかりました。では、このクリップボード マネージャーは Parcellite という名前でしたか?」

sudo apt-get install parcellite

「私はタスクコーチが大好きです。持っていますか?」

sudo apt-get install taskcoach

「すぐsvnにインストールできないのはなぜですか?」

sudo apt-get install svn
... (some error)
apt-file search svn
... (tl;dr)
apt-file search svn | grep /svn$
sudo apt-get install subversion

梱包の利便性についてはこれで十分です。少なくとも、言及されている最初の 2 つのツールは純粋な Python ツールですが、気にする必要はありません。システム パッケージ マネージャーがすべてを行ってくれます。おそらくeasy_install、それが唯一のオプションである場合は、 を使用してそれらをインストールしたことでしょうが、 を使用してシステム全体にインストールすることのリスクを認識できた可能性があり、easy_installそれを削除したでしょう.

于 2012-06-28T19:34:26.730 に答える
0

ユーザーが配布方法に満足しているアプリケーションの場合に従う手順は、おおまかに次のように思われます。

ここに画像の説明を入力してください

たとえば、次のようにします。

  • Bundler:Rubyで書かれており、Ruby開発者に役立ちます。アプリケーションレベルのパッケージを介して配布されます。
  • fwknop:Perlで書かれていて(少なくとも元々は)、エンドユーザーにとって便利です。システムレベルのパッケージ/インストーラーを介して配布されます。
  • Pandoc:Haskellで書かれており、Haskellアプリケーションを開発する過程でHaskell開発者に役立つかもしれませんが、他の人に役立つかもしれません。アプリケーションレベルとシステムレベルのパッケージの両方 で配布されます。

これらよりもおそらく良い例があります。また、これまでの私の結論は単なる観察的なものです。この決定フローを明示的に示している参考資料は見つかりませんでした。そのため、より包括的な回答を歓迎します。

NB。フローチャートのコードは、回答に合わせて調整したい場合に備えて、オンラインになっています。それを使用できるようにするには、LaTeXが機能している必要があります。

于 2012-06-29T05:22:01.707 に答える