2010-01-09 58 views

回答

9

/usr/local樹被保護。使用sudo在那裏安裝軟件是非常正常的。

安裝到單獨的庫位置是一個常見問題。見"How do I keep my own module/library directory?"在第8

重點摘錄:

您可以在CPAN.pm配置時使用CPAN.pm shell設置此所以模塊在你的私人圖書館目錄自動安裝:

% cpan 
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl 
cpan> o conf commit 

對於基於Build.PL的分發,請使用--install_base選項:

perl Build.PL --install_base /mydir/perl 

您可以配置CPAN.pm自動使用這個選項太:

% cpan 
cpan> o conf mbuild_arg "--install_base /mydir/perl" 
cpan> o conf commit 
+1

我認爲他已經這樣做了。常見問題解答中的建議對此不足。有一個mbuild_install_build_command和一個make_install_make_command選項,您可以在其中將sudo設置爲在安裝步驟中使用的命令。 – 2010-01-09 10:04:42

11

如果真的困擾你使用sudo,您可以使用local::lib和你的主目錄中安裝模塊 - 在這裏你不需要超級用戶權限。

這就是說,它不應該打擾你使用sudo。它不一定是錯的。作爲Gbacon說,你需要它,如果你想因爲/usr/local所有用戶共享的系統上/usr/local安裝(因此它的權限反映):

 
    telemachus ~ $ ls -ld /usr/local/ 
    drwxr-xr-x 17 root wheel 578 Jan 8 20:00 /usr/local/ 
+1

local :: lib的問題是在同一時間維護不同的perls。如果您想按照我的建議完全隔離安裝,則不希望將不同perls的模塊安裝在同一目錄中。 – 2010-01-09 10:11:10

9

在/ usr /本地目錄不應該由普通用戶寫入,但Unix設置有許多功能來處理這個問題。

在我的建議下,我建議設置/usr/local/perls。您可以爲該目錄提供您喜歡的任何權限。不要將任何權限應用於超出您需要的更多目錄。

我建議設置一個perl組,將自己添加到該組中,並使Perl庫目錄組成爲可寫。安裝完成後,您不必sudo,因爲您擁有組權限。

除此之外,您可以調整您的CPAN.pm配置以在安裝階段使用sudo。查閱文檔中的make_install_make_commandmbuild_install_build_command命令。只需搜索「sudo」,就可以找到它們。

祝你好運:)

6

在你CPAN殼,將其配置爲運行在須藤makebuild步驟:

o conf make_install_make_command 'sudo make' 
o conf mbuild_install_build_command 'sudo ./Build' 
o conf commit 
quit 

(我發現這些here - 我不是CPAN大師)