web-dev-qa-db-ja.com

単一のpythonスクリプト用のdebパッケージを作成するにはどうすればよいですか?

Debパッケージとして配布したいpythonスクリプトが1つあります。 Unityパネルにローカル日付を表示する indicator です。 スクリプトまたはバイナリから.debパッケージを作成 を実行しましたが、失敗したためdebパッケージを作成できませんでした。

誰かが私にすべきことについて段階的な指示を与えることができますか?私の知る限り、このスクリプトはpython-appindicatorに依存しています。

注:
Debian/Ubuntuパッケージング手順へのリンクは必要ありません。それらのほとんどを見てきました。初心者に優しいとは思いません。

79
sagarchalise

以下は、pythonスクリプトのソースパッケージの外観の基本的な例です。パッケージングのチュートリアルのほとんどは少し複雑ですが、問題にぶつかった場合に本当に役立ちます。そうは言っても、まずDebianパッケージを見るだけで、Debianパッケージの基本を学びました。 apt-get source似たようなもので、例で学習します。

基本的なソースパッケージレイアウトは次のとおりです。

my-script/
    -- myScript
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

ディレクトリでdch --createを実行して、適切にフォーマットされたdebian/changelogエントリを作成します。

debian/copyrightは次のようになります。

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: myScript
Upstream-Contact: Name, <email@address>

Files: *
Copyright: 2011, Name, <email@address>
License: (GPL-2+ | LGPL-2 | GPL-3 | whatever)
 Full text of licence.
 .
 Unless there is a it can be found in /usr/share/common-licenses

debian/compatは次のようになります:7

debian/rules

#!/usr/bin/make -f

%:
    dh $@ --with python2

前に「タブ」が必要であることに注意してくださいdh $@ --with python2、スペースではありません。

debian/control

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <email@address>
Build-Depends: debhelper (>= 7),
               python (>= 2.6.6-3~)
Standards-Version: 3.9.2
X-Python-Version: >= 2.6


Package: my-script
Architecture: all
Section: python
Depends: python-appindicator, ${misc:Depends}, ${python:Depends}
Description: short description
 A long description goes here.
 .
 It can contain multiple paragraphs

debian/install

myScript usr/bin/

このファイルは、どのファイルがどのフォルダーにインストールされるかを示します。

debuild --no-tgz-checkでビルドします

これにより、機能的なdebパッケージが作成されます。 Lintianはorig.tar.gzの不足についていくつか警告を出しますが、tarballのリリースを行う適切なアップストリームプロジェクトを作成する予定がない限り、現時点ではそれを無視することになるでしょう。

85
andrewsomething
  1. 自宅に任意の名前のフォルダーを作成します。例:mypyscript
  2. フォルダーを開き、「DEBIAN」と「usr」という名前の2つのフォルダーを作成します
  3. DEBIANフォルダーを開きます。そこで「control」という名前のテキストファイル(拡張子なし)を作成します。
  4. 「コントロール」を開き、次のように入力してDEBIANに保存します

    Package: mypyscript
    Version: 0.01
    Architecture: all
    Maintainer: your name<your mail id>
    Installed-Size: 2
    Depends: python-appindicator
    Section: extras
    Priority: optional
    Homepage: your homepage
    Description: describe
    
  5. Mypyscriptという名前のフォルダーに戻ります。 「usr」を開きます。 「bin」という名前のフォルダーを作成します。 「bin」を開き、そこにpythonscriptファイルを貼り付けます。

  6. メニューエントリを作成することもできます。しかし、それは必須ではありません。
  7. 「mypyscript」フォルダーがあるホームフォルダーに戻るか、ファイルブラウザーを閉じます。
  8. ターミナルを開きます。端末がホームフォルダーにあることを確認してください。 dpkg -b mypyscriptと入力し、Enterキーを押します。数秒でdebパッケージの準備ができました

注: 'control'ファイルを適切に記入してください。アポストロフィを使用しないでください。名前を示すためだけのものです。

18
ST Alfas

Debreate 、パッケージを作成するためのGUIツールで試すことができます。

9
davidc3

私はすぐにチェックアウトします。クイックアプリを作成し、Googleでデブを生成するのに最適です。または、チュートリアルを見つけることができます http://developer.ubuntu.com/

3
Oly

pkgme​​ を試してください。正常に機能するはずです。

経由でインストール:

Sudo apt install pkgme

経由で実行:

pkgme
debuild

(新しい開発者はgpg --gen-keyを実行する必要があるかもしれません。これを正しく行うには 開発キー署名 を参照してください)

2
ams

一方、ジレンマについて説明する記事が https://www.nylas.com/blog/packaging-deploying-python/ にあります。主に、setup-pyファイルを使用してPythonコードを簡単にデプロイするために、make-debと連動するdh-virtualenvがあると述べています。短いマニュアルは https://Gist.github.com/JeOam/bc6cbf38f04d6f9dbf81 にあります。

1
tc88

Debreate を使用してみてください。

これは、上記のWebサイトからPPAをダウンロードしたくない場合にもPPAを使用できるパッケージやものを作成するためのGuiインターフェイスです。

Sudo add-apt-repository ppa:antumdeluge/<ppaname>; Sudo apt update; Sudo apt install debreate

私はPPAを1行のコードとして実行するように凝縮しました!すばらしい質問に感謝し、これらのコード行を端末に送り続けるようにしてください!

0
Galien1