Come faccio ad aggiornare tutti i miei moduli CPAN alle loro ultime versioni?


136

Come faccio ad aggiornare tutti i miei moduli CPAN alle loro ultime versioni?

Risposte:


145

Un metodo alternativo all'utilizzo upgradedalla shell CPAN predefinita è usare cpanminuse cpan-outdated.

Sono così facili e agili da usare che quasi mai torno alla shell CPAN. Per aggiornare tutti i tuoi moduli in una volta sola, il comando è:

cpan-outdated -p | cpanm

Ti consiglio di installare cpanminuscome descrivono i documenti:

curl -L https://cpanmin.us | perl - App::cpanminus

E quindi installare cpan-outdatedinsieme a tutti gli altri moduli CPAN usando cpanm:

cpanm App::cpanoutdated

A proposito: se lo stai usando perlbrew, dovrai ripetere questo per ogni Perl che hai installato sotto di esso.

Puoi saperne di più cpanminuse cpan-outdatedsui repository Github qui:


4
perché usare tali strumenti extra mentre c'è una soluzione integrata (vedi seconda risposta)?
EAV

3
"perché usare tali strumenti extra" Pur non rientrando nell'ambito della domanda del PO, cpanimus risolve il problema del CPAN che richiede di premere Invio e / o digitare [y] es. Afaict non è possibile sopprimere in modo affidabile questo comportamento con CPAN vaniglia. Questo diventa importante non appena viene coinvolto qualsiasi tipo di server cron o CI e / o se ti piace essere in grado di avviare un aggiornamento con la sicurezza che non si bloccherà mentre sei fuori a prendere un caffè (che nella mia esperienza è spesso il caso con il CPAN alla vaniglia) Vedi anche questa risposta stackoverflow.com/questions/898782/…
Noah Sussman

[root @ portal-test bugzilla-4.4.4] # cpan-outdated -p | cpanm Impossibile trovare il metodo oggetto "nuovo" tramite il pacchetto "LWP :: UserAgent" alla riga 170 / usr / bin / cpan-obsoleta.
shorif2000,

3
Quelli sono vecchi (date del Perù dal 2006, LWP dal 2005). Idealmente hai bisogno di una versione più recente di entrambi. Se per qualche motivo non riesci a farlo, aggiornerei la versione LWP per versione fino a quando cpanm | cpan-obsoleto funzionerà. NB. IMPORTANTE - Se si utilizza il Perl installato CentOS, non utilizzare CPAN o CPANMINUS con questi! Non mescolare mai con i pacchetti del sistema operativo !! Invece usa Perlbrew per preparare il tuo perl (e quindi usa cpanminus ecc. All'interno di questo).
Draegtun,

1
Mi piacciono queste soluzioni perché puoi facilmente eseguire cpan-outdated -pprima per vedere cosa sta per fare prima di eseguire effettivamente gli aggiornamenti. Non è chiaro come fare una corsa a secco concpan upgrade
Stephen Ostermiller il

51

Un modo semplice per aggiornare tutti i pacchetti Perl (moduli CPAN) è il seguente:

cpan upgrade /(.*)/

cpan riconoscerà l'espressione regolare in questo modo e aggiornerà / aggiornerà tutti i pacchetti installati.


8
Va bene, questo non è così freddo come cpanminus, ma almeno non c'è bisogno di scaricare nulla per ottenere questo al lavoro.
David W.

13
Per coloro che hanno problemi con questo comando; Prova a eseguire la shell cpan tramite cpan, quindi esegui la upgrade /(.*)/shell cpan.
earthmeLon

33

Per Strawberry Perl, prova:

cpan -u

4
Anche per Perl regolare. Dalla pagina man:-u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
Chloe


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.