Debian, Red Hat, Gentoo, Ubuntu 및 기타 Linux 배포판이 하나의 패키지에서 여러 바이너리 패키지를 생성하는 방법을 알고 싶습니다. 패키지를 컴파일하면 모두 설치됩니다. 그래서 내 질문은 다음과 같습니다
어떻게 분리하나요?
종속성을 어떻게 확인합니까?
답변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
특별한 경우이므로 여기서 논의할 가치가 없을 것 같습니다.)