39

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

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

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

谢谢

4

5 回答 5

34
$ 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意义。

于 2012-05-07T14:24:16.157 回答
6

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

# Install ppm (outdated)
cpan PPM 

# Install cpanp (still used)
cpan CPANPLUS

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

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

cpanm Net::TCP::Server

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

cpanm -f Net::TCP::Server
于 2016-09-08T09:52:02.397 回答
4

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

您应该能够在没有 Cygwin 的情况下在 Windows 下使用 EPIC 运行 Eclipse。我在很多方面都喜欢 Cygwin,但它并不是一个非常稳定的平台。Eclipse 作为 Java 程序运行,因此您所要做的就是确保在您的 PC 上安装了 Java。甚至还有一个预构建的 Eclipse 包。

您还可以获得在 Windows 下运行的像样的 Perl。ActivePerl草莓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 模块之一。这将为您省去一大堆麻烦,因为所需的模块是 Perl 现有包的一部分。

于 2012-05-07T22:28:41.273 回答
2

尽管有 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 安装。

于 2015-03-16T00:09:13.960 回答
0

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

于 2019-08-11T17:39:45.370 回答