7

私は本当にこのマイナーな(私は確信している)問題に固執しているので、どんな助けでも大いに感謝されるでしょう。dh_makeを使用して標準のubuntuパッケージを作成しました。このパッケージの目的は、システムの構成を含め、システムに必要なすべてのLDAP関連パッケージをセットアップするパッケージを作成することです。私が行おうとしている手順の1つは、既存のファイルのバックアップを作成しながら、/ etc/ldap.confファイルをコピーすることです。どうすればよいですか?基本的に次のようなpostinstスクリプトを作成しようとしましたが、パッケージがファイルをどのように保存するかが明確でなく、etc/ldap.confファイルが見つからないというエラーが表示されます。これを行うための最良の方法は何ですか?これが私のpostinstスクリプトです:

#!/bin/bash -xv

install -v -b etc/ldap.conf /etc/ldap.conf  > /tmp/tst 2>&1

これが私のスケルトン構造です:

    root @ hqd-clientb-16:〜/ navldapubuntu-0.1 / debian#ツリー


     ├──変更ログ
     ├──互換性
     ├──コントロール
     ├──著作権
     ├──ドキュメント
     ├──など
        └──ldap.conf
     ├──インストール
     ├──postinst
     ├──README.Debian
     ├──README.source
     ├──ルール
     ├──出典
       └──フォーマット
     ├──navldapubuntu
       └──など
     ├──navldapubuntu.debhelper.log
     ├──navldapubuntu.dirs
     └──navldapubuntu.doc-base.EX

これが私が作成したパッケージのいくつかの追加情報です。

    dpkg --contents tnoldapubuntu_0.1-1_all.deb(切り捨てられた出力)
    ./usr/
    ./usr/share/
    ./usr/share/doc
./usr/share/doc/navldapubuntu/ ./usr/share/doc/navldapubuntu/copyright ./usr/share/doc/navldapubuntu/README.Debian ./usr/share/doc/navldapubuntu/changelog.Debian.gz ./etc/ldap.conf

4

2 に答える 2

7

構成パッケージの作成用に設計された特別なツールがあります: http://debathena.mit.edu/config-packages

これは、すぐに始めるのに役立つ簡単なテンプレートです。

ファイル一覧

  • テンプレート (ディレクトリ)
  • template/debian (ディレクトリ)
  • テンプレート/debian/コントロール
  • テンプレート/debian/変更ログ
  • テンプレート/デビアン/置換
  • テンプレート/debian/ルール
  • テンプレート/debian/postinst
  • テンプレート/debian/インストール
  • テンプレート/debian/ドキュメント
  • テンプレート/debian/compat
  • テンプレート/README
  • テンプレート/ビルド
  • テンプレート/ファイル (ディレクトリ)
  • テンプレート/ファイル/etc/ldap.conf.mycompanyname

コンテンツ

テンプレート/debian/コントロール:

Source: PACKAGE_NAME
Section: morpho/misc
Priority: optional
Maintainer: MAINTAINER
Build-Depends: debhelper, config-package-dev (>= 5.0~)

Package: PACKAGE_NAME
Architecture: all
Depends: ${misc:Depends}, DEPENDENCY [, DEPENDENCY ...]
Provides: ${diverted-files}
Conflicts: ${diverted-files}
Description: PACKAGE_DESCRIPTION_SHORT
PACKAGE_DESCRIPTION_LONG.

テンプレート/デビアン/置換

/etc/ldap/ldap.conf.mycompanyname

テンプレート/debian/インストール

files/* /

テンプレート/debian/postinst

#!/bin/sh
set -e
#DEBHELPER#

POSTINST_SCRIPT

テンプレート/debian/ルール

#!/usr/bin/make -f

# Exclude *.svn* from building 
# you probably don't need this if don't use SVN
export DH_ALWAYS_EXCLUDE=.svn

# Core (check http://debathena.mit.edu/config-packages for more information)
%:
        dh $@ --with=config-package

# Prevent dh_installdeb of treating files in /etc as configuration files
# you need this if need configuration files been always rewritten
# even if changed
override_dh_installdeb:
        dh_installdeb
        rm debian/*/DEBIAN/conffiles

テンプレート/debian/ドキュメント

README
BUILD

最後に、次のコマンドでこのパッケージをビルドできます。

dpkg-buildpackage -us -uc -I.svn
于 2014-09-26T13:43:17.247 に答える
3

DEBIANディレクトリの「control」ファイルの隣に「conffiles」ファイルを作成し、その中で/etc/ldap.confを宣言する必要があります。したがって、このファイルは自動的に構成ファイルと見なされ、変更すると「新しい構成ファイル、上書きしますか、yaddayadda」というプロンプトが表示されます。

于 2013-03-18T21:15:29.240 に答える