首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何逃离依赖地狱?

如何逃离依赖地狱?
EN

Ask Ubuntu用户
提问于 2019-05-20 03:01:11
回答 1查看 4.5K关注 0票数 21

我有一个Ubuntu计算机没有互联网和Ubuntu计算机与互联网。没有互联网的驱动程序需要通过ndiswrapper安装。问题是,ndiswrapper-dkms依赖于dkms,它依赖于一些东西,而这几件事情依赖于很多事情,这些事情更依赖于更多,等等。到目前为止,我已经手动下载了92个依赖项,我仍然需要更多。我一直在用密码

代码语言:javascript
复制
for i in $(apt-cache depends  | 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 ./*并希望得到最好的结果。它通常会吐出这样的东西:

代码语言:javascript
复制
...
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文件转储到一个文件夹中以保存我的理智?谢谢!

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-05-20 04:15:30

看看apt-offline,一种(更多的)用户友好的管理离线依赖关系的方法。您需要先安装它,下载该文件并将其传输到您的脱机计算机。您可以使用像sudo apt download apt-offline这样的工具来处理下载。可以在脱机计算机上使用sudo dpkg -i /path/to/your/debfile.deb完成安装,在联机计算机上只使用sudo apt install完成安装。

一旦完成,您就需要为实际安装准备一堆东西。

  1. 首先,创建一个要求安装ndiswrapper包的脱机系统的签名: sudo apt-脱机设置offline.sig --安装-packages ndiswrapper dkms。
  2. 将该文件复制到联机计算机,并在联机计算机上运行以下命令以下载所有所需文件:apt-脱机获取offline.sig --bundle ndis-ao.zip
  3. 将apt文件包移回脱机计算机,并在其上运行以下命令: sudo apt-脱机安装ndis-ao.zip

此时您应该安装了ndiswrapper-dkms,一切都应该很好。

如果您的apt-offline包安装失败,请注意失败的依赖包并逐个解决它们(根据需要手动复制)。依赖地狱是烦人的,但不幸的是,这是一个更离线系统的问题之一。

您也可以尝试查看apt-rdepends来生成一个完整的依赖关系图。将此与apt download相结合,您可能会有一个解决问题的替代方案,尽管我的测试至少还没有定论。

票数 27
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1144640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档