2010-03-08 27 views
0

我是Perl的绝对初学者,并且正在尝试在我的共享Linux Web主机上使用一些非核心模块。我没有命令行访问权限,只有FTP。只需通过复制lib文件即可安装哪些Perl模块?

主管理员会根据请求考虑安装模块,但我想要使用的模块会经常更新(例如DateTime :: TimeZone),而且我更愿意控制我正在使用哪个版本。

通过实验,我发现了一些模块可以通过复制模块的lib目录下的文件到主机上的目录,并使用

use lib "local_path"; 
在我的剧本

安装,即没有编制要求安装(DateTime和DateTime :: TimeZone再次)。

如何判断某个特定模块是否属于这种情况?我意识到我必须自己解决依赖关系。

此外:如果我希望能够安装任何模块,包括那些需要编译的模块,我将在托管方面寻找什么?

我在此刻猜测我与其他几个人共享一个虚拟机,并且我需要的最低配置是具有shell访问权限的专用虚拟机?

回答

2

请参阅perldoc perlxs

您可以检查模块的来源DynaLoader或类似的东西。这样你可以找出一个模块是否使用任何C代码。

如果您使用类似unix的操作系统,则可以使用包管理器查看包(perl模块)安装的文件/库。

+0

记住我是一个初学者 - 我可以看到doc是关于Perl和C之间的链接,但不能跟随更多。 – e100 2010-03-08 14:16:39

+3

纯perl模块(无XS)只需复制就可以了。除非源系统和目标系统安装了相同的CPU,操作系统和库版本(或多或少),否则使用XS的模块在复制时将不起作用。 – hobbs 2010-03-08 16:45:53

+0

@hobbs:啊哈 - 你应该把这个作为答案。 – e100 2010-03-08 17:16:40

0

您可以使用

use lib "your_local_path" , 

在这种情况下,你可以在你的本地路径模块。

+0

已经对我设法安装的模块做了这个 - 澄清了我的问题,使其更清晰。 – e100 2010-03-08 11:25:52