apt-get install --download-only --assume-yes libssl-dev
오늘 나는 dpkg 상태 파일이 비어 있음(deb 파일이 많음) 과 같이 종속성이 다운로드된 데비안 패키지 세트를 설치하려고 할 때 한 번(오늘 다시) 설치할 때 설치할 수 없는 이유를 마침내 추측 apt-get install path/*.deb
했습니다 The following additional packages will be installed: libssl1.1:i386
. (결과를 설명하는 데 도움을 받으려고 노력했지만 문제는 내가 알고 있는 오류의 원인에 대한 것입니다.)apt는 BUILD(소스) 종속성을 어떻게 추적합니까?그리고https://stackoverflow.com/questions/70491862/how-to-list-download-the-recursive-build-dependent-of-a-debian-package
내 생각에는 i386 아키텍처용 패키지가 여기에 설치되어 있는 것 같습니다 (상태 파일을 확인했습니다. for 및 libssl1.1
입니다 ). 따라서 설치 시 패키지의 설치된 모든 아키텍처를 업그레이드하려고 시도합니다 . 그러나 한 시스템에 다운로드할 경우 명령줄에서 요청한 것 외에 다른 아키텍처에 대한 패키지가 없으므로 하나의 아키텍처만 다운로드됩니다.Status: install ok installed
amd64
i386
libssl1.1
apt-get
libssl1.1
apt-get
하나의 아키텍처에만 패키지와 종속성을 설치하는 옵션이 있습니까? 아키텍처가 하나만 변경되면 어떻게 시스템이 손상될 수 있는지 이해가 되지 않습니다. (또는 사용 가능한 모든 아키텍처에 대한 종속성을 다운로드합니까?)
man apt-get:
--arch-only
Only process architecture-dependent build-dependencies. Configuration Item:
APT::Get::Arch-Only.
하지만:
sudo apt-get install --download-only --assume-yes --arch-only libssl-dev
E: Command line option --arch-only is not understood in combination with the other options
답변1
아키텍처가 하나만 변경되면 어떻게 시스템이 손상될 수 있는지 이해가 되지 않습니다.
여러 아키텍처용으로 설치된 패키지는 파일을 공유할 수 있지만 파일은 엄격히 동일해야 합니다. 이 요구 사항에 따른 문제를 방지하려면 해당 패키지를 동기화 상태로 유지해야 합니다. 따라서 여러 아키텍처에 대해 패키지가 설치된 경우 하나의 아키텍처에 대해서만 패키지를 업그레이드할 수 없습니다.
처음에 다운로드한 패키지에서 원치 않는 패키지를 설치하지 않으려면 설치할 패키지 목록을 더 구체적으로 제공할 수 있습니다. 예를 들어
apt install path/*_{amd64,all}.deb
amd64
아키텍처 독립적인 패키지 만 설치됩니다 .
활성화된 모든 아키텍처에 대한 패키지를 다운로드하려면 해당 패키지를 반복합니다.
for arch in $(dpkg --print-architecture) $(dpkg --print-foreign-architectures); do
sudo apt install --download-only --assume-yes libssl-dev:"$arch"
done