鉴于我编译的一些unix程序,我需要做些什么才能将它重新定位到不同的目录并让它继续正确运行.
我正在考虑Perl,但是会对像Apache这样的其他系统感兴趣,这些系统在完成后似乎也会失败.为了激发这个问题,在将其他系统捆绑为产品安装的一部分时,能够执行此类重定位非常有用.
对于它的价值,ActivePerl的安装过程似乎包含了一些在安装过程中执行重定位的魔法.
Installing ActivePerl... Copying files to /opt/ActivePerl-5.8...done Relocating...done (164 files relocated) Generating HTML documentation...done Syncing perl PPM database with .packlists...done ActivePerl has been successfully installed at /opt/ActivePerl-5.8.
任何人都可以告诉我“重新安置……”背后发生了什么?
解决方法
编译perl时,它需要某些位置的某些文件.您可以使用perl -V查看其中一些路径.对于ActivePerl,当您想要移动整个安装时,您必须更新perl期望查找内容的位置以及各种帮助程序期望找到perl的位置.请参阅ActiveState的
reloc_perl文档,如果有,请查看源代码.
ActivePerl所做的事与你对其他程序的处理没有任何关系.这取决于他们每个人所做的和期望的.