5 バイナリつだけのしてみる


PIC
____________________________________________________________________

5.1 /

このDebian 無いむけにわかりやすいとわれる dh_make 使 についてしています

提知としてはある程度 make(Makefile) している必要がありますが多くはありませんはこのドキメント します

5.2 deb /使由・メリ

ジシステムメリとして tar (*.tar.gz などでされたカイブフイル) 使 して複数マシンへのインスト再現単、 便アンインストンアとい げられます

deb メリとしてはそれらにスフイルチフイル単、 ビルド必要 するのが単、 メリげられるでし

もちろんりたい由はそれぞれといますが分の使いたいアプリ/能がになていないと いう由が多いでし

Debian Developer(Debian 発者:DD) になるためともいるかもしれません

5.3 dh_make とは

dh_make コマンドdh-make まれるコマンド的なのひなてくれ です

ソフトウスコ展開したレクトリこのコマンドすると なやりとりをたあとひなとして debhelper スタイルレクトリイルしま *1

5.4 debhelper スタイル

deb 方法 (スタイル) についてはいくつかありますするのは dh_make debhelper スタイルにつ いてですそのほかに同様debhelper スタイル使した dpatch,CDBS,dbs,quilt,yada といスタイルがあるそう です

その他にもスクリプト言語向にもいくつかスタイルがあるようですdebhelper スタイルdebian では とも的でシンプルスタイルです現在debian している とも多いとわれています的に dh_ コマンドrules というイルからからとなり ます

5.5 dh_make での debhelper スタイル必要イル

dh_make するdebhelper スタイル必要イルとして以下つのレクトリ つのイルがあります

まず使レクトリ名のていますそのdebian レクトリされジング イルはここにすべてかれます必要イルについてはひなdh_make されます

softname-version/ (レクトリ)
  debian/ (Debian レクトリ存在=deb )
     control (名、 )
     changelog ()
     copyright ()
     rules (rules 方法)

5.6 その他のイル

以下dh_make するサンプルイルですこれらも同様dh_make debian レクトリされます 必須ではありませんので必要じて利用します

debian/
  README.Debian(オリジナルしたときの分情)
  conffiles.ex(イル名のリスト)
  cron.d.ex(cron するイル名リスト)
  dirs
  docs
  init.d.ex(ビス動スクリプト)
  manpage.1.ex, manpage.sgml.ex(man イル)
  preinst.ex(インストスクリプト)
  postinst.ex(インストスクリプト)
  prerm.ex(アンインストスクリプト)
  postrm.ex(アンインストスクリプト)
  

5.7 流れ

db_make 使流れとしては以下のようになります

5.8 スアカイブ展開

tar されているイル展開その展開されたレクトリ名をリネ ます

dh_make でひなるためには packagename-version である必要がありますのでになていない 適切リネてください

5.9 dh_make(debian レクトリテンプレ)

dh_make でのひなです

適切リネされたレクトリcd dh_make しますその能ならライセンス いでしけます

またからメンテナ名とそのルアドレスしますのであらかじめしておくことを おすすめしますこれもけます

dh_make すると選択しますでは Single binary (s) 選択します

その他、 ライセンス(-c) 能ですできるライセンスgpllgplartisticbsd です

できるSingle binary (s)/Multiple binary (m)/Library (l)/Kernel module (k)/cdbs (b) です

DEBFULLNAME(メンテナ)DEBEMAIL(ルアドレス) します

5.10 dch(debian/changelog )

debian/changelog についてしますまずこのイルテキストフイルですが密に ており直接エデするのはおすすめしません

たとえば

$ dch -i

使えば部分動的にできるのでおすすめです

debian/changelog 頭にあるがこれからされるとして使されます 必要ならてください

ですがunstable ありません

緊急ですがこれも low ないでし

としてのアスタリスク (*) コメントとしてしますそのdch してくれる をそのまま使うのがいでし

debian/changelog:

 smp-mgzip (1.2c-1) unstable; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- yoshida syunsuke <koedoyoshida@gmail.com>  Sun, 30 Mar 2008 22:21:28 +0900

5.11 control

control イル名や存関します

ここではスパバイナリパ分けてします

Section には main (フリソフトウ)non-free (フリであるとはいえないソフトウ)そして contrib (それフリソフトウであるけれどもnon-free ソフトウ無ければ使えないもの) があります これらのにはをおおまかに分類する論理的なサブセクシされておりそこに れる単にするような名前がつけられていますプログラムのため admin」 、 的なのためにbase」 、 プログラマのためのまれるdevel」 、 doc」 、 ライブラリlibs」 、 きに使ルサする ためのモンmail」 、 トワアプリケモンnet」 、 他のどんな分類 もあてはまらないような X11 プログラムx11などそしてさらに多くのものがされていま デフルトmain ですのでここにすると main サブセクシするということになり ます

Priority はこのインストすることがにとてどれくらいなものかをしてい ます

優先optional選択能) としておけば無いでし

バイナリパについては CPU キテクチ存する(バイナリイル) any, クリプトドキメントなどキテクチ存しないall しますその他の必要ならしてくだ さい

debian/control:

Source: smp-mgzip(スパ)
Section: unknown(セクシ)
Priority: extra()
Maintainer: yoshida syunsuke <koedoyoshida@gmail.com>(メンテナ名前ルアドレス)
Build-Depends: debhelper (>= 5), autotools-dev(ビルド必要)
Standards-Version: 3.7.2(テンプレした Debian ポリシ標準)

Package: smp-mgzip(バイナリパ)
Architecture: any(キテクチ)
Depends: ${shlibs:Depends}, ${misc:Depends}(存関)
Description: <insert up to 60 chars description>()
 <insert long description, indented with spaces>

5.12 copyright

イルライセンスについてのです

dh_make ライセンスしておけばひなされますソフトウによてはレクトリイル とにライセンスもありますのでしてくださいdebian/copyright

 This package was debianized by yoshida syunsuke <koedoyoshida@gmail.com> on
 Sun, 30 Mar 2008 22:21:28 +0900.

 It was downloaded from <fill in http/ftp site>

 Upstream Author: <put author(s) name and email here>

 Copyright: <put the year(s) of the copyright, and the names of the
            copyright holder(s) here>

 License:
  略)
 On Debian systems, the complete text of the GNU General
 Public License can be found in ‘/usr/share/common-licenses/GPL’.

 The Debian packaging is (C) 2008, yoshida syunsuke <koedoyoshida@gmail.com> and
 is licensed under the GPL, see above.

5.13 rules

debian/rules にはジングうためのしますMakefile 方法ですがジング する dh_xxx コマンド(devhelper ) べるのがほとんどですdpkg-buildpackage している必須

 build: (ビルド)
 binary: (バイナリパ生成binary-indep binary-arch )
 binary-indep: (キテクチ立のバイナリパ)
 binary-arch:(キテクチ存のバイナリパ)

5.14 rules build

dh_make デフルトbuild build-stamp 存しているbuild-stamp (makeコンパイ ) します

同様build-stamp config.status(configure ) 存しています


 debian/rules
 build: build-stamp

 build-stamp:  config.status
        dh_testdir

        # Add here commands to compile the package.
        $(MAKE)
        #docbook-to-man debian/smp-mgzip.sgml > smp-mgzip.1

        touch $@

5.15 rules binary

 binary: binary-indep binary-arch

 binary-indep: build install

 binary-arch: build install
        dh_testdir
        dh_testroot
        dh_installchangelogs ChangeLog
       ()
        dh_builddeb

5.16 rules install

 install: build
        dh_testdir
        dh_testroot
        dh_clean -k  --exclude ./mgzip.c.orig
        dh_installdirs

        # Add here commands to install the package into debian/smp-mgzip.
        $(MAKE) prefix=$(CURDIR)/debian/smp-mgzip/usr install

5.17 オリジナルmake イル

Single binary (s) Debian ジングツ$(CURDIR)/debian/()/以下にあるイルをま とめてにします

make install$(CURDIR)/debian/()/以下インストするようにオリジナルtarball から されたMakefile します

Makefile されていればそれをすればよいでし無ければ Makefile してください Makefile についてはmake してください

5.18

テストとしてコマンドするとわれます$ dpkg-buildpackage -us, -uc -rfakeroot イル適切されていれば以下イルされます

 xxx-y.y.y_zzzz.deb(バイナリパ)
  スパ
 xxx-y.y.y.dsc(:control より生成)
 xxx-y.y.y_zzzz.diff.gz()
 xxx-y.y.y.orig.tar.gz(オリジナルソスフイル)
 xxx-y.y.y_zzzz.changes(: control+changelog)


xxx:
y-y-y:,
zzzz: Debian  キテクチ(i386,amd64,all, ))

dpkg-buildpackage しているオプシ味は以下物です

5.19 dpkg-buildpackage debuild

dpkg-buildpackage とよくプログラムdebuild がありますいとしては以下があります

5.20 イルへの

これまでのdpkg-buildpackage debuild した -us -us オプシイルへの名を略するための プシです

分のみで使するはともかくすることもにいれるのであれば名をうのが適切

debian 名するには GnuPG debuilddpkg-buildpackage 使すると デフルト名がわれます

5.21 足:イル方法

イル (Packages.gz,Sources.gz) ります

 $ apt-ftparchive packages . | gzip -c9 > Packages.gz
 $ apt-ftparchive sources . | gzip -c9 > Sources.gz

apt-ftparchive コマンドapt-utils ています

カル

sources.list(aptline) 以下のようなapt-get update;apt-get install インストできるかを認します

 deb file:/usr/src/ ./

トワ

カル認できたレクトリのままくり http しますsources.list(aptline) 同様します

 deb-src http://XXX ./

5.22 足: deb スフイル展開リビルド

*.dsc,*.orig.tar.gz,*.diff.gz して展開

 $ dpkg-source -x XXX.dsc
 $ cd  されたレクトリ

必要なら実施してリビルドします

 $ debuild (または dpkg-buildpackage)

5.23

39 エリア Debian 2008 4
____________________________________________________________________________________________