如何在Cygwin中安装Perl库?

时间:2012-05-07 14:08:56

标签: perl cygwin perl-module

我是一名C / C ++ / Java / Unix极客,但现在我必须在Windows中编写一个Perl程序。所以我安装了Cygwin,安装了EPIC的Eclipse,并运行了简单的测试程序。我没有可用的Unix机器,我可以运行Eclipse。

但我需要使用Net::TCP::Server,我无法弄清楚如何安装它。它似乎不是Cygwin Perl安装的一部分,我不想花5天时间学习Perl和CPAN以及Perl配置的世界。我只是想写我的程序。

在Cygwin中安装Perl模块的任何简单方法?我认为像apt-get install这样的东西会很好,但我希望这太过于希望了。

由于

5 个答案:

答案 0 :(得分:30)

$ perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]> install Net::TCP::Server

使用o conf命令列出配置是有益的。

答案 1 :(得分:4)

  

我是一名C / C ++ / java unix极客,但现在我必须在windows中编写一个perl程序。所以我得到了cygwin,安装了EPIC的eclipse,并运行了简单的测试程序。我没有可用的unix机器,我可以运行eclipse。

你应该可以在没有Cygwin的Windows下运行带有EPIC的Eclipse。我喜欢Cygwin很多东西,但它并不是一个非常稳定的平台。 Eclipse作为Java程序运行,因此您所要做的就是确保在PC上安装Java。甚至还有一个预构建的Eclipse包。

你也可以在Windows下运行一个像样的Perl。 ActivePerlStrawberry Perl。任何人都会工作,虽然许多Unix负责人更喜欢Strawberry Perl,因为它带有与Cygwin相同的MIGW环境,并且很多人认为它与Unix Perl兄弟更兼容。但是,ActiveState Perl可以使用包含预构建模块的Perl包管理器(PPM)。不幸的是,您想要的模块无法通过PPM获得。

  

但我需要使用Net :: TCP :: Server,我无法弄清楚如何安装它。它似乎不是cygwin perl安装的一部分,我不想花5天时间学习perl和cpan和perl配置的世界。我只是想写我的程序。

从CPAN安装非常简单。第一次运行CPAN时,它应该自行配置。然后,要进行安装,请运行cpan install Net::TCP::Server,这应该是它。但是,我已经尝试了几台Mac,Unix和Linux机器,我无法让它工作。因此,这不是Windows问题,而是此模块的问题。它相当陈旧,在新版本的Perl中可能效果不佳。您可能必须强制安装而不是测试的异议。

也许您可以使用Perl附带的已安装的IO modules之一。这将为您节省大量麻烦,因为所需的模块是Perl现有软件包的一部分。

答案 2 :(得分:4)

看到这里的一些信息有点过时而且过于复杂,我宁愿提出以下建议。有一些不同的Perl包管理器正在使用中。它们都安装了cpan(已经是Cygwin Perl安装的一部分),如下所示:

# Install ppm (outdated)
cpan PPM 

# Install cpanp (still used)
cpan CPANPLUS

# Install cpanm (most recent)
cpan App::cpanminus

然后你可以使用cpanm安装你喜欢的任何Perl包,例如在OP中:

cpanm Net::TCP::Server

有时(如上所述)Cygwin可能会失败某些测试。例如,在仅配置了IPv4的计算机上使用IPv6时,或者当您的Windows防火墙阻止某些测试时,等等。要尝试安装,请尝试使用 force 标志; -f

cpanm -f Net::TCP::Server

答案 3 :(得分:1)

尽管有Cygwin的问题,"每当我必须使用Windows时,我会定期使用它。我建议首先使用perlbrew安装一个单独的Perl安装,这样你就不会干扰Cygwin的Perl副本,以防由于Cygwin没有强制执行root用户策略而发生了不好的事情。在cygwin shell中,键入

\curl -L http://install.perlbrew.pl | bash

这应该遍历perlbrew的安装并在其中一个可执行路径中进行设置。下一个类型

perlbrew init
perlbrew install --force stable
perlbrew switch stable

在编译一个薄荷Perl时等一下。由于未知原因,Perl只能通过Cygwin的99.23%的核心模块测试(至少在我的机器上),因此--force标志)。我的经验是,它主要与处理设备文件有关,如端口和管道。我不知道有人试图解决这个问题,因为它似乎是一个Cygwin问题。虽然通用系统和Web编程任务对我来说没有太多问题。如果存在任何问题,模块测试例程将会失败,所以我不会为此烦恼。

下一步是安装cpanm(cpanminus),输入

perlbrew install-cpanm

从现在开始,要从CPAN安装任何库,只需输入

即可
cpanm [library::name1] [library::name2]

cpanm使安装任何Perl模块变得微不足道。您甚至可以从本地目录而不是CPAN安装。

答案 4 :(得分:0)

您的行驶里程可能会有所不同,但是直到我意识到Strawberry Perl在我的PATH中有很多bin文件夹,并且当我将.bashrc更改为仅导出非常简单的PATH = / bin时,我还是遇到了很多麻烦: usr / bin:/ usr / local / bin,Cygwin的perl安装程序的cpan开始正常运行。我使用local:lib是因为Cygwin不支持sudo。一遍又一遍地说“按空格键和ENTER键退出补丁程序”。