2015-12-10 47 views
-2

因为我在这里找到了一个答案(谢谢),我想我会发布一个我仍在处理的问题。如何手动安装Perl模块(root)并让非root用户看到它

对我们来说,使用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 ::外籍人士(抱歉,我没有全名方便)。但是没有Makefile.pl,所以我改为perl .\configure

如果我始终可以成为root用户,但是当我退回到非root用户时,如果我执行instmodsh并将其列出,则看不到这些模块。

是否有我需要使用的标志,在库中创建的某些文件上的chmod 755等?

大概是一些基本的东西,但我画了一个空白,我知道我已经尝试过,没有任何地方。所以,希望有人看到这一点,并发出响声,不管它有多么基本。

谢谢, 克里斯

+3

“这不是使用CPAN的选项” - 真的吗? http://www.perlmonks.org/?node=693828 – Quentin

+3

“我已经手动安装了所需的模块” - 如何?你运行了哪些命令? – Quentin

+0

你能告诉我们你的安装过程吗?另外,如果您不能使用CPAN(存储库或工具),因为这些是私人开发的模块,或者因为您没有网络连接,请考虑[Stratopan](https://stratopan.com/)或[Pinto ](https://metacpan.org/pod/Pinto::Manual)。这些将允许你使用普通的CPAN工具作为私有模块库。 – Schwern

回答

2

除非你正在做的事情在你的安装过程(你应该告诉我们),最有可能的解释是,根和非root用户有不同的PATH S和看到不同的非常怪异皮尔斯。请使用which perl进行检查。

你也应该从来没有建立或测试为根。一个错误或过度测试,整个机器可能会损坏。以普通用户身份建立和测试,并使用sudo进行安装。使用sudo而不是以root身份登录会产生很好的副作用,以避免通常非常不同的根环境,如不同的PATH s。

+0

好的,对不起,我不太清楚 - 我的不好。我以自己身份登录(非root)并执行以下操作。我不应该急于发帖.... 1)cd到模块所在的位置(gz)并执行tar -xvf模块 2)cd解压缩模块 3)perl MakeFile。PL(除了下面的一个) 4)使 5)使测试 6)须藤苏 - 7)使安装 唯一的例外是XML ::外籍人士(抱歉,我没有全名方便)。但是没有MakeFile.pl,所以我做perl。\ configure代替 感谢您的建议,我会检查明天哪个perl(现在无法访问)并查看路径。 感谢您的快速回复,非常感谢。 Chris –

+3

@ChrisRoo您应该使用该信息编辑您的文章。 –

1

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

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