这更像是一个开放的讨论和一个结论,而不是一个真正的问题,希望它可以在某个时候对某人有所帮助。
我正在研究如何在 Internet 断开连接的服务器上制作 Perl 模块(否则答案很简单:使用cpan
),所以我唯一的选择是直接在服务器上手动编译从 Internet(CPAN 或其他)下载的模块.
问题是,在标准的 Windows 服务器上,没有编译器。那么如何制作模块呢?
这更像是一个开放的讨论和一个结论,而不是一个真正的问题,希望它可以在某个时候对某人有所帮助。
我正在研究如何在 Internet 断开连接的服务器上制作 Perl 模块(否则答案很简单:使用cpan
),所以我唯一的选择是直接在服务器上手动编译从 Internet(CPAN 或其他)下载的模块.
问题是,在标准的 Windows 服务器上,没有编译器。那么如何制作模块呢?
如果您查看您的 Strawberry Perl 安装文件夹,您将看到许多有用的实用程序,包括编译器、、cpp.exe
制作实用程序和.c++.exe
gcc.exe
gmake.exe
dmake.exe
dmake
并gcc
一起支持cpan
在您的安装上使用,并且cpanm
也可用。
有关安装模块的一般过程的信息,请查看perlmodinstall
Strawberry Perl 在默认安装中包含了必要的编译环境,所以编译模块是没有问题的。
至于在离线环境中安装模块,我非常偏爱使用cpanmini
. 基本上,您使用具有 Internet 访问权限的机器创建所有 CPAN 的最小镜像,然后将其放到您的离线机器上。更改cpan
程序的设置以指向此本地镜像。现在您可以像平常一样使用cpan
.
这可能看起来有点矫枉过正,但实际上非常简单。CPAN 镜像只占用大约 2GB 的空间,这在现在已经不算什么了。您可以将它放在 U 盘、DVD 或其他任何东西上。它是一劳永逸的解决方案——下次你想安装一个模块时,它已经在那里了。
Strawberry 背后的人很聪明,他们将所有你需要的 Perl 二进制文件打包在<Strawberry install dir>\c\bin
目录下。
然后,直接在 Windows 服务器上离线编译 Perl 模块,过程非常简单:
.tar.gz
文件cmd
在模块目录中打开一个perl Makefile.PL
dmake
,看看有没有错误dmake test
,看看有没有错误dmake install
,看看有没有错误你应该没事!
不要犹豫,完成这篇文章或提出您的问题以改进它。