![Debian 및 Red Hat과 같은 Linux 배포판은 어떻게 하나의 소스 패키지에서 여러 바이너리 패키지를 생성합니까? [폐쇄]](https://linux55.com/image/173821/Debian%20%EB%B0%8F%20Red%20Hat%EA%B3%BC%20%EA%B0%99%EC%9D%80%20Linux%20%EB%B0%B0%ED%8F%AC%ED%8C%90%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%98%EB%82%98%EC%9D%98%20%EC%86%8C%EC%8A%A4%20%ED%8C%A8%ED%82%A4%EC%A7%80%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%20%ED%8C%A8%ED%82%A4%EC%A7%80%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
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
특별한 경우이므로 여기서 논의할 가치가 없을 것 같습니다.)