
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