Debian 및 Red Hat과 같은 Linux 배포판은 어떻게 하나의 소스 패키지에서 여러 바이너리 패키지를 생성합니까? [폐쇄]

Debian 및 Red Hat과 같은 Linux 배포판은 어떻게 하나의 소스 패키지에서 여러 바이너리 패키지를 생성합니까? [폐쇄]

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특별한 경우이므로 여기서 논의할 가치가 없을 것 같습니다.)

관련 정보