我有一个在centos 5上编译和运行的软件,现在我有兴趣在Centos 6上运行它,未经修改就没有在新机器上编译。
这是挑战: -
我的进程需要某些lib说 libcap.so.1 但是centos 6有更新的版本说 libcap.so.2
我能够使用以下任何黑客攻击旧软件
两者之间建议什么,这种方法有任何已知问题,在centos6上编译将是我的最后选择。
答案 0 :(得分:0)
创建这样的sym链接有时会起作用,这取决于导致新版本的确切变化 - 它们必须是最小的更改,尤其是不会删除对旧库具有的任何例程/变量的访问权限或者彻底改变任何剩下的例程/变量的签名。如果库使用符号版本控制(就像gcc
标准C库那样),.2
版本仍然可能包含先前版本提供的完整API,但我不知道我的顶部如果libpcap
那样做......
如果新库没有封装旧API,那么最安全的选择是重新编译。如果您的应用程序不是关键任务,并且/或者您可以处理崩溃和数据损坏的可能性,那么只要尝试sym链接路由就不会受到太多伤害......