Dường như hầu hết các trình cài đặt cho Perl đều tập trung vào việc cài đặt các mô-đun Perl, không phải ứng dụng. Những thứ như ExtUtils :: MakeMaker và Module :: Xây dựng rất thích hợp cho các mô-đun, nhưng yêu cầu một số công việc bổ sung cho Ứng dụng web.Hệ thống tốt nhất để cài đặt ứng dụng web Perl là gì?
Lý tưởng nhất là nó sẽ được tốt đẹp để có thể làm như sau sau khi kiểm tra ra nguồn gốc từ kho:
- Có phụ thuộc mất tích phát hiện
- Tải về và cài đặt phụ thuộc từ CPAN
- Chạy một lệnh để "Xây dựng" nguồn thành trạng thái cuối cùng (thực hiện bất kỳ phân tích cú pháp nguồn hoặc cấu hình nào cần thiết cho môi trường cục bộ).
- Chạy lệnh để cài đặt các tệp được xây dựng vào các vị trí thích hợp. Không chỉ các mô-đun perl, mà còn các thứ như tệp mẫu (.tt) và các tập lệnh CGI, JS và các tệp hình ảnh có thể truy cập được trên web.
- Đảm bảo các quyền thích hợp được đặt trên các tệp đã cài đặt (và ngữ cảnh SELinux nếu cần).
Hiện tại chúng tôi có một hệ thống dựa trên Mô-đun :: Xây dựng thực hiện hầu hết việc này. Công việc đã được thực hiện bởi đồng nghiệp của tôi, những người đang học cách sử dụng Module :: Build vào lúc đó và chúng tôi muốn một số lời khuyên về việc tổng quát hóa giải pháp của chúng tôi vì nó khá cụ thể cho ứng dụng ngay bây giờ. Đặc biệt, hệ thống của chúng tôi yêu cầu chúng tôi cài đặt các phụ thuộc bằng tay (mặc dù nó phát hiện chúng).
Có hệ thống cụ thể nào bạn đã sử dụng đã đặc biệt thành công không? Bạn có phải viết trình cài đặt dựa trên Mô-đun :: Xây dựng hoặc ExtUtils :: MakeMaker dành riêng cho ứng dụng của bạn hay là một cái gì đó tổng quát hơn có sẵn?
EDIT: Để trả lời câu hỏi brian của dưới đây:
- Chúng ta có thể đăng nhập vào các máy
- Chúng tôi không có quyền truy cập root vào máy
- Các máy đều (bề ngoài) giống hệt nhau xây dựng của RHEL5 với SELinux đã bật
- Hiện tại, những người cài đặt máy chỉ là những người lập trình từ nhóm của chúng tôi và nguồn của chúng tôi không có sẵn cho công chúng. Tuy nhiên, nó có thể hiểu được nguồn của chúng tôi cuối cùng có thể được cài đặt trên máy của người khác trong tổ chức của chúng tôi, được cài đặt bởi người lập trình hoặc hệ thống của họ.
- Chúng tôi cài đặt bằng cách kiểm tra từ kho lưu trữ, mặc dù chúng tôi muốn có tùy chọn sử dụng kho lưu trữ được phân phối (xem bên trên).