2012-05-07 58 views
33

Tôi là một geek C/C++/Java/Unix bằng giao dịch, nhưng bây giờ tôi phải viết một chương trình Perl trong Windows. Vì vậy, tôi đã có Cygwin, Eclipse với EPIC được cài đặt, và các chương trình thử nghiệm đơn giản chạy. Tôi không có một máy Unix có sẵn cho tôi mà tôi có thể chạy Eclipse trên.Làm cách nào để cài đặt thư viện Perl trong Cygwin?

Nhưng tôi cần sử dụng Net::TCP::Server và tôi không thể tìm ra cách cài đặt. Nó không xuất hiện là một phần của cài đặt Cygwin Perl, và tôi không muốn dành 5 ngày để học thế giới về cấu hình Perl và CPAN và Perl. Tôi chỉ muốn viết chương trình của mình.

Bất kỳ cách đơn giản nào để cài đặt mô-đun Perl trong Cygwin? Tôi nghĩ rằng một cái gì đó như apt-get install sẽ được tốt đẹp, nhưng tôi hy vọng đó là quá nhiều để hy vọng.

Cảm ơn

+0

http://strawberryperl.com/ - hãy khám phá. – Mat

+0

'CPAN Net :: TCP :: Server'? – TLP

+0

Từ [FAQ Overl Perl FAQ] (http://stackoverflow.com/questions/tagged/perl?sort=faq): [Cách dễ nhất để cài đặt một mô-đun Perl bị thiếu là gì?] (Http://stackoverflow.com/câu hỏi/65865/whats-the-dễ nhất-cách-to-install-a-missing-perl-module) – daxim

Trả lời

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

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

Và đó là bài học để liệt kê các cấu hình với lệnh o conf.

+0

Chạy kiểm tra PERL_DL_NONLAZY = 1 /usr/bin/perl.exe "-MExtUtils :: Lệnh :: MM" "-e" "test_harness (0, 'blib/lib', 'blib/arch')" t/* .t t/00basic.t .. panic: không có địa chỉ cho 'Net :: TCP :: TCP_RPTR2RXT' trong 'Gen.c' tại /usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pm dòng 223 BEGIN không thành công - biên dịch bị hủy bỏ tại /home/smark/.cpan/build/Net-ext-1.011-v2seXU/blib/lib/Net/Gen.pm dòng 194. Biên dịch không thành công theo yêu cầu tại t/00basic.t dòng 268. – stu

+1

Vì vậy, tôi nhận được ở trên khi tôi cố gắng để cài đặt nó.Dường như nó biên dịch được (rất nhiều cảnh báo) và sau đó tôi nhận được điều đó khi thực hiện chương trình thử nghiệm – stu

+1

Bạn có thể sử dụng nó ngay cả khi một số thử nghiệm không thành công (với một hạt muối). Như daxim chỉ ra, điều này có thể là do sự hỏng bit của gói đó và bạn nên nghĩ đến việc sử dụng các mô-đun cập nhật với chức năng tương đương. – Jens

4

Tôi là một C/C++/java unix geek bằng giao dịch, nhưng bây giờ tôi phải viết chương trình perl trong cửa sổ. Vì vậy, tôi đã có Cygwin, nhật thực với EPIC được cài đặt, và các chương trình thử nghiệm đơn giản chạy. Tôi không có một máy unix có sẵn cho tôi mà tôi có thể chạy nhật thực trên.

Bạn sẽ có thể chạy Eclipse với EPIC ngay trong Windows mà không có Cygwin. Tôi thích Cygwin cho nhiều thứ, nhưng nó không phải là một nền tảng rất ổn định. Eclipse chạy như một chương trình Java, vì vậy tất cả những gì bạn phải làm là đảm bảo Java được cài đặt trên PC của bạn. Thậm chí còn có một gói Eclipse được xây dựng sẵn.

Bạn cũng có thể nhận được một Perl phong nha chạy ngay trong Windows. Hoặc là ActivePerl hoặc Strawberry Perl. Hoặc là một trong những sẽ làm việc mặc dù nhiều người đứng đầu Unix thích Strawberry Perl vì nó đi kèm với môi trường MIGW tương tự mà Cygwin có và nhiều người cảm thấy nó tương thích hơn với các anh em Perl Unix. Tuy nhiên, ActiveState Perl có thể sử dụng Trình quản lý gói Perl (PPM) có chứa các mô đun được tạo sẵn. Rất tiếc, mô-đun bạn muốn không có sẵn thông qua PPM.

Nhưng tôi cần sử dụng Net :: TCP :: Server và tôi không thể tìm ra cách cài đặt nó. Nó không xuất hiện để được một phần của cài đặt perl Cygwin, và tôi không muốn dành 5 ngày học tập thế giới của cấu hình perl và cpan và perl. Tôi chỉ muốn viết chương trình của mình.

Cài đặt từ CPAN thực sự khá đơn giản. Lần đầu tiên bạn chạy CPAN, nó sẽ khá nhiều cấu hình chính nó. Sau đó, để thực hiện cài đặt, bạn chạy cpan install Net::TCP::Server và điều đó phải là vậy. Tuy nhiên, tôi đã thử trên một số máy Mac, Unix và Linux, và tôi không thể làm cho nó hoạt động. Vì vậy, đây không phải là một vấn đề Windows nhiều như một vấn đề với mô-đun này. Nó khá cũ, và có thể không hoạt động tốt trong các phiên bản mới hơn của Perl. Bạn có thể buộc phải cài đặt các phản đối của bài kiểm tra.

Có thể bạn có thể sử dụng một trong số IO modules đã được cài đặt đi kèm với Perl. Điều đó sẽ giúp bạn tiết kiệm rất nhiều rắc rối vì các mô đun cần thiết là một phần của gói hiện có của Perl.

0

Mặc dù "sự cố" của Cygwin, tôi thường xuyên sử dụng nó bất cứ khi nào tôi sử dụng Windows. Tôi muốn giới thiệu đầu tiên cài đặt một cài đặt riêng biệt của Perl sử dụng perlbrew để bạn sẽ không can thiệp với bản sao của Perl Cygwin trong trường hợp một cái gì đó xấu xảy ra kể từ khi Cygwin không thực thi chính sách người dùng root.Trong vỏ Cygwin, nhập

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

Điều này sẽ đi qua cài đặt cho perlbrew và thiết lập nó trong một trong các đường dẫn thực thi của bạn. Tiếp theo, gõ

perlbrew init 
perlbrew install --force stable 
perlbrew switch stable 

Đợi một chút trong khi Perl bạc hà được biên dịch. Vì lý do không rõ, Perl chỉ có thể vượt qua 99,23% các thử nghiệm mô-đun lõi trên Cygwin (ít nhất là trên máy của tôi), do đó cờ --force). Kinh nghiệm của tôi là nó hầu như có liên quan đến việc xử lý các tập tin thiết bị, như cổng và đường ống. Tôi không biết những người đang cố gắng giải quyết vấn đề vì nó có vẻ giống như một vấn đề Cygwin. Mặc dù nó đã không trình bày nhiều vấn đề đối với tôi với các nhiệm vụ lập trình web và hệ thống chung. Các thói quen kiểm tra mô-đun sẽ thất bại nếu có bất kỳ vấn đề tồn tại vì vậy tôi không fretting trên nó.

Bước tiếp theo là cài đặt cpanm (cpanminus), loại

perlbrew install-cpanm 

Từ giờ trở đi, để cài đặt bất kỳ thư viện từ CPAN, chỉ cần gõ

cpanm [library::name1] [library::name2] 

cpanm làm cho nó tầm thường để cài đặt bất kỳ Mô-đun Perl. Bạn thậm chí có thể cài đặt từ thư mục cục bộ của bạn thay vì CPAN.

3

Thấy rằng một số thông tin ở đây hơi lỗi thời và quá phức tạp, tôi muốn đề xuất những điều sau đây. Có một vài trình quản lý gói Perl khác nhau đang được sử dụng. tất cả chúng được cài đặt với cpan (mà đã là một phần của quá trình cài đặt Cygwin Perl), như thế này:

# Install ppm (outdated) 
cpan PPM 

# Install cpanp (still used) 
cpan CPANPLUS 

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

Sau đó, bạn có thể cài đặt bất kỳ gói Perl mà bạn thích, ví dụ như trong OP, sử dụng cpanm:

cpanm Net::TCP::Server 

Đôi khi (như đã nói ở trên) Cygwin có thể không thực hiện được một số thử nghiệm nhất định. Ví dụ: khi sử dụng IPv6 trên máy chỉ được định cấu hình bằng IPv4 hoặc khi tường lửa của cửa sổ chặn một số kiểm tra, v.v. Để cố gắng cài đặt, hãy thử sử dụng cờ lực; -f.

cpanm -f Net::TCP::Server 
Các vấn đề liên quan