6

シンプルな Debian パッケージは次の手順で作成されます。次の手順は初心者向けのチュートリアルです。

画面に test を出力するだけの test.sh というファイルがあるとします。

#!/bin/sh
set -e
echo "this is sample debian package created " >&2

debian パッケージをインストールした後の出力は何ですか? A)「dpkg -i test-1.0.deb」を使用してパッケージをインストールした後、test.sh という名前の上記のファイルを /home/bla/Desktop/ に配置したい

上記のプロセスを達成するには、以下の手順に従います。

mkdir test-1.0
cd test-1.0
#in order to place test.sh in /home/bla/Desktop, simply create the same directory structure in the test folder using this command

mkdir -p home/bla/Desktop/
cp test.sh home/bla/Desktop/
cd ..
cd ..
cd ..
mkdir DEBIAN
cd DEBIAN

次の内容の制御ファイルを追加します

Package: test
Version: 1.0
Section: devel 
Priority: optional
Architecture: all
Essential: no
Depends:  bash
Pre-Depends: no
Recommends: no
Maintainer: test <test@test.test>
Replaces: no
Provides: no
Description: A sample testpackage in order to demonstrate how to create debian packages

パッケージの準備ができたら、テスト フォルダーの外に出て、dpkg --build test-1.0/ と入力します。

パッケージの準備ができており、dpkg -i test-1.0.deb を使用してインストールできます。

dh_make と debuild で同じプロセスを実行したい場合、インストール後に test.sh を配置したい場所にディレクトリ構造を追加できませんでした

私が従った手順:

  1. mkdir test-1.0
  2. 上記のディレクトリ構造をコピーします

    cd test-1.0/ && mkdir -p home/bla/Desktop/
    cp test.sh home/bla/Desktop/
    
  3. dh_make -n -s -e test@test.com

  4. cd debian
  5. rm *.ex *.EX
  6. cd ..
  7. debuild -us -uc

私のtest.shがパッケージにまったく含まれていないことに関係なく、debianマニュアルから理解した理由が何であるかわかりません

誰かがそれを行うことを知っていますか、できるだけ早く教えてください..、最初のプロセスで行ったように、debuild/dpkg-buildpackage を使用して debian パッケージをビルドするときに、パッケージにファイルを含める方法を知りたいだけです。単純

4

1 に答える 1

13

dh * とdpkg-buildpackageを利用したAQ/Dの例:

1) Pepare作業ディレクトリとテストファイル(「/ any / dir」にインストールする必要がある「foo」スクリプトをパッケージ化します):

mkdir test-0.0.1
cd test-0.0.1
echo -e "#\!/bin/sh\necho \"hi, i'm foo\"" > foo
chmod +x foo

2)インストールを処理する単純なMakefileを作成します。

binary:
    # we are not going to build anything

install:
    mkdir -p $(DESTDIR)/any/dir
    cp foo $(DESTDIR)/any/dir

3)パッケージスケルトンを生成します。

dh_make -i --createorig

3a)オプションでDebian制御ファイルを調整します

4)パッケージをビルドします。

dpkg-buildpackage -A -uc

5)生成されたパッケージの内容をテストします。

dpkg-deb -c ../test_0.0.1-1_all.deb | grep any

drwxr-xr-x root/root         0 2012-06-12 20:54 ./any/
drwxr-xr-x root/root         0 2012-06-12 20:54 ./any/dir/
-rwxr-xr-x root/root        30 2012-06-12 20:54 ./any/dir/foo

編集: Makefileを使用しない例(何もビルドしない場合):

1)テストデータを作成します。

mkdir test-0.0.1
cd test-0.0.1
mkdir contents
touch contents/a
touch contents/b

2)パッケージスケルトンを作成します。

dh_make -i --createorig

3)次の内容でdebian/test.installファイルを作成します。

contents/   /usr/share/mycontents

4)ビルドパッケージ:

dpkg-buildpackage -A -uc

5)ビルドされたパッケージを調べます。

dpkg-deb -c ../test_0.0.1-1_all.deb | grep contents

drwxr-xr-x root/root         0 2012-06-13 11:44 ./usr/share/mycontents/
drwxr-xr-x root/root         0 2012-06-13 11:38 ./usr/share/mycontents/contents/
-rw-r--r-- root/root         0 2012-06-13 11:37 ./usr/share/mycontents/contents/a
-rw-r--r-- root/root         0 2012-06-13 11:38 ./usr/share/mycontents/contents/b
于 2012-06-12T17:56:17.033 に答える