gpt4 book ai didi

perl - cpan对.local目录的使用可以重定向吗?

转载 作者:行者123 更新时间:2023-12-01 05:01:57 24 4
gpt4 key购买 nike

我有一个 setuid 程序,然后代表用户以 root 身份调用 cpan。这适用于像 yum 这样的命令,但不适用于 cpan。我的问题是用户的主目录是 NFS 挂载共享,并使用 root-squash 选项,因此 root 无法访问用户的主目录。

Cpan 尝试在用户的主目录中创建一个 .local 目录,但由于 root-squash 而失败。

有没有办法配置 cpan,使其使用另一条路径作为构建包的基础?或者,有没有办法将 root 设置为记录的用户标识,以便 cpan 尝试在那里创建 .local 文件?

示例输出:

./cloudSoftware cpan foobarmkdir/home/auto/ts00086/.local:权限在/usr/share/perl5/CPAN/HandleConfig.pm 第 589 行被拒绝。

最佳答案

cpan_home_dir_candidates 生成目录列表。

  1. 使用列表中包含 CPAN/MyConfig.pm 的第一个目录。
  2. 否则,使用列表中存在的第一个目录。
  3. 否则,使用列表中的第一个目录。

那么这个列表是如何构建的呢?

if ($CPAN::META->has_usable('File::HomeDir')) {
if ($^O ne 'darwin') {
push @dirs, File::HomeDir->my_data;
# my_data is ~/Library/Application Support on darwin,
# which causes issues in the toolchain.
}
push @dirs, File::HomeDir->my_home;
}
# Windows might not have HOME, so check it first
push @dirs, $ENV{HOME} if $ENV{HOME};
...

选项包括:

  • 更改 HOME 环境变量(如果未安装 File::HomeDir)。
  • 编辑 CPAN/HandleConfig.pm 中的 cpan_home_dir_candidates 以添加 push @dirs, "/alt/dir";
  • ...

关于perl - cpan对.local目录的使用可以重定向吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43235998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com