インターネットに接続していない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
これで作業は完了しますが、1 つのパッケージの依存関係のみを対象とし、パッケージの依存関係の依存関係などを対象としません。これにより、すべてのパッケージを取得するために何時間も格闘することになり、非常に面倒です。このコードを実行して、オンライン コンピューターの USB ドライブに .deb ファイルをダウンロードし、次にオフライン コンピューターに移動してドライブを挿入し、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 つのフォルダーにダンプして、正気を保つ方法を誰か知っていますか? ありがとうございます!
答え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
zip ファイル バンドルをオフライン マシンに戻し、次のコマンドを実行します。
sudo apt-offline install ndis-ao.zip
この時点でインストールは完了しておりndiswrapper-dkms
、すべて正常に動作するはずです。
パッケージのインストールに失敗した場合はapt-offline
、失敗した依存パッケージをメモし、それらを 1 つずつ解決します (必要に応じて手動でコピーします)。依存関係地獄は厄介ですが、残念ながら、これはよりオフラインのシステムで発生する問題の 1 つです。
ぜひご覧になってみてくださいapt-rdepends
生成するためにも完了依存関係グラフ。これと組み合わせるapt download
と、問題の別の解決策が得られる可能性がありますが、これを使用した私のテストでは、控えめに言っても決定的な結果は得られませんでした。