代码之家  ›  专栏  ›  技术社区  ›  Matt Sheppard

ActivePerl在安装期间“重新定位”文件时在做什么?

  •  3
  • Matt Sheppard  · 技术社区  · 15 年前

    考虑到一些我已经编译过的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.
    

    有人能告诉我在那条“搬迁”线后面发生了什么吗?

    5 回复  |  直到 11 年前
        1
  •  7
  •   brian d foy    15 年前

    当您编译Perl时,它期望在特定位置有特定的文件。你可以看到其中的一些路径 perl -V . 对于ActivePerl,当要移动整个安装时,必须更新 perl 期望找到东西,以及各种帮助程序期望找到的地方 珀尔 . 请参阅ActiveState的文档 reloc_perl 如果你有,也许看看来源。

    ActivePerl所做的与您将如何处理其他程序没有一般关系。这取决于他们各自的所作所为和期望。

        2
  •  3
  •   Amber    15 年前

    很大程度上取决于程序。有些程序是相当独立的,因此处理移动比在外部定位的配置文件或其他不太宽容的元素中具有目录路径的其他程序更为优雅。

        3
  •  3
  •   daotoad    15 年前

    活动Perl不会在您的系统上编译Perl,它只是解包并将其复制到正确的位置。

    问题在于,Perl安装程序有许多文件需要具有特定于安装的信息,例如查找库的位置、安装程序所在的位置等等。这些文件在重新定位阶段被修改为具有正确的信息。

        4
  •  0
  •   Elalfer    15 年前

    这取决于你在“重新安置”下的意思。您可以运行二进制文件,然后将其移动到另一个目录,它应该在Linux下工作。

    因此,您可以编写一个程序,将所有二进制文件和配置文件移动到另一个目录中,然后只更改当前的工作目录。

        5
  •  0
  •   Frank    11 年前

    使用Ultraedit搜索和替换Perl安装下的所有文件:例如,当从C:\Perl64移到G:\Perl64时,替换包含“C:\Perl64”到“G:\Perl64”的所有文件。在这个过程中,我们需要取消选中几个配置文件和exe文件的只读属性,然后重新进行替换。

    推荐文章