인터넷이 없는 Ubuntu 컴퓨터와 인터넷이 있는 Ubuntu 컴퓨터가 있습니다. 인터넷이 없는 경우 ndiswrapper를 통해 드라이버를 설치해야 합니다. 문제는 어느 것이 몇 가지에 의존 ndiswrapper-dkms
하고 dkms
, 그 몇 가지가 많은 것에 의존하고, 그 몇 가지가 더 많은 것에 의존한다는 것입니다. 지금까지 92개의 종속 항목을 수동으로 다운로드했지만 여전히 더 많은 항목이 필요합니다. 나는 코드를 사용하고있다
for i in $(apt-cache depends <package> | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>errors.txt; done
이는 작업을 완료하지만 패키지 종속성의 종속성이 아닌 하나의 패키지 종속성에 대해서만 수행됩니다. 이것은 모든 패키지를 얻기 위한 여러 시간의 싸움으로 바뀌었고 정말 지루합니다. 저는 이 코드를 실행하여 .deb 파일을 온라인 컴퓨터의 USB 드라이브에 다운로드한 다음 오프라인 컴퓨터로 이동하여 드라이브를 삽입한 다음 sudo apt install ./*
폴더에서 실행하고 최선을 다했습니다. 일반적으로 다음과 같은 내용이 나옵니다.
...
The following packages have unmet dependencies:
binutils : Depends: binutils-common (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
Depends: libbinutils (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
Depends: binutils-x86-64-linux-gnu (= 2.30-21ubuntu1~18.04.1) but 2.30-21ubuntu1~18.04 is to be installed
cpp-doc : Depends: cpp-7-doc (>= 7.4.0-1~) but it is not installable
file : Depends: libmagic1 (= 1:5.32-2ubuntu0.2) but 1:5.32-2ubuntu0.1 is to be installed
g++-7 : Depends: libstdc++-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
g++-multilib : Depends: g++-7-multilib (>= 7.4.0-1~) but it is not installable
gcc-7-multilib : Depends: lib32gcc-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libx32gcc-7-dev (= 7.4.0-1ubuntu1~18.04) but it is not installable
gfortran : Depends: gfortran-7 (>= 7.4.0-1~) but it is not installable
glibc-doc : Depends: glibc-doc-reference (>= 2.18) but it is not installable
libasan4-dbg : Depends: libasan4 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libatomic1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libatomic1 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libbabeltrace1 : Depends: libdw1 (>= 0.126) but it is not installable
libcc1-0 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libcilkrts5-dbg : Depends: libcilkrts5 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libfl-dev : Depends: libfl2 (= 2.6.4-6) but it is not installable
libgcc-7-dev : Depends: libitm1 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libatomic1 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libasan4 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: liblsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libtsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libubsan0 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libcilkrts5 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
Depends: libmpx2 (>= 7.4.0-1ubuntu1~18.04) but it is not installable
libgcc1 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libgcc1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libgomp1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libgomp1 (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libitm1-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libitm1 (= 8.3.0-6ubuntu1~18.04) but it is not installable
liblsan0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: liblsan0 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libmpx2-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libmpx2 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libquadmath0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libquadmath0 (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libstdc++6 : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
libtsan0-dbg : Depends: gcc-8-base (= 8.3.0-6ubuntu1~18.04) but 8.2.0-1ubuntu2~18.04 is to be installed
Depends: libtsan0 (= 8.3.0-6ubuntu1~18.04) but it is not installable
libubsan0-dbg : Depends: libubsan0 (= 7.4.0-1ubuntu1~18.04) but it is not installable
libumfpack5 : Depends: libcholmod3 (>= 1:4.5.2) but it is not going to be installed
m4 : Depends: libsigsegv2 (>= 2.9) but it is not installable
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
내 정신을 보호하기 위해 패키지 종속성과 모든 하위 종속성에 대한 모든 .deb 파일을 단일 폴더에 덤프하는 방법을 아는 사람이 있습니까? 고마워!
답변1
보세요apt-offline
, 오프라인 종속성을 관리하는 (보다) 사용자 친화적인 방법입니다. 먼저 debfile을 다운로드하고 오프라인 컴퓨터로 전송하여 설치해야 합니다. sudo apt download apt-offline
다운로드를 처리하는 것과 같은 것을 사용할 수 있습니다 . sudo dpkg -i /path/to/your/debfile.deb
오프라인 컴퓨터와 sudo apt install
온라인 컴퓨터에서만 설치를 수행할 수 있습니다 .
이 작업이 완료되면 실제 설치를 위해 여러 가지 준비를 해야 합니다.
패키지 설치를 요청하는 오프라인 시스템의 서명을 생성하여 시작하세요
ndiswrapper
.sudo apt-offline set offline.sig --install-packages ndiswrapper-dkms
파일을 온라인 머신에 복사하고 온라인 머신에서 다음 명령을 실행하여 필요한 모든 파일을 다운로드합니다.
apt-offline get offline.sig --bundle ndis-ao.zip
zipfile 번들을 오프라인 머신으로 다시 이동하고 여기에서 다음 명령을 실행합니다.
sudo apt-offline install ndis-ao.zip
이 시점에서 설치를 완료해야 하며 ndiswrapper-dkms
모든 것이 잘 되어야 합니다.
패키지 설치에 실패 하면 apt-offline
실패한 종속 패키지를 기록해 두고 하나씩 해결합니다(필요에 따라 수동으로 복사). 종속성 지옥은 짜증나는 일이지만 불행히도 이는 오프라인 시스템의 문제 중 하나입니다.
당신은 살펴 볼 수 있습니다apt-rdepends
뿐만 아니라완벽한의존성 그래프. 이것을 결합하면 apt download
문제에 대한 대체 솔루션을 얻을 수 있지만 이것에 대한 테스트는 결론이 나지 않았습니다.