Debian、Red Hat、Gentoo、Ubuntu、その他のLinuxディストリビューションが1つのパッケージから複数のバイナリパッケージを生成する方法を知りたいです。パッケージをコンパイルすると、すべてインストールされます。だから私の質問は次のようになります
どうやって分けるの?
依存関係をどのように確認しますか?
答え1
展開パッケージをビルドすると、成果物はターゲットの場所に直接インストールされません。代わりに、一時的な場所にインストールされ、その場所のコンテンツを使用してパッケージが構築されます。
複数のバイナリパッケージを構築するソースパッケージの場合、上記の最後のステップは複数のターゲットパッケージに分割されます。各ターゲットパッケージには、含める必要があるファイルが一覧表示されます。個々の.install
ファイルを見る私のlibevdev
パッケージたとえば、ビルドはlibevdev
次のファイルをインストールします。
debian/tmp/usr/include/libevdev-1.0/libevdev/libevdev.h
debian/tmp/usr/include/libevdev-1.0/libevdev/libevdev-uinput.h
debian/tmp/usr/lib/x86_64-linux-gnu/libevdev.la
debian/tmp/usr/lib/x86_64-linux-gnu/libevdev.a
debian/tmp/usr/lib/x86_64-linux-gnu/libevdev.so.2.3.0
debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/libevdev.pc
debian/tmp/usr/bin/libevdev-tweak-device
debian/tmp/usr/bin/mouse-dpi-tool
debian/tmp/usr/bin/touchpad-edge-detector
debian/tmp/usr/share/man/man3/libevdev.3
(をインストールして得られるものと同じsudo make install
)、これらは次のように分けられます。
libevdev2
:/usr/lib/x86_64-linux-gnu/libevdev.so.2.3.0
libevdev-dev
:/usr/include/libevdev-1.0/libevdev/libevdev.h /usr/include/libevdev-1.0/libevdev/libevdev-uinput.h /usr/lib/x86_64-linux-gnu/libevdev.a /usr/lib/x86_64-linux-gnu/pkgconfig/libevdev.pc /usr/share/man/man3/libevdev.3
libevdev-tools
:/usr/bin/libevdev-tweak-device /usr/bin/mouse-dpi-tool /usr/bin/touchpad-edge-detector
(これはudeb
特別なケースなので、ここで議論する価値がないようです。)