2013-01-23 20 views
5

Giống như nhiều người có trang web được lưu trữ trên máy chủ dùng chung, tôi không có quyền truy cập root và công ty lưu trữ sẽ không cài đặt mô-đun Perl theo yêu cầu của người dùng.Làm cách nào để cài đặt cpanm và local :: lib nếu tôi không thể ghi vào ~ /?

Thật không may, tôi cũng không có quyền ghi vào thư mục ~/, chỉ cho một số thư mục con nhất định (chẳng hạn như ~/cgi-bin/).

Tôi đã cố gắng giải pháp đề nghị here, thay đổi ~/perl5-~/cgi-bin/perl5 (mà tôi tạo ra), nhưng tôi tiếp tục nhận được lỗi này:

"Can't write to cpanm home '~/.cpanm': You should fix it with chown/chmod first."

Vấn đề là, như tôi đã nói, tôi không có quyền ghi vào ~/.

Có cách nào để yêu cầu trình cài đặt sử dụng ~/cgi-bin/.cpanm thay thế không? Tôi đã cố gắng tìm ra bằng cách tìm kiếm ở đây và các nơi khác trên internet, nhưng tôi bắt đầu đập đầu vào tường.

EDIT: Vì vậy, tôi đã cố gắng đề nghị bởi Steven dưới đây, sử dụng lệnh này:

HOME=$HOME/cgi-bin cpanm local::lib

Bây giờ, cpanm chạy thành công và cố gắng để cài đặt các module, nhưng có rất nhiều cảnh báo trong suốt quá trình cài đặt và cuối cùng thất bại (có lẽ là một cái gì đó vẫn đang cố gắng để viết vào một thư mục bị cấm ??).

Dưới đây là một số cảnh báo mẫu:

Warning: prerequisite CPAN 1.82 not found. We have 1.7601.

Warning: prerequisite ExtUtils::Install 1.43 not found. We have 1.32.

Warning: prerequisite ExtUtils::MakeMaker 6.42 not found. We have 6.17.

Warning: prerequisite Module::Build 0.36 not found.

Warning: You do not have permissions to install into /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi at /usr/lib/perl5/5.8.5/ExtUtils/Install.pm line 114.

mkdir /usr/lib/perl5/5.8.5/App: Permission denied at /usr/lib/perl5/5.8.5/ExtUtils/Install.pm line 176

make: *** [pure_perl_install] Error 255

+0

http://stackoverflow.com/questions/540640/how-can-i-install-a-cpan-module-into-a-local-directory – edem

+1

Câu hỏi đó có liên quan (mặc dù không chính xác giống nhau), nhưng Tôi chạy vào cùng một lỗi "cho phép từ chối" cho ~/.cpan hoặc ~/.cpanm, ngay cả khi tôi chỉ định một thư mục INSTALL_BASE khác. – WinnPh

+2

Làm cách nào để câu hỏi này bị đóng? Và ngay cả khi đó là lý do tại sao 'tắt chủ đề'? Câu hỏi này 'tắt chủ đề' như thế nào? Bạn nên giải thích trước khi nhấp vào đóng. –

Trả lời

1

~ chỉ là một cách viết tắt của truy cập vào biến môi trường $HOME, vì vậy bạn sẽ có thể làm điều gì đó như export HOME=$HOME/cgi-bin để di chuyển thư mục chính hiệu quả của bạn xuống vào một số thư mục bạn có quyền ghi cho. Điều này sẽ ảnh hưởng đến nhiều thứ, tuy nhiên, hãy cẩn thận.

+0

Vâng, điều đó nghe có vẻ khá nguy hiểm với tôi, tôi sẽ bằng cách nào đó vượt qua thư mục con này để cpanm thông qua dòng lệnh. Nhưng nó chắc chắn là một cái gì đó để xem xét như là một phương sách cuối cùng. – WinnPh

+2

Nếu bạn đặt tiền tố cho lệnh bằng HOME = $ HOME/cgi-bin ví dụ: HOME = $ HOME/cgi-bin cpanm ... thì nhà của bạn chỉ được đặt lại cho lệnh đó. – Steven