0

我有一个在 centos 5 上编译和运行的软件,现在我很想在 Centos 6 上运行它,未经修改而无需在新机器上编译。

这是挑战:-
我的过程需要某些库,比如libcap.so.1,但 centos 6 有更新的版本,比如libcap.so.2
我能够使旧软件与以下任何黑客一起工作

  1. 创建到 libcap.so.2 的符号链接(libcap.so.1)
  2. 将 libcap.so.1 复制到新机器(centos 6)

两者之间推荐什么以及这种方法是否存在任何已知问题,在centos6上编译将是我的最后选择。

4

1 回答 1

0

创建这样的符号链接有时会起作用,具体取决于导致新版本的更改究竟是什么 - 它们必须是最小的更改,尤其是不会删除对旧库具有或彻底更改的任何例程/变量的访问保留的任何例程/变量的签名。如果库使用符号版本控制(如gcc标准 C 库那样),则该.2版本可能仍包含先前版本提供的完整 API,但我不知道是否libpcap这样做......

如果新库没有封装旧 API,那么最安全的选择是重新编译。如果您的应用程序不是关键任务,和/或您可以处理崩溃和数据损坏的可能性,那么尝试符号链接路由应该不会(太大)伤害......

于 2012-11-16T17:13:16.407 回答