我正在尝试在 Ubuntu16.04, ARM 上安装。但是,我的计划是首先使用和ros-desktop
递归下载 .deb 包,如下所示apt-get download
apt-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,对我来说它是网络管理器,并且运行良好):
$ sudo apt-cache depends python
将列出所有 Python 依赖项输出:
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
在工作区中的某处创建一个目录:
mkdir python
进入此目录:
cd python
对所有推荐、建议和依赖包的每个依赖项运行 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
在errors.txt中应该有一些关于未删除权限的“W:”警告,您可以忽略它,因为它不会影响下载的结果,您可以证明输入
$ls -la
,因为您可以自己证明,每个文件都已到位,并发出了警告(并且您可能不需要该步骤的权限)。将文件 iE 通过 USB 插入目标设备后,您可以继续
$ sudo dpkg -i *
在相关(依赖)目录中(在这种情况python
下您应该能够安装文件。