2016-03-29 10 views
0

私はバイナリアプリケーションを持っており、Debianパッケージ(* .deb)を作成したいと考えています。 DEBIAN /制御ファイルでは、依存関係を追加する必要があります。 は、依存関係を見つけるために、私は、次のコマンドを実行します。ここではDebianパッケージ(.deb):どうやって決定するのですか?

> objdump -p greenCity | grep NEEDED 
    NEEDED    libsfml-graphics.so.2.3 
    NEEDED    libsfml-system.so.2.3 
    NEEDED    libsfml-window.so.2.3 
    NEEDED    libgcc_s.so.1 
    NEEDED    libc.so.6 

制御ファイルの内容:

Package: greencity 
Version: 1.0 
Architecture: amd64 
Depends: libsfml-graphics, libsfml-system, libsfml-window 
Maintainer: x x <[email protected]> 
Section: base 
Priority: optional 
Homepage: 
Description: xxx 

は最後に、私はパッケージを作成し、私はそれをインストールします。インストール時に、私は次のエラーを取得する:

greencity depends on libsfml-graphics; however: Package libsfml-graphics is not installed. greencity depends on libsfml-system; however: Package libsfml-system is not installed. greencity depends on libsfml-window; however: Package libsfml-window is not installed.

情報:パッケージlibsfml-グラフィックス/システム/ window2.3はよく私のLinux上にインストールされています。 したがって、依存の名前を決定するルールは何ですか?私は多くの可能性を試してみましたが、それらのどれも機能しません:(

は事前にありがとうございます。このライブラリのDebianパッケージの

答えて

1

名は、ライブラリのメジャーバージョン番号が追加されている;。例えばlibsfml-graphics2を、libsfml-system2など

これはDebianパッケージの命名のための一般的なパターンですが、例外があることが多い。書くときには、常に(システムのパッケージリストで、またはhttps://packages.debian.org/のいずれか)パッケージの正確な名前を調べる必要があります制御ファイル; thを想定しないパッケージ名のファイル名は常にファイル名と一致します。

+0

感謝を書き込むことができます提供しているパッケージをチェック私はlibsfml-graphics2を試し、それが動作しませんでした。実際、仕事のように見える唯一の名前は:libsfml-graphics2.3v5です。しかし、この種の依存関係は、パッケージを作成するにはあまりにも制限的です。 –

0

syntax of Debian control fileに基づいて、「依存」セクションにのパッケージ名を指定する必要があります。

dpkg-queryコマンドで簡単に見つけることができます。たとえば、libgcc_s.so.1が必要です。そして、あなたは答えることが

$ dpkg-query -S 'libgcc_s.so.1' 
libgcc1:i386: /lib/i386-linux-gnu/libgcc_s.so.1 
lib32gcc1: /usr/lib32/libgcc_s.so.1 
libgcc1:amd64: /lib/x86_64-linux-gnu/libgcc_s.so.1 

今、あなたは

Depends: libgcc1 
関連する問題