바이너리 설치 파일은 종속성을 어떻게 처리합니까?

바이너리 설치 파일은 종속성을 어떻게 처리합니까?

Ubuntu 리포지토리에서 애플리케이션이나 라이브러리가 다른 애플리케이션이나 라이브러리에 의존하는 경우 apt-get을 통해 설치하면 먼저 종속성을 자동으로 다운로드하여 설치합니다. 예를 들어 바이너리 설치 파일에서 설치하는 방법입니까 .deb?

소스에서 빌드하여 애플리케이션이나 라이브러리를 설치할 때 ./configure어떤 종속성이 누락되었는지 알려주므로 먼저 수동으로 설치하겠습니다.

Ubuntu ppa 같은 사이트에서 다운로드한 파일을 실행하여 애플리케이션을 설치할 때 .deb종속성을 처리해야 했던 기억이 없습니다 . .deb파일의 내용에 종속성이 포함되어 있습니까? 아니면 자동으로 다운로드하여 설치합니까?

답변1

저장소를 통해 패키지 목록을 가져오면 모든 패키지에 대한 정보를 다음 형식으로 찾을 apt-get update/var/lib/apt있습니다 ./var/lib/dpkg

Package: apt
Priority: important
Section: admin
Installed-Size: 3462
Maintainer: APT Development Team <[email protected]>
Architecture: i386
Version: 1.3.1
Replaces: apt-utils (<< 1.3~exp2~)
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (>= 1.18~), libapt-pkg5.0 (>= 1.3~rc2), libc6 (>= 2.15), libgcc1 (>= 1:4.2), libstdc++6 (>= 5.2)
Recommends: gnupg | gnupg2 | gnupg1
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), powermgmt-base, python-apt
Breaks: apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.3.1_i386.deb
Size: 1208426
MD5sum: 9d35afa0f8220cabf0c837f8073569c2
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Tag: admin::package-management, devel::lang:ruby, hardware::storage,
 hardware::storage:cd, implemented-in::c++, implemented-in::perl,
 implemented-in::ruby, interface::commandline, network::client,
 protocol::ftp, protocol::http, protocol::ipv6, role::program,
 scope::application, scope::utility, sound::player, suite::debian,
 use::downloading, use::organizing, use::searching, works-with::audio,
 works-with::software:package, works-with::text
SHA256: 9111e4e9ffe3f3dd3c62c4e67485d3495c15bf5d24f4f1c532db4430b389eb19

debian/control이 정보는 .deb각 패키지의 파일로도 존재합니다. 보시다시피 여기에는 Depends: ...모든 종속성을 나열하는 한 줄이 포함되어 있습니다. 이러한 종속성을 기반으로 apt-get설치해야 하는 모든 패키지를 반복적으로 계산합니다 .

패키지 관리자는 패키지를 직접 컴파일할 때 수동으로 패키지를 추가하는 방법과 유사하게 패키지를 생성할 때 이 정보를 추가합니다(이를 지원하는 도구가 있음에도 불구하고).

답변2

.deb처음에 패키지를 만든 사람이 설명했던 수동 설치 프로세스와 유사한 프로세스를 따랐습니다. 이 작업을 수행할 때(작업을 올바르게 수행한 경우) debian/control소스 패키지 파일에 필요한 종속성에 대한 정보도 추가합니다.

apt-get다른 dpkg프런트엔드는 실제로 .deb패키지 및 관련 패키지 데이터베이스와 해당 패키지에 대한 메타 정보에서만 작동합니다. 때로는 .deb전체 체인이 제대로 작동하고 자동 종속성 설치 등의 이점을 얻을 수 있도록 로컬로 생성된 패키지를 만들고 싶을 때가 있습니다.

답변3

dpkg -i종속성이 누락된(충족되지 않은) 일부 패키지를 설치(사용)하려고 하면 *.deb누락된 패키지를 알리는 오류 메시지가 표시됩니다. 그런 다음 누락된 패키지를 apt-get install복원 할 수 있습니다 .aptitude install

관련 정보