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

如何手动安装Perl模块(root)并让非root用户看到它,perl,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(对不起,我手边没有全名

因为我在这里找到了一个答案(谢谢),我想我应该发布一个我仍在研究的问题


对于我们来说,使用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并列出它们时,我看不到这些模块

我需要在库中创建的文件上使用chmod755等标志吗

可能是一些基本的东西,但我正在画一个空白,我知道我已经试过了,但什么也没有得到。所以,希望有人看到这一点,并插嘴,无论它可能是基本的

谢谢,
Chris

除非您在安装过程中做了一些非常奇怪的事情(您应该向我们展示),否则最有可能的解释是root和非root有不同的
路径,并且看到不同的perl。检查
哪个perl


您还应该永远不要以root身份构建或测试。一个错误或过度热情的测试可能会损坏整个机器。作为普通用户进行构建和测试,并使用
sudo
进行安装。使用
sudo
而不是以root用户身份登录将有一个很好的副作用,即避免经常非常不同的root环境,例如不同的
路径
s。

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


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

“这不是使用CPAN的选项”-真的吗?“我已经手动安装了所需的模块”-如何安装?你运行了什么命令?你能告诉我们你的安装过程吗?此外,如果不能使用CPAN(存储库或工具),因为这些是私有开发的模块,或者因为没有网络连接,请考虑或。这将允许您对专用模块存储库使用普通的CPAN工具。您不必手动执行此操作。将与文件一起使用,并且可以作为单个文件安装
cpanm module.tar.gz
。好的,对不起,我没有那么清楚-我的错。我以我自己(非root)的身份登录并执行以下操作。我不应该匆忙发帖。。。。1) cd到模块所在的位置(gz)并执行tar-xvf模块2)cd到解压缩模块3)perl MakeFile.pl(以下一个除外)4)make 5)make test 6)sudo su-7)make install唯一的例外是XML::expat(对不起,我手头没有全名)。但是没有MakeFile.pl,所以我使用perl。\n相反,感谢您的建议,我明天将检查哪个perl(现在没有访问权限),并查看路径。谢谢你的快速回复,非常感谢。Chris@ChrisRoo你应该在你的帖子上写上这些信息。