一連のファイルをインストールする新しいdebパッケージを作成したいと思います。可能な限り、インストールの一部としてこれらのファイルを含むフォルダーを既知のフォルダーの場所に展開したいと思います。それに失敗すると、ソースフォルダーとソースファイルをパッケージ化する方法に関する知識が非常に役立ちます。
質問は-これは可能ですか?もし可能なら-どのように?
例を挙げましょう:
~/mypluginfolder/
には、ファイルx
、y
、abc
というサブフォルダー、およびz
という別のファイルが含まれています。
このフォルダーをtarしたい:tar -cvf myfiles.tar ~/mypluginfolder
私のdebianパッケージは次のようになると思います
myfiles.tar.gz
myfiles+ppafoss_0.1-1/
myfiles.tar
DEBIAN
changelog, compat, control, install, rules source
何らかの方法でmyfiles.tar
を既知のフォルダーの場所に展開することは可能ですか?
/usr/share/rhythmbox/plugins/
したがって、最終結果は次のようになります。
/usr/share/rhythmbox/plugins/mypluginfolder
/usr/share/rhythmbox/plugins/mypluginfolder\x
/usr/share/rhythmbox/plugins/mypluginfolder\y
/usr/share/rhythmbox/plugins/mypluginfolder\abc\z
ランチパッドがソースを必要とする場合、ソースフォルダーとファイルをdebパッケージ構造のどこにドロップすべきかについてのアドバイスが求められます。
これは最終的に一連の個別のランチパッドPPAパッケージになります。
私が好むのは(しかし達成できないかもしれません...)私のパッケージを最小限に保つことです-テンプレートから一連のパッケージを作成し、最小限の変更を行います(changelogなど+ tarファイル/ファイル&フォルダ構造) 。
以下では、ソースが開いている(例:Pythonスクリプト)と想定しているため、どのアーキテクチャ(例:AMD64またはi386)にもバインドされていないため、「すべて」です。 Cソースがある場合は、ソースcontrol
ファイルでArchitecture: AMD64 i386
を使用する必要があります。
これは最終的に一連の個別のランチパッドPPAパッケージになります。
私が好むのは(しかし達成できないかもしれません...)私のパッケージを最小限に保つことです-テンプレートから一連のパッケージを作成し、最小限の変更を行います(changelogなど+ tarファイル)。
ランチパッドはソースパッケージのみを受け入れるため、正しい場所にファイルをインストールするrules
を作成します。便宜上、 debhelper を使用します。ファイルのあるディレクトリは次のようになります。
debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...
debian/copyright
ファイルは、パッケージに関連付けられたライセンスについてユーザーに通知するのにも役立ちます。一部のファイルを抽出するだけでよいので、postinst
スクリプトは必要ないと思います。 compat
にはdebhelperの互換性レベルを含める必要があります(「8」など)。 (詳細については debhelperのマニュアルページ を参照してください)
changelog
ファイルは、dch
パッケージから利用可能なdevscripts
コマンドで編集できます。 rules
(debhelperを使用)には以下が含まれている必要があります。
#!/usr/bin/make -f
%:
dh $@
override_dh_install:
dh_install mypluginfolder/ /usr/share/rhythmbox/plugins
chmod 755 debian/rules
を使用して実行可能にします。ソースパッケージは、debuild -S
を使用してビルドできます。 <package-name>-<version>
という名前のディレクトリにあることを確認してください。 override_
の動作とdh
コマンドの詳細については、 マニュアルページ を参照してください。
Debian New Maintainers 'Guide は、これを理解するのに非常に貴重でした。読むことをお勧めします。パッケージの例は https://github.com/Bumblebee-Project/bumblebee-ppa にあります。
dpkg-deb -b
は、既存のファイルツリーからtarballを作成するために使用できます。最初に、パッケージにちなんだ名前のディレクトリの作成から始めます。 myplugin
という名前を付けて、/usr/share/rhythmbox/plugins/mypluginfolder
に入れると仮定します。さらに、パッケージ情報を保存するためのDEBIAN
ディレクトリ(大文字!)を作成します。
mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN
ファイルをコピーします。
cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins
次に、パッケージを説明するmyplugin/DEBIAN/control
にあるいわゆる control ファイルが必要になります。このようなファイルの内容は次のとおりです。
Package: myplugin
Version: 1.0-1
Maintainer: You <[email protected]>
Architecture: all
Description: plugins for Rhythmbox
Longer description here
.
As you can see, new paragraph are split by a single dot,
and lines have to be indented by one space.
これで、オプションでパッケージの内容を確認できます。次のコマンドは、myplugin
のファイルとディレクトリエントリの内容を一覧表示します。
find myplugin -ls
満足したら、現在のディレクトリにパッケージをビルドします。
dpkg-deb -b myplugin .
この例では<package>_<version>_<architecture>.deb
であるmyplugin_1.0-1_all.deb
のような名前の新しいファイルが表示されます。 less
プログラムを使用して、ファイルを覗くことができます。たとえば、less myplugin_1.0-1_all.deb
。