因为我在这里找到了一个答案(谢谢),我想我发布了一个我仍在努力的问题。
对我们来说,它不是使用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在某个文件库中创建的文件等等吗?
可能是一些基本的东西,但我画了一个空白,我知道我已经尝试过并且无处可去。所以,希望有人看到这个并且插话,无论它是多么基本。
谢谢, 克里斯
答案 0 :(得分:2)
除非你在安装过程中做了一些非常奇怪的事情(你应该向我们展示),最可能的解释是root和non-root有不同的PATH
并看到不同的perls。查看which perl
。
此外,您应该 永远不会以root身份构建或测试 。一个错误或过度热心的测试和整个机器可能被破坏。以普通用户身份构建和测试,并使用sudo
进行安装。使用sudo
而不是以root身份登录将具有避免通常非常不同的根环境的良好副作用,例如不同的PATH
。
答案 1 :(得分:1)
您是否尝试过sudo make install
而不是sudo su -
,然后make install
? su -
重置环境,可能会导致您将模块安装到不同的Perl安装中。
例如,root
可能正在使用/usr/bin/perl
而非root用户正在使用/usr/local/bin/perl
,并且他们不会共享模块目录。