【问题标题】:Why won't my custom Perl install into expected directory?为什么我的自定义 Perl 不能安装到预期的目录中?
【发布时间】:2012-05-29 05:29:28
【问题描述】:

我按照this 教程中的说明构建了一个自定义版本的 Perl。

我最初是按照以下步骤进行的第8步:

./Configure -d -Dprefix=/custom/perl

在那之后,我又做了makemake testmake install

然后我决定我想要 /opt/perl 中的 Perl,所以我做了make clean 并重复了这个过程,并在适当的目录中执行了第 8 步。仍然安装到 /custom 中。然后我完全删除了自定义并在./Configure 步骤中使用适当的目录重新安装。仍然安装在 /custom 中。

我错过了什么?我希望 Perl 在 /opt 而不是 /custom。

【问题讨论】:

  • 那行得通。 make distclean 确实删除了 config.shPolicy.sh

标签: linux perl installation centos


【解决方案1】:

./Configure-d 选项会导致构建过程获取现有的 config.sh 文件。 -Dprefix=... 选项将覆盖现有config.sh 中的prefix 设置,但不幸的是,它不会覆盖基于prefix 的早期设置在config.sh 中设置的许多其他选项。

除了make clean,您还需要rm config.sh 才能安全地重用perl 构建目录。

如果您打算将构建过程中的设置复制到另一台机器,您还需要清除 Policy.sh

【讨论】:

    【解决方案2】:

    根据其INSTALL 文件,您可以正确使用 5.16:“您还可以通过将“-Dprefix='/some/dir'”添加到 Configure 的参数来指定任何前缀位置。”

    所以我怀疑make clean 不会删除Configure 创建的文件。从新目录而不是“清理”目录尝试它。或者至少尝试删除config.shPolicy.sh

    [更新:有人指出make distclean 可用于执行此操作。当然,git clean -dfx 也可以,如果您是从 repo 而不是从 tarball 安装的话。 ]

    【讨论】:

    • 通过“新鲜”,ikegami 意味着删除整个构建目录并从您的 .zip/tarball 中提取一个新目录;)
    • @goldilocks,这就是新鲜的意思,尽管我已经补充说,我认为只需删除Configure 创建的两个文件。
    • 看起来我的configure.sh 中仍然有/custom 的实例。删除它和 Policy.sh 并重新启动该过程。看起来它正在工作......我会在一分钟内告诉你。
    • 我不知道为什么Configure 的命令行参数不会覆盖以前选择的设置,但是在构建非螺纹一个。如果您想拥有多个 Perl 版本,您可能需要查看出色的 perlbrew
    • /opt/perl/bin/perl -e 'print "hello world\n";'你好世界
    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多