【问题标题】:Using a shared library for Ubuntu 16 in Ubuntu 18在 Ubuntu 18 中使用 Ubuntu 16 的共享库
【发布时间】:2019-08-23 11:06:34
【问题描述】:

我正在开发一个在 Ubuntu 18.04 机器上执行的程序,它需要一个仅适用于 Ubuntu 16 的共享库。是否可以在 Ubuntu 18 中使用这个共享库?

【问题讨论】:

  • 为什么它只适用于 Ubuntu 16?
  • 那个 Ubuntu 16 共享库可能是一些免费软件或开源代码。找到其最新版本的源代码,然后在您的 Ubuntu 18 上构建它
  • 至少没有命名那个共享库,你的问题实在是太宽泛了。
  • 大多数这样做的人都使用符号版本控制。我认为它带来的麻烦多于它的价值。另见How can I link to a specific glibc version?

标签: linux ubuntu gcc shared-libraries glibc


【解决方案1】:

也许吧。你将不得不尝试。不过,它可能会给您带来各种奇怪的问题,并使您面临未知的安全风险。

尝试复制 *.so 文件和任何指向 /usr/local/lib/ 的链接(需要 root 权限)。如果程序找不到它,请尝试sudo ldconfig -v 并在输出中查找您的库。如果它在那里,您可以尝试再次运行您的程序。

最简单的情况是您的程序由于缺少 GLIBC 符号而立即失败。在这种情况下,你不能。找到库的源码,在新系统上编译。

如果这不是一个选项,您可以考虑在新系统上运行的 VM 中安装 Ubuntu 16。这将使您面临各种可以减轻的安全风险,我确保只有外部 Ubuntu 18(获取安全更新)可以与 VM 通信。仅在以下情况下推荐:a)您知道自己在做什么并且以前做过很多次,b)您认识合适的人 a),或 c)您的经理不关心您公司的声誉并给您签字将您的所有数据交给任何可以访问互联网的人。

从最后一个选项来看:人类攻击你的时代早已一去不复返了。今天的威胁是自动攻击系统,它会抓取更新站点的安全漏洞,并在没有任何人工干预的情况下 24/7 全天候在连接到 Internet 的任何东西上尝试它们。当系统拥有一堆新系统时,人类第一次发挥作用。

【讨论】:

  • 最后一句是什么意思?我理解大意,但我不是以英语为母语的人,所以我会换一种说法:我不会说“系统拥有一堆新系统”。
  • “owned”是俚语,意思是“控制/超过”。因此,系统会自动在易受攻击的计算机上安装允许远程控制它们的软件。当它们中的足够多被破解时,它们被添加到工作池中。然后为池分配任务:收集密码、信用卡数据、发送垃圾邮件、攻击更多计算机、挖掘/窃取比特币,任你选择。
  • 对不起,我是法国人,所以不太懂俚语,即使我的普通英语通常足够好(例如,我几乎是一个人写了Bismon report,几乎没有外部帮助)。但我不会用“俚语”写字(甚至可能不会用法语)
猜你喜欢
  • 2013-07-16
  • 1970-01-01
  • 2016-04-25
  • 2018-09-06
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
相关资源
最近更新 更多