1

独自の deb パッケージをビルドすると、適切なプレフィックスを取得するために、一部のスクリプトに手動でパッチを適用する必要があるという問題に遭遇しました。

特に、

  • 私たちはモノを構築しています
  • 公式の tarball を使用しています。
  • 接頭辞が間違っているスクリプトは、mcs、 xbuild 、 nunit-console4 などです。

間違ったスクリプトの例:

#!/bin/sh
exec /root/7digital-mono/mono/bin/mono \
      --debug $MONO_OPTIONS \
      /root/7digital-mono/mono/lib/mono/2.0/nunit-console.exe "$@"

正しい最終結果は次のとおりです。

#!/bin/sh
exec /usr/bin/mono \
      --debug $MONO_OPTIONS \
      /usr/lib/mono/2.0/nunit-console.exe "$@"

dpkg-buildpackage を呼び出す前に、 build-packageスクリプトで使用している回避策:

sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/mcs
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/xbuild
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console2
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console4

さて、これを修正する正しい方法は何ですか? 完全な debian パッケージ作成スクリプトはこちら.

免責事項:ここに Mono 3 のプレビュー パッケージがあることは知っています。しかし、それらは Squeeze では機能しません。

4

1 に答える 1

2

適切な方法は、呼び出さないことです./configure --prefix=$TARGET_DIR

これは、すべてのバイナリ/スクリプト/...に、インストールされたファイルが最終${TARGET_DIR}的に/usr.

DESTDIR変数 ( のように) を使用してmake install DESTDIR=${TARGET_DIR}、インストール時にインストール ターゲットを変更 (接頭辞) できます (ファイルは最終的に${TARGET_DIR}/${prefix}${prefix}"組み込み" になります)。

于 2013-02-06T08:29:42.420 に答える