如何手动安装Perl模块(root)并让非root用户看到它

时间:2015-12-10 22:13:25

标签: perl

因为我在这里找到了一个答案(谢谢),我想我发布了一个我仍在努力的问题。

对我们来说,它不是使用CPAN的选项,所以我手动安装了所需的模块。我以自己的身份登录(非root)并执行以下操作:

cd work-dir
tar -xvf module.tar.gz
cd module
perl Makefile.pl   (except for one below)
make
make test
sudo su -
make install

唯一的例外是XML :: expat(抱歉,我没有方便的全名)。但是没有Makefile.pl,所以我改为perl .\configure

如果我可以一直都是root用户,那就太棒了,但当我回到非root用户时,当我执行instmodsh并将其列出时,我看不到这些模块。

我需要使用一个标志,chmod 755在某个文件库中创建的文件等等吗?

可能是一些基本的东西,但我画了一个空白,我知道我已经尝试过并且无处可去。所以,希望有人看到这个并且插话,无论它是多么基本。

谢谢, 克里斯

2 个答案:

答案 0 :(得分:2)

除非你在安装过程中做了一些非常奇怪的事情(你应该向我们展示),最可能的解释是root和non-root有不同的PATH并看到不同的perls。查看which perl

此外,您应该 永远不会以root身份构建或测试 。一个错误或过度热心的测试和整个机器可能被破坏。以普通用户身份构建和测试,并使用sudo进行安装。使用sudo而不是以root身份登录将具有避免通常非常不同的根环境的良好副作用,例如不同的PATH

答案 1 :(得分:1)

您是否尝试过sudo make install而不是sudo su -,然后make installsu -重置环境,可能会导致您将模块安装到不同的Perl安装中。

例如,root可能正在使用/usr/bin/perl而非root用户正在使用/usr/local/bin/perl,并且他们不会共享模块目录。