[解決済み] Python プログラムを配布するための Debian パッケージを作成する標準的な方法はありますか?
2023-03-09 21:49:29
質問
この方法に関する情報は山ほどありますが 猫の皮を剥ぐ方法は 1 つだけではありません。 また、このプロセスの一部をカバーするすべてのチュートリアル/マニュアルは、他のチュートリアルとは異なる特定の前提を置いているようなので、私はまだそれを把握できていません。
今のところ、これは私が理解したと思うことです。
- 私の最終目標は、quot;binary" .deb パッケージを作成することであるべきです。そのようなパッケージは、すべての Python プログラムがそうであるように、プラットフォームに依存しない (32/64 ビット) ことになります。
- バイナリパッケージを作成するために、私は最初にソースパッケージを作成する必要があります。
-
ソースパッケージを作成するために、次のいずれかを使用できます。
CDBS
またはdebhelper
. 初心者の方にはDebhelperをお勧めします。 -
ソースパッケージ作成の核となるのは
DEBIAN
ディレクトリに、どこにファイルをコピーする必要があるか、どのような著作権とライセンス体系に従うか、どのような依存関係があるか、などを明確にする多数のファイルを配置することです。 -
ステップ 4 は、ほぼ自動で
dh_make
コマンドを使用します。 もし Pythonのソースには、distutilsのsetup.py
スクリプトがあります。
さて、私の質問です。
- 私の理解は正しいですか? 何か見落としていることや、間違っていることはないか?
-
ステップ#5は、私にとって本当にもっと分かりにくいものです。具体的には、私にとって最も不明瞭なままである2つのポイントです。
-
をどのように書けばいいのでしょうか?
setup.py
スクリプトを書くことができますか? EDITです。 で スタンドアロンプログラム デスクトップユーザーによって使用されることを意図したプログラムという意味です。 モジュール とは異なり、インポートされた後に他のソフトウェアで使用される機能のコレクションのように理解しています)。私の特定のケースでは、実際に必要なのは 2 つの メイン ソフトウェアと別のユーティリティ (事実上、他のソフトウェアと同じパッケージにあるべき 2 つ目のプログラム) です。 - DEB パッケージのためのそのようなスクリプトの特異性は何ですか。 公式ドキュメントは RPM と Windows のものしか扱っていないようですが...。
-
をどのように書けばいいのでしょうか?
ちなみに、これらは私がこれまでに自分で見つけた最高の情報源です。もし、これより良いものがあれば、ぜひ教えてください。:)
- UbuntuのPythonパッケージングガイド
- Python setup.py から .deb パッケージを作成する (それは は が表示されますが、これは 説明 を十分に説明してくれません。)
- ShowMeDo ビデオ - python プログラムから .deb パッケージを作成する方法です。 プログラム" (これは最新のものではなさそうで、もし私が正しいのであれば、個人使用のための、依存関係のないパッケージを作成することになります。 署名された変更履歴やその他の重要なデータがないため、Debian のポリシーと互換性がありません)。
どのように解決するのですか?
これは、次のようになります。 stdeb はあなたが望むことをするようです。
また、スクリプトをインストールするために、強くお勧めするのは ディストリビューションの console_scripts のエントリポイントサポートを強く推奨します。
関連
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Pythonで複数行のコメントを作成する方法はありますか?
-
[解決済み] 億の相対的輸入
-
[解決済み] pipでインストールしたpythonパッケージの依存関係を確認する
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] distribute, distutils, setuptools, distutils2 の違い?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] Python 言語を決定するには?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複