如何让我的 DEB 安装 libstdc++.so.6.0.20?

如何让我的 DEB 安装 libstdc++.so.6.0.20?

在我的开发机器上,我有 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20;在全新​​安装的 Ubuntu 14.04 上,我有 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19。我刚刚开始创建 DEB 文件来安装我的应用程序,它可以安装应用程序本身,现在我希望我的 DEB 文件也能安装必要的共享库(如 libstdc++.so.6.0.20)。

该库是从包 libstdc++6 安装的,但是默认存储库没有正确的版本,我必须添加 ppa:ubuntu-toolchain-r/test 存储库才能获取正确的版本。

好像我需要添加行

Depends: libstdc++6:amd64 (= 4.9.2-0ubuntu1~14.04)

到我的 DEBIAN/control 文件,但似乎如果不告诉它有关存储库的信息,它就无法工作,而且我不知道如何做到这一点。

还是我完全搞错了方向?我猜如果我正确设置了对 libstdc++6 的依赖,它会通过互联网下载,作为我的 DEB 安装程序的一部分?

谢谢,克里斯

ps 我的 DEB 安装程序只会在内部使用,它将从 USB 记忆棒或类似设备复制到目标机器上,永远不会从互联网上下载...

答案1

一个软件包可以依赖于另一个软件包的任何版本,但软件包管理系统只有在启用的存储库中才能安装该依赖项。因此,您必须在安装软件包之前将该 PPA 添加到目标系统。您的安装说明将如下所示:

sudo add-apt-repository ppa:...
sudo apt-get update
# Followed by preferred means of installing your package 

另请查看如何在没有互联网(离线)的情况下安装软件或软件包?了解在 USB 驱动器上设置小型存储库的方法,以便所有依赖项都直接包含在其中,而无需添加 PPA。

(顺便说一句,您不必在依赖项中指定架构。)

相关内容