2010-01-09 11 views
10

Mam zainstalowaną Perl od źródła do katalogu/usr/local i dostosować odpowiednio moją ścieżkę, po brian d foy's suggestion here.Jak mogę uniknąć sudo-ing podczas instalowania modułów Perla z "cpan"?

jestem pewien, że jestem brakuje czegoś, ale teraz próbuję zainstalować rzeczy z „CPAN 'command i to się nie udaje, ponieważ nie może pisać do/usr/local. Muszę użyć sudo, co jest dla mnie złe. Czy rzeczy CPAN powinny przejść do innej lokalizacji? Czy używanie sudo jest normalne?

Odpowiedz

9

Drzewo /usr/local jest chronione. Używanie sudo do zainstalowania tam oprogramowania jest całkowicie normalne.

Instalowanie w oddzielnej lokalizacji biblioteki jest często zadawanym pytaniem. Zobacz "How do I keep my own module/library directory?" w sekcji 8.

Key fragment:

Można ustawić to w konfiguracji CPAN.pm więc moduły automatycznie zainstalować w swoim prywatnym katalogu biblioteki podczas korzystania z CPAN.pm powłoki:

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

W przypadku dystrybucji opartych na Build.PL użyj opcji --install_base:

perl Build.PL --install_base /mydir/perl 

można skonfigurować tak, aby automatycznie CPAN.pm skorzystać z tej opcji zbyt:

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

Myślę, że już to robi. Porada w FAQ jest do tego niewystarczająca. Istnieje opcja mbuild_install_build_command i make_install_make_command, w której można ustawić sudo jako polecenie do użycia w kroku instalacji. –

11

Jeśli naprawdę przeszkadza w użyciu sudo, można użyć local::lib i zainstalować moduły w katalogu domowym - gdzie nie trzeba uprawnienia superużytkownika.

To powiedziawszy, nie powinno ci to przeszkadzać używać sudo. Nie ma w tym nic złego. Jak mówi Gbacon, trzeba go jeśli chcesz zainstalować w /usr/local ponieważ /usr/local dzielone przez wszystkich użytkowników systemu (a więc jego uprawnienia odzwierciedlać):

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

Problem z local :: lib polega na utrzymaniu odrębnych perli w tym samym czasie. Jeśli chcesz całkowicie odizolować instalacje zgodnie z sugestią, nie chcesz instalować modułów dla różnych perls w tym samym katalogu. –

9

The /usr/local katalogu nie powinien być zapisywalny dla zwykłego użytkownika, ale konfiguracja Uniksa ma wiele funkcji do obsługi tego.

W mojej opinii zasugerowałem skonfigurowanie /usr/local/perls. Możesz dać temu katalogowi dowolne uprawnienia. Nie stosuj żadnych uprawnień do większej liczby katalogów niż potrzebujesz.

Sugeruję utworzenie grupy perl, dodanie się do tej grupy i utworzenie grupy katalogów biblioteki Perla do zapisu. Po skonfigurowaniu nie musisz się sudo, ponieważ masz uprawnienia grupowe.

Poza tym możesz dostosować konfigurację CPAN.pm do użycia sudo podczas faz instalacji. Sprawdź polecenia make_install_make_command i mbuild_install_build_command w dokumentacji. Po prostu wyszukaj "sudo", a znajdziesz je.

Powodzenia :)

6

W swojej skorupy CPAN, skonfigurować go uruchomić kroki make i build pod sudo:

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

(Znalazłem te here - Nie jestem guru CPAN .)

Powiązane problemy