Sự khác biệt giữa các lệnh cpan
và cpanm
là gì?Sự khác nhau giữa cpan và cpanm là gì?
Cả hai dường như đều cài đặt các mô-đun perl
, vậy sự khác biệt là gì?
Sự khác biệt giữa các lệnh cpan
và cpanm
là gì?Sự khác nhau giữa cpan và cpanm là gì?
Cả hai dường như đều cài đặt các mô-đun perl
, vậy sự khác biệt là gì?
cpan
vỏ CPAN đã được xuất xưởng với Perl kể từ khoảng năm 1997. Khi bạn chạy nó lần đầu tiên nó hỏi một loạt câu hỏi và lưu câu trả lời trong tệp cấu hình. Sau đó, bạn có thể cài đặt mô-đun bằng cách chạy:
cpan -i Module::Name
Shell cung cấp các lệnh khác để tìm kiếm CPAN và tìm trong tệp phân phối.
Dự án tạo vỏ CPAN mới hơn, tốt hơn và nổi bật hơn được gọi là CPANPLUS (cpanp
từ dòng lệnh) được bắt đầu bằng Jos Boumans, nhưng nó chưa bao giờ hoàn thành đến mức tầm nhìn ban đầu đã được nhận ra.
Trong khi đó MIYAGAWA quyết định rằng cpanp
đã cố gắng để làm quá nhiều và những gì thế giới thực sự cần là một cái vỏ đơn giản đó đã ít và câu hỏi ít hơn (lý tưởng không có gì cả). Ông đã tạo ra App::cpanminus cung cấp lệnh cpanm
và thực hiện chính xác những gì ông dự định. Bạn có thể sử dụng nó để cài đặt một module (và tất cả phụ thuộc của mô-đun) với một lệnh như:
cpanm Module::Name
Sự khác biệt chính giữa hai là nếu bạn có Perl bạn nên đã có lệnh cpan
. Trong khi bạn sẽ không có cpanm
trừ khi/cho đến khi bạn cài đặt nó.
Hầu hết người dùng Perl hiện đại thích cpanm
vì tính đơn giản và chủ yếu, ngắn gọn của đầu ra.
Sử dụng cpan
có thể dẫn đến hàng trăm dòng đầu ra vì nó hiển thị cho bạn mọi thứ đang thực hiện: tải xuống, kiểm tra, chạy trình cài đặt, phân tích cú pháp, tải, danh sách tiếp tục. Điều tương tự cũng áp dụng cho mọi phụ thuộc.
cpanm
mặt khác cho bạn biết nó đang làm gì theo cách ngắn gọn hơn và tổng quát hơn, đó là: Tìm nạp, Định cấu hình, Xây dựng và thử nghiệm, Xong.
Vì vậy, sự khác biệt chính trong sử dụng là cpanm
ngăn chặn rất nhiều thông tin không liên quan (thường). Đôi khi khi mô-đun bị lỗi, bạn có thể muốn biết thêm thông tin. Có cờ -v|--verbose
về cơ bản hiển thị cho bạn mọi thứ cpan
.
Ngoài ra, một số mô-đun yêu cầu nhập của người dùng có thể bị 'treo' khi bạn cố cài đặt chúng. Đó là bởi vì đầu ra yêu cầu bạn gõ một cái gì đó bị chặn lại. Bạn có thể sử dụng các cờ --interactive
(hoặc --verbose
) để khắc phục điều đó.
Để so sánh đầu ra, hãy xem trang trình bày 35-39 here hoặc trang trình bày 37-41 here. (Đây là từ cùng một bài thuyết trình. Tôi chỉ sao chép các liên kết trong trường hợp một liên kết tắt.)
* "Hầu hết người dùng perl hiện đại thích cpanm vì nó đơn giản và chủ yếu là ngắn gọn đầu ra." trích dẫn và là một phần không cần thiết của câu trả lời. Bạn rõ ràng là một fan 'cpanm' mà không nói điều đó, và không thể tin tưởng để đưa ra một tài khoản thực tế. * "một cách ngắn gọn hơn và chung chung" * chắc chắn nó không thể là cả hai? – Borodin
"Chung" như được xác định bằng cách '_considering hoặc chỉ bao gồm các tính năng hoặc yếu tố chính của something_'. Chỉ bằng cách chỉ ra các thành phần chính của quá trình cài đặt mô-đun, đầu ra từ 'cpanm' có nhiều chi tiết hơn so với' cpan'. – Joshua
Vậy cái nào được sử dụng để cài đặt mô-đun? Là 'cpanm' tốt hơn bởi vì nó là mới hơn? – CJ7
Sử dụng bao giờ bạn thích - hoặc là tốt. Tôi sẽ sử dụng 'cpan -i App :: cpanminus' để cài đặt cpanm và sau đó sử dụng' cpanm'.Tôi nghĩ rằng nó tốt hơn vì nó đơn giản hơn (chắc chắn không chỉ vì nó mới hơn). –
@ CJ7, Không thực sự cài đặt bất cứ thứ gì. Chúng thực thi trình cài đặt có trong bản phân phối để cài đặt. Như vậy, sự khác biệt sẽ chủ yếu là mỹ phẩm. Tôi không thấy điểm nào không thể cài đặt 'cpanm' chỉ để tránh nhấn Enter khi lần đầu tiên' cpan' được chạy – ikegami