对于Perl而言,Perl对于动态语言来说是非常新颖的东西,对于如何不直接管理模块,我感到有些惊讶。为什么我不能简单地将已安装的Perl模块复制到其他机器上?
当然,cpan X
理论上可行,但我正在从三个不同的机器和操作系统(在工作中,在家中,在外部环境中测试)的同一项目。
- 在工作中(Windows 7)中我使用
cpan
,因为我们的防火墙,让FTP无法使用 - 在家里键(Mac OS X)它的工作
- 在外部环境(Linux的CentOS的)问题,它因为我没有root访问权限,因此我必须配置
cpan
以非root用户身份运行 - 我试过在另一台有权访问的服务器上。如果以前的外部环境是一个VPS,所以我有一个外壳访问,这另一个是廉价的共享主机,我没有办法安装除预装的新模块
此刻我在Windows下仍然无法安装Template。我已经看到,作为替代方案,我可以编译它,并且我也尝试了ActiveState的PPM,但该模块并不存在。
现在,我的困惑是关于Perl是一种动态语言。在工作时,我遇到了所有这些问题,例如,在C中,我必须为所有平台编译所有库,但我认为使用Perl时,这种方法与Python或PHP中的方法非常相似,即在90在目录中复制模块并导入它的情况的%很简单。
所以,我的问题:如果Perl的模块是用Perl编写的,为什么复制/粘贴方法不起作用?如果必须编译一些模块(或部分模块),如何在CPAN中查看某个模块是仅限于Perl还是依赖于编译的库?没有办法下载模块(tar,zip ...)并使用cpan来部署它吗?这将解决我在Windows下的问题。
当模块用Perl编写时,你可以*只复制它们。是的,你也可以“cpan”。尽管这会让你自己解决依赖关系。 – hobbs 2010-04-21 13:10:50
VPS通常意味着root访问,而不仅仅是shell访问。 – MkV 2010-04-21 13:18:24
你在Windows上使用什么?草莓的Perl,ActiveState,别的?我相信ppm有模板工具包。 如果您在安装Template Toolkit时遇到问题,您可以随时尝试使用Template :: Tiny,而这仅取决于Capture :: Tiny,而这仅取决于核心Perl模块 – MkV 2010-04-21 13:26:38