Zachowaj szczególną ostrożność w kwestii bezpieczeństwa: to, co jest potrzebne, aby moduły nie zostały zmodyfikowane, musi zostać bezpiecznie pobrane z zaufanej strony. Zobacz moją odpowiedź na temat korzystania z cpan.
vinc17
Odpowiedzi:
226
W systemie Unix :
zwykle zaczynasz cpan w swojej powłoce:
# cpan
i wpisz
install Chocolate::Belgian
lub w krótkiej formie:
cpan Chocolate::Belgian
W systemie Windows :
Jeśli używasz ActivePerl w systemie Windows, PPM (Perl Package Manager) ma wiele takich samych funkcji jak CPAN.pm.
Skrócona forma to po prostu „cpan Chocolate :: Belgian” z wiersza poleceń :)
brian d foy
3
IIRC najnowszy ActivePerl nie ma już ppm wiersza poleceń, teraz otwiera fantazyjny GUI.
Kev
6
Po prostu „ppm” otwiera GUI, ale po poleceniach pozostaje w wierszu poleceń. Tak więc „pomoc ppm”, „instalacja ppm ...” itd.
Bill Ruppert,
Zauważ, że ppm używa myślników dla separatora ścieżki modułu, a nie zwykłych podwójnych dwukropków. (Być może dlatego, że dwukropki oznaczają dyski w dos?). To mnie kilka razy;)
Matthew Lock,
3
@MatthewLock: ppmużywa łączników, -ponieważ określasz dystrybucję , którą chcesz zainstalować, co jest o wiele bardziej uczciwe. Na przykład, jeśli użyjesz cpando zainstalowania LWP, LWP::Simplealbo LWP::UserAgentbędzie zainstalować dystrybucję libwww-perldla Ciebie. Większość dystrybucji zawiera pojedynczy moduł o równoważnej nazwie, ale istnieje kilka takich wyjątków
Jest świetny do instalowania różnych rzeczy. Nie zapewnia żadnej bardziej złożonej funkcjonalności CPAN lub CPANPLUS, więc jest łatwy w użyciu, pod warunkiem, że wiesz, który moduł chcesz zainstalować. Jeśli nie masz jeszcze cpanminus, po prostu wpisz:
# cpan App::cpanminus
zainstalować.
Możliwe jest również zainstalowanie go bez użycia cpan. Podstawowa procedura ładowania początkowego to
Korzystanie cpanz instalacji App::cpanminusjest trochę dziwne. Normalne instrukcje instalacji obejmują procedurę ładowania, pobierając jej część z cpanmin.us i wykorzystując ją do zainstalowania reszty. Pozwala to uniknąć konfiguracji cpani utworzenia (potem) bezużytecznego .cpankatalogu.
Chas. Owens,
Na Ubuntu możesz po prostu zainstalować cpanminusz terminala. Uważam, że cpanmlepiej niż cpandlatego, że nie wyświetla dzienników błędów na ekranie, a raczej przechowuje je w tymczasowych plikach dziennika i podaje ścieżkę w przypadku błędów.
user13107,
Podczas próby wykonania polecenia pojawia się ten błąd: Nie można zlokalizować strict.pm w @INC (może być konieczne zainstalowanie ścisłego modułu) (@INC zawiera: / etc / perl
IgorGanapolsky 30.01.2017
29
Zwracam uwagę, że niektórzy sugerują jeden bieg cpan pod sudo. Kiedyś było to konieczne do zainstalowania w katalogu systemowym, ale nowoczesne wersje powłoki CPAN pozwalają ci skonfigurować ją tak, aby używała sudo tylko do instalacji. Jest to o wiele bezpieczniejsze, ponieważ oznacza, że testy nie działają jako root.
Jeśli masz starą powłokę CPAN, po prostu zainstaluj nowy cpan („zainstaluj CPAN”), a po ponownym załadowaniu powłoki powinien wyświetlić monit o skonfigurowanie tych nowych dyrektyw.
W dzisiejszych czasach, kiedy jestem w systemie ze starym CPAN, pierwszą rzeczą, którą robię, jest aktualizacja powłoki i skonfigurowanie jej w taki sposób, aby mógł wykonywać większość moich operacji cpan jako normalny użytkownik.
Ponadto zdecydowanie sugeruję, aby użytkownicy Windows zbadali truskawkowego Perla . Jest to wersja Perla dostarczana ze wstępnie skonfigurowaną powłoką CPAN oraz kompilatorem. Zawiera także niektóre trudne do skompilowania moduły Perla z ich zewnętrznymi zależnościami biblioteki C, w szczególności XML :: Parser. Oznacza to, że możesz robić to samo, co każdy inny użytkownik Perla, jeśli chodzi o instalowanie modułów, a rzeczy często „po prostu działają”.
@Lao Tzu: nie, ponieważ CPAN jest modułem podstawowym Perla i nie jest dostępny jako osobny pakiet DEB. Myślę, że w większości sytuacji korzystanie z niego jest jeszcze lepsze, korzystanie z App::cpanminusniego jest tak przyjemne. Philip Potter sugeruje to w swojej odpowiedzi tutaj i możesz spróbować tego Chas. Odpowiedź Owensa .
wk
25
Jeśli korzystasz z systemu Ubuntu i chcesz zainstalować wstępnie spakowany moduł perla (na przykład geo :: ipfree), spróbuj tego:
$ apt-cache search perl geo :: ipfree
libgeo-ipfree-perl - Wyszukaj kraj adresu IP moduł Perl
$ sudo apt-get install libgeo-ipfree-perl
Kilka osób wspomniało o narzędziu cpan, ale to coś więcej niż uruchomienie powłoki. Po prostu daj mu moduły, które chcesz zainstalować i pozwól mu działać.
$prompt> cpan Foo::Bar
Jeśli nie podasz żadnych argumentów, uruchamia powłokę CPAN.pm. Działa to na systemach Unix, Mac i powinno być w porządku na Windowsie (szczególnie Strawberry Perl).
Jest także kilka innych rzeczy, które możesz zrobić za pomocą narzędzia cpan. Oto podsumowanie obecnych funkcji (które mogą być nowsze niż te, które są dostarczane z CPAN.pm i perl):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Otto zasugerował . Działa to również dla Debiana, a także dla każdej innej pochodnej Debiana. Brakujący element jest tym, co należy zrobić, gdy wyszukiwanie apt-cache nie znajdzie czegoś.
To da ci pakiet deb, który możesz zainstalować, aby uzyskać Some :: Random :: Module. Jedną z dużych zalet jest to, że strony podręcznika i przykładowe skrypty oprócz samego modułu zostaną umieszczone w wybranej lokalizacji dystrybucji. Jeśli dystrybucja kiedykolwiek wyjdzie z oficjalnym pakietem dla nowszej wersji Some :: Random :: Module, zostanie ona automatycznie zainstalowana po apt-get upgrade.
Heh, to urocze. Użyj CPAN.pm, aby zastąpić się CPANPLUS. :)
brian d foy,
5
Wiele razy zdarza się, że polecenie instalacji cpan kończy się niepowodzeniem i pojawia się komunikat
„make test zwrócił zły status, nie można zainstalować bez użycia siły”
Niestety daje to: Nie można zlokalizować CPAN.pm w @INC (może być konieczne zainstalowanie modułu CPAN) (@INC zawiera: / etc / perl
IgorGanapolsky 30.01.2017
4
Na Ubuntu większość modułów Perla jest już spakowanych, więc instalacja jest znacznie szybsza niż w większości innych systemów, które muszą się kompilować.
Aby zainstalować Foo::Barna przykład po poleceniu polecenia, zwykle wystarczy:
sudo apt-get install libfoo-bar-perl
Niestety nie wszystkie moduły są zgodne z tą konwencją nazewnictwa.
Możesz także powiedzieć „$ cpan Foo :: Bar”, aby zainstalować bezpośrednio z wiersza poleceń. Nie jest wymagana żadna wymyślna powłoka jednowarstwowa ani CPAN. :)
brian d foy
3
W Fedorze możesz użyć
# yum install foo
tak długo, jak Fedora ma istniejący pakiet dla modułu.
Na Fedora Linuxlub Enterprise Linux, yumrównież utworów perl zależności bibliotecznych. Tak więc, jeśli moduł perla jest dostępny, a niektóre pakiety RPM eksportują tę zależność, zainstaluje odpowiedni pakiet dla Ciebie.
yum install 'perl(Chocolate::Belgian)'
(najprawdopodobniej pakiet perlowo-czekoladowo-belgijski, a nawet pakiet ChocolateFactory)
Jeśli chcesz umieścić nowy moduł w niestandardowej lokalizacji, w której nie ma skonfigurowanej powłoki cpan, być może przydatne będą następujące elementy.
#wget <URL to the module.tgz>##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
Wiele odpowiedzi wspomina o użyciu cpannarzędzia (które używa CPAN.pm) bez słowa na temat bezpieczeństwa. Domyślnie CPANkonfiguruje się 2.27 i wcześniejsze wersjeurllist użycie adresu URL http (mianowicie http://www.cpan.org/ ), który pozwala na ataki MITM, a zatem jest niepewny. Jest to wykorzystywane do pobierania CHECKSUMSplików, dlatego należy zmienić go na bezpieczny adres URL (np. Https://www.cpan.org/ ).
Po uruchomieniu cpan i zaakceptowaniu domyślnej konfiguracji należy zmodyfikować wygenerowany MyConfig.pmplik (wyświetlana jest pełna ścieżka) w następujący sposób. Zastąpić
'urllist'=>[q[http://www.cpan.org/]],
przez
'urllist'=>[q[https://www.cpan.org/]],
Uwaga: https nie jest wystarczający; potrzebujesz także strony internetowej, której możesz zaufać. Bądź więc ostrożny, jeśli chcesz wybrać dowolne lustro.
Następnie możesz użyć cpan w zwykły sposób.
Mój raport o błędach na rt.cpan.org dotyczący niepewnego adresu URL.
@DaveEveritt Przekierowanie z http na https jest przydatne tylko dla prywatności, np. Przeciwko komuś, kto może patrzeć tylko na dane przesyłane w sieci. Ale jeśli atakujący kontroluje sieć (np. Publiczny hotspot Wi-Fi lub część niechronionej sieci lokalnej), atak man-in-the-middle może być możliwy, a atakujący użyje własnego serwera (oczywiście nie https://www.cpan.org/).
vinc17
1
W systemie Windows z dystrybucją Perl ActiveState użyj polecenia ppm .
Wygląda na to, że masz już swoją odpowiedź, ale pomyślałem, że wślizgnę się. To właśnie robię w niektórych skryptach na Ubuntu (lub serwerze Debiana)
#!/usr/bin/perluse warnings;use strict;#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'}='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';#Fill this with the perl modules required for your projectmy@perl= qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTimeConfig::TinyProc::ProcessTable);
chomp(my $curl =`which curl`);if(!$curl){ system('apt-get install curl -y > /dev/null');}
chomp(my $cpanm = system('/bin/bash','-c','which cpanm &>/dev/null'));#installs cpanm if missingif($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus');}#loops through required modules and installs them if missingforeachmy $x (@perl){eval"use $x";if($@){
system("cpanm $x");eval"use $x";}}
Działa to dla mnie dobrze, może jest tu coś, czego możesz użyć.
cpan
.Odpowiedzi:
W systemie Unix :
zwykle zaczynasz cpan w swojej powłoce:
# cpan
i wpisz
install Chocolate::Belgian
lub w krótkiej formie:
cpan Chocolate::Belgian
W systemie Windows :
Przykład:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
zobacz Jak zainstalować moduły Perla? w FAQ CPAN
Wiele dystrybucji dostarcza wiele modułów perla jako pakiety.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Należy zawsze wolą je jak korzystać z automatycznych (Security) aktualizacje i łatwość usuwania . Może to być dość trudne z samym narzędziem cpan .
Dla Gentoo jest ładne narzędzie o nazwie g-cpan, które buduje / instaluje moduł z CPAN i tworzy dla ciebie pakiet Gentoo ( ebuild ).
źródło
ppm
używa łączników,-
ponieważ określasz dystrybucję , którą chcesz zainstalować, co jest o wiele bardziej uczciwe. Na przykład, jeśli użyjeszcpan
do zainstalowaniaLWP
,LWP::Simple
alboLWP::UserAgent
będzie zainstalować dystrybucjęlibwww-perl
dla Ciebie. Większość dystrybucji zawiera pojedynczy moduł o równoważnej nazwie, ale istnieje kilka takich wyjątkówWypróbuj aplikację :: cpanminus :
Jest świetny do instalowania różnych rzeczy. Nie zapewnia żadnej bardziej złożonej funkcjonalności CPAN lub CPANPLUS, więc jest łatwy w użyciu, pod warunkiem, że wiesz, który moduł chcesz zainstalować. Jeśli nie masz jeszcze cpanminus, po prostu wpisz:
zainstalować.
Możliwe jest również zainstalowanie go bez użycia cpan. Podstawowa procedura ładowania początkowego to
Aby uzyskać więcej informacji, przejdź do strony App :: cpanminus i zapoznaj się z sekcją dotyczącą instalacji.
źródło
cpan
z instalacjiApp::cpanminus
jest trochę dziwne. Normalne instrukcje instalacji obejmują procedurę ładowania, pobierając jej część z cpanmin.us i wykorzystując ją do zainstalowania reszty. Pozwala to uniknąć konfiguracjicpan
i utworzenia (potem) bezużytecznego.cpan
katalogu.cpanminus
z terminala. Uważam, żecpanm
lepiej niżcpan
dlatego, że nie wyświetla dzienników błędów na ekranie, a raczej przechowuje je w tymczasowych plikach dziennika i podaje ścieżkę w przypadku błędów.Zwracam uwagę, że niektórzy sugerują jeden bieg cpan pod sudo. Kiedyś było to konieczne do zainstalowania w katalogu systemowym, ale nowoczesne wersje powłoki CPAN pozwalają ci skonfigurować ją tak, aby używała sudo tylko do instalacji. Jest to o wiele bezpieczniejsze, ponieważ oznacza, że testy nie działają jako root.
Jeśli masz starą powłokę CPAN, po prostu zainstaluj nowy cpan („zainstaluj CPAN”), a po ponownym załadowaniu powłoki powinien wyświetlić monit o skonfigurowanie tych nowych dyrektyw.
W dzisiejszych czasach, kiedy jestem w systemie ze starym CPAN, pierwszą rzeczą, którą robię, jest aktualizacja powłoki i skonfigurowanie jej w taki sposób, aby mógł wykonywać większość moich operacji cpan jako normalny użytkownik.
Ponadto zdecydowanie sugeruję, aby użytkownicy Windows zbadali truskawkowego Perla . Jest to wersja Perla dostarczana ze wstępnie skonfigurowaną powłoką CPAN oraz kompilatorem. Zawiera także niektóre trudne do skompilowania moduły Perla z ich zewnętrznymi zależnościami biblioteki C, w szczególności XML :: Parser. Oznacza to, że możesz robić to samo, co każdy inny użytkownik Perla, jeśli chodzi o instalowanie modułów, a rzeczy często „po prostu działają”.
źródło
install CPAN
Skąd?$sudo apt-get install cpan
?App::cpanminus
niego jest tak przyjemne. Philip Potter sugeruje to w swojej odpowiedzi tutaj i możesz spróbować tego Chas. Odpowiedź Owensa .Jeśli korzystasz z systemu Ubuntu i chcesz zainstalować wstępnie spakowany moduł perla (na przykład geo :: ipfree), spróbuj tego:
źródło
Kilka osób wspomniało o narzędziu cpan, ale to coś więcej niż uruchomienie powłoki. Po prostu daj mu moduły, które chcesz zainstalować i pozwól mu działać.
Jeśli nie podasz żadnych argumentów, uruchamia powłokę CPAN.pm. Działa to na systemach Unix, Mac i powinno być w porządku na Windowsie (szczególnie Strawberry Perl).
Jest także kilka innych rzeczy, które możesz zrobić za pomocą narzędzia cpan. Oto podsumowanie obecnych funkcji (które mogą być nowsze niż te, które są dostarczane z CPAN.pm i perl):
źródło
sudo perl -MCPAN -e 'install Foo'
źródło
Zobacz także Tak, nawet ty możesz używać CPAN . Pokazuje, jak można korzystać z CPAN bez dostępu do konta root lub sudo.
źródło
Otto zasugerował . Działa to również dla Debiana, a także dla każdej innej pochodnej Debiana. Brakujący element jest tym, co należy zrobić, gdy wyszukiwanie apt-cache nie znajdzie czegoś.
Następnie, gdy masz losowy moduł, który chcesz zainstalować:
To da ci pakiet deb, który możesz zainstalować, aby uzyskać Some :: Random :: Module. Jedną z dużych zalet jest to, że strony podręcznika i przykładowe skrypty oprócz samego modułu zostaną umieszczone w wybranej lokalizacji dystrybucji. Jeśli dystrybucja kiedykolwiek wyjdzie z oficjalnym pakietem dla nowszej wersji Some :: Random :: Module, zostanie ona automatycznie zainstalowana po apt-get upgrade.
źródło
Już odpowiedziałem i zaakceptował odpowiedź - ale w każdym razie:
IMHO najprostszym sposobem instalowania modułów CPAN (na systemach uniksowych i nie mam pojęcia o cudach) jest:
Powyższe dotyczy instalacji „instalatora modułów CPAN o zerowej konfiguracji”
cpanm
. (Instalacja może potrwać kilka minut - nie przerywaj procesu)a po - po prostu:
źródło
Wiele rekomendacji dla
CPAN.pm
, co jest świetne, ale jeśli używasz,Perl 5.10
masz również dostęp do,CPANPLUS.pm
który jest jak,CPAN.pm
ale lepszy.I oczywiście jest dostępny
CPAN
dla osób, które nadal używają starszych wersji Perla. Dlaczego nie spróbować:źródło
Wiele razy zdarza się, że polecenie instalacji cpan kończy się niepowodzeniem i pojawia się komunikat „make test zwrócił zły status, nie można zainstalować bez użycia siły”
W takim przypadku sposób instalacji modułu to:
źródło
Na Ubuntu większość modułów Perla jest już spakowanych, więc instalacja jest znacznie szybsza niż w większości innych systemów, które muszą się kompilować.
Aby zainstalować
Foo::Bar
na przykład po poleceniu polecenia, zwykle wystarczy:Niestety nie wszystkie moduły są zgodne z tą konwencją nazewnictwa.
źródło
Nawet to powinno działać:
źródło
Użyj polecenia cpan jako
cpan Modulename
Aby zainstalować zależności automatycznie, wykonaj poniższe czynności
Wolę App :: cpanminus , automatycznie instaluje zależności. Po prostu zrób
źródło
2 sposoby, które znam:
KORZYSTANIE Z PPM:
Z Windows (ActivePerl) korzystałem z ppm
z linii poleceń wpisz ppm. Po wyświetleniu monitu ppm ...
lub
aby uzyskać listę dostępnych modułów foo. Wpisz help dla wszystkich poleceń
KORZYSTANIE Z CPAN:
możesz również użyć CPAN w ten sposób ( * systemy nix ):
dostaniesz monit
na monit ...
wpisz h, aby uzyskać listę poleceń dla cpan
źródło
W Fedorze możesz użyć
tak długo, jak Fedora ma istniejący pakiet dla modułu.
źródło
Na
Fedora Linux
lubEnterprise Linux
,yum
również utworów perl zależności bibliotecznych. Tak więc, jeśli moduł perla jest dostępny, a niektóre pakiety RPM eksportują tę zależność, zainstaluje odpowiedni pakiet dla Ciebie.(najprawdopodobniej pakiet perlowo-czekoladowo-belgijski, a nawet pakiet ChocolateFactory)
źródło
Najłatwiej dla mnie jest to:
a) automatyczne wykrywanie / rozwiązywanie / instalacja zależności rekurencyjnej
b) jest onlinerem powłoki, dobrym dla skryptów instalacyjnych
źródło
Jeśli chcesz umieścić nowy moduł w niestandardowej lokalizacji, w której nie ma skonfigurowanej powłoki cpan, być może przydatne będą następujące elementy.
źródło
Czasami możesz użyć
yum search foo
do przeszukania względnego modułu perla, a następnie użyćyum install xxx
do instalacji.źródło
Bezpieczne rozwiązanie
Wiele odpowiedzi wspomina o użyciu
cpan
narzędzia (które używaCPAN.pm
) bez słowa na temat bezpieczeństwa. DomyślnieCPAN
konfiguruje się 2.27 i wcześniejsze wersjeurllist
użycie adresu URL http (mianowicie http://www.cpan.org/ ), który pozwala na ataki MITM, a zatem jest niepewny. Jest to wykorzystywane do pobieraniaCHECKSUMS
plików, dlatego należy zmienić go na bezpieczny adres URL (np. Https://www.cpan.org/ ).Po uruchomieniu cpan i zaakceptowaniu domyślnej konfiguracji należy zmodyfikować wygenerowany
MyConfig.pm
plik (wyświetlana jest pełna ścieżka) w następujący sposób. Zastąpićprzez
Uwaga: https nie jest wystarczający; potrzebujesz także strony internetowej, której możesz zaufać. Bądź więc ostrożny, jeśli chcesz wybrać dowolne lustro.
Następnie możesz użyć
cpan
w zwykły sposób.Mój raport o błędach na rt.cpan.org dotyczący niepewnego adresu URL.
źródło
https://www.cpan.org/
).W systemie Windows z dystrybucją Perl ActiveState użyj polecenia ppm .
źródło
Po prostu wykonanie
cpan Foo::Bar
na powłoce służyłoby temu celowi.źródło
Wygląda na to, że masz już swoją odpowiedź, ale pomyślałem, że wślizgnę się. To właśnie robię w niektórych skryptach na Ubuntu (lub serwerze Debiana)
Działa to dla mnie dobrze, może jest tu coś, czego możesz użyć.
źródło