Chủ Nhật, 5 tháng 2, 2012

Cài đặt module Perl trong Linux không cần quyền root

Trên thực tế, việc cài đặt các module Perl không phải quá phức tạp, nhưng nếu không có quyền truy cập root thì quá trình này sẽ trở nên phức tạp hơn nhiều. Chúng ta nhiều khi sẽ phải đối mặt với tình huống này khi không có quyền thao tác trên thư mục các module Perl được cài đặt... Trong bài viết dưới đây sẽ  tìm hiểu về cách cài module Perl không cần tới mức phân quyền root hoặc super user.
Giả sử rằng các bạn đã cài đặt Perl trên hệ thống và sử dụng những thư mục sau để cài module Perl:
/home/perl_modules/bin
/home/perl_modules/man
/home/perl_modules/man/man1
/home/perl_modules/lib
Các bạn có thể tạo những thư mục trên (bin, man, man/man3 và lib) ở bất kỳ vị trí nào, trong bài thử nghiệm này chúng tôi sẽ dùng những đường dẫn trên để cấu hình và thiết lập Perl (các bạn cần lưu ý và thay thế với hệ thống trong thực tế).
Tiếp theo, chúng ta sẽ phải khởi tạo một số biến Perl trên local, được dùng để “thông báo” về vị trí cài đặt module Perl. Để đảm bảo tính ổn định, các bạn nên khai báo tất cả các biến trong 1 file duy nhất và sau đó sử dụng file này để cài đặt Perl. Trước tiên là file perl_local_config trong thư mục /home:
touch perl_local_config
Chỉnh sửa file để tạo biến cấu hình:
PREFIX=/home/perl_modules \
INSTALLSCRIPT=/home/perl_modules/bin \
INSTALLBIN=/home/perl_modules/bin \
INSTALLMAN1DIR=/home/perl_modules/man1 \
INSTALLSITELIB=/home/perl_modules/lib
Tải module Perl từ CPAN, giải nén và mở thư mục bên trong. Sử dụng cú pháp sau để cài đặt module Perl:
perl Makefile.PL
make
make test
make install (nếu tất cả lệnh test thành công)
Nếu không có quyền truy cập root thì file Makefile.PL sẽ hiển thị lỗi, và đây là lúc phải sử dụng file cấu hình đã được khởi tạo ở bước trên. Gõ lệnh:
 perl Makefile.PL `cat /home/perl_local_config`
Nếu các module Perl này phụ thuộc lẫn nhau thì câu lệnh trên sẽ tạo ra lỗi, trong trường hợp đó thì các bạn cần tải và cài đặt các gói module dependent – phụ thuộc tương ứng. Kiểm tra hệ thống bằng lệnh:
make
make test
Khi đã thành công, tiếp tục gõ lệnh:
make install
Tuy nhiên, trong khi triển khai các module Perl có thể bạn sẽ gặp phải lỗi như sau:
Can't locate Locale/Recode.pm in @INC (@INC contains: XXXXX......XXXXX) at /home/bin/your_perl_module line XX.
Điều này có nghĩa rằng Perl đang tìm kiếm module trong thư mục lib và không phải là thư mục đã cài đặt trước đó. Để khắc phục, các bạn hãy gán đường dẫn của thư mục lib trên hệ thống local đã được tạo trước đó (trong ví dụ này là /home/perl_modules/lib) và đường dẫn chính như sau:
export PERL5LIB=/home/perl_modules/lib/perl5/:/home/perl_modules/lib/perl5/site_perl:
Và mọi vấn đề nảy sinh bên trên sẽ được giải quyết, chúng ta có thể tiếp tục quá trình cài đặt module Perl như bình thường. Chúc các bạn thành công!

(MakeTechEasier)

Không có nhận xét nào:

Đăng nhận xét

BACK TO TOP