소스에서 적절한(debian) 패키지를 빌드할 수 있도록 모든 빌드 종속성을 (재귀적으로) 다운로드하고 싶습니다. 그런데 apt로 얻은 debs를 apt-get install path/*.debs
사용 해보니 apt build-dep --download-only --assume-yes <package>
추가 패키지를 설치해야 하는데 --no-install-recommends --ignore-missing
. 내 특정 질문에 대한 답변이 없습니다.. 그런 다음 더 자세히 조사한 결과 성공적인 실행 결과에 추가 패키지가 표시되지 않았 apt build-dep <package>
으므로 깨달았습니다(분명히).빌드 종속성은 다르게 추적되어야 합니다.어떻게?
deb 파일에 필드 가 있지만 Depends/Suggests/Recommends
조달과 관련된 다른 필드는 표시되지 않습니다. build-dep
약 150개의 deb 파일이 발견되었는데, 패키지로 설치하는 동안 apt
추가 종속성이 발견되었습니다.
읽어보려고 했는데 패키징/소스 패키지 - Debian Wiki
소스 패키지는 원하는 소프트웨어를 컴파일하거나 빌드하는 데 필요한 모든 파일을 제공합니다. 가장 간단한 형태 로
이는 세 개의 파일로 구성됩니다. 즉, .tar.gz로 끝나고 .dsc로 끝나는
업스트림 tarball의 설명 파일입니다 .
apt source cinnamon-settings-daemon
알겠습니다. cinnamon-settings-daemon_5.0.4+uma.tar.xz.
검색에서 파일을 찾을 수 없습니다 .dsc
. 어쩌면 Linux Mint(제가 사용하고 있는 OS)가 수정된 데비안 구현을 구현했을 수도 있습니다.
apt는 필요한 모든 종속성을 쉽게 설치할 수 있는 방법을 제공합니다.
예 1: node-pretty-ms
sudo apt build-dep node-pretty-ms 그러나 시스템이 이러한 종속성을 추적하는 방법에 대한 설명을 찾지 못했습니다.
다운로드한 deb 파일 중 하나에서 apt build-dep
빌드/소스 종속성을 포함하는 추가 섹션이 표시되지 않습니다.
$ apt show /media/ramdrive/debs/cinnamon-settings-daemon/autoconf_2.69-11.1_all.deb
Package: autoconf
Version: 2.69-11.1
Priority: optional
Section: devel
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Ben Pfaff <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1905 kB
Depends: perl (>> 5.005), m4 (>= 1.4.13), debianutils (>= 1.8)
Recommends: automake | automaken
Suggests: autoconf-archive, gnu-standards, autoconf-doc, libtool, gettext
Breaks: gettext (<< 0.10.39), pkg-config (<< 0.25-1.1)
Homepage: http://www.gnu.org/software/autoconf/
Task: ubuntustudio-video
Download-Size: 321 kB
APT-Sources: http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Description: automatic configure script builder
The standard for FSF source packages. This is only useful if you
write your own programs or if you extensively modify other people's
programs.
.
For an extensive library of additional Autoconf macros, install the
`autoconf-archive' package.
.
This version of autoconf is not compatible with scripts meant for
Autoconf 2.13 or earlier.
1을 추가하세요:
이 기간 동안 "추가"로 표시된 두 패키지 중 하나 apt-get install --no-install-recommends
는 입니다 libpulse0:i386
. 행위
~$ apt-cache rdepends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances libpulse0:i386 # got ~ 1000 lines
find /path_to_debs/cinnamon-settings-daemon -name *.deb | xargs apt-cache show | grep Package | awk '{print $2}' # ~ 160 debs
LibreOffice Calc를 사용하면 vlookup
설치에 따라 역으로 달라지며 pulseaudio
, pulseaudio-module-bluetooth
예를 들어 라인 300에 따라 달라집니다.
libcanberra-pulse:i386
ReverseDepends:
pulseaudio
2022/01/06 추가됨:
원래 문제의 원인을 이해합니다. 관심이 있으시면 참조하세요.https://stackoverflow.com/a/70601238/14557599그리고https://unix.stackexchange.com/a/684975/446998. 이 질문에 대한 내 주장을 재현할 수 없습니다(성공적인 실행의 출력에 추가 패키지가 표시되지 않음 apt build-dep <package>
). 잘못된 가정으로 인해 다른 시스템에서 명령을 실행하고 있는 것일 수도 있습니다. 차이가 중요합니다.
답변1
빌드 종속성은 패키지 관리자가 사용합니다 Build-Depends:
(때때로Build-Depends-Indep:
) 다음의 설정을 사용하여 설정합니다.데비안/컨트롤소스 패키지 파일.
Depends
, 및 는 데이터가 패키지 파일에 있도록 패키지를 설치할 때(또는 설치하려고 할 때) 필요합니다 Recommends
. 패키지를 빌드할 때만 필요하므로 필요하지 않습니다.Suggestions
Build-Depends*
그런데 소스 패키지를 다운로드하거나 패키지 추적기를 사용하여 볼 수 있듯이(예:https://tracker.debian.org/media/packages/a/autoconf/control-2.71-2)는 Build-Depends*
다음과 같이 설정됩니다 autoconf
.
Build-Depends-Indep: texinfo (>= 4.6), m4 (>= 1.4.13),
texlive-base, texlive-plain-generic, texlive-latex-base,
texlive-latex-recommended, texlive-fonts-recommended, help2man, cm-super
Build-Depends: debhelper-compat (= 13)
또한 btw, 이것은 단순화입니다. 이는 대부분의 패키지에 충분하지만 일부 패키지에는 Build-Conflicts*:
빌드를 성공적으로 수행하기 위해 패키지를 설치할 수 없는 설정도 있습니다.
아직 읽어보지 않으셨다면 꼭 읽어보시길 권합니다데비안 새 유지관리자 가이드- 이 중 일부는 데비안 패키지 관리자에게만 해당되지만 대부분은 일반적인 ".deb 패키지 빌드 방법" 정보입니다.