解决 apt-get 下载时无法选择候选版本的错误?

解决 apt-get 下载时无法选择候选版本的错误?

我正在尝试在 Ubuntu16.04, ARM 上安装。但是,我的计划是首先使用和ros-desktop递归下载 .deb 包,如下所示apt-get downloadapt-rdepends这里然后使用dpkg忽略一些我不想要的依赖项进行安装。(apt-get install不会让我忽略这些依赖项,所以我求助于这种方法)。但我在下载包时遇到错误

E: Can't select candidate version from package xxx as it has no candidate

还有更多类似的行。您能建议一个解决方法吗?

重要提示:如果建议是apt-get update,我无法执行,因为某些更新的软件包不兼容,会导致我安装的驱动程序崩溃。除此之外,有没有办法可以成功手动下载和安装?

仅供参考:我忽略的依赖项是 mesa,因为我已经有自己的 opengl 实现库,并且我不希望这些额外的 mesa 包干扰。提前致谢。

答案1

我发现此链接有效,因为我遇到了与您相同的问题:

www.ostechnix.com/download-packages-dependencies-locally-ubuntu/

它的工作原理大致如下(用依赖项的名称替换关键字 python,对我来说它是网络管理器,并且运行良好):

  1. $ sudo apt-cache depends python将列出所有 Python 依赖项
  2. 输出:

    python PreDepends: python-minimal Depends: python2.7 Depends: libpython-stdlib Conflicts: <python-central> Breaks: update-manager-core Suggests: python-doc Suggests: python-tk Replaces: python-dev

  3. 在工作区中的某处创建一个目录: mkdir python

  4. 进入此目录: cd python

  5. 对所有推荐、建议和依赖包的每个依赖项运行 foreach 循环,并将错误放入 errors.txt 文件中:

    $ for i in $(apt-cache depends python | 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

  6. 在errors.txt中应该有一些关于未删除权限的“W:”警告,您可以忽略它,因为它不会影响下载的结果,您可以证明输入$ls -la,因为您可以自己证明,每个文件都已到位,并发出了警告(并且您可能不需要该步骤的权限)。

  7. 将文件 iE 通过 USB 插入目标设备后,您可以继续

    $ sudo dpkg -i * 在相关(依赖)目录中(在这种情况python下您应该能够安装文件。

相关内容