Come posso annullare un'installazione accidentale di tutti i moduli Perl?


8

Stavo tentando di aggiornare i miei moduli Perl tramite CPAN, ma non ho fornito un nome regex / module per l'aggiornamento perl -MCPAN -e 'upgrade':; Posso solo supporre il peggio (che sembra essere supportato dall'output di perldoc perllocal), cioè tutti i moduli Perl di CPAN stanno installando.

Come posso annullare questo casino? Suppongo di poterlo rimuovere /usr/local/share/perl, ma quali sono le implicazioni di ciò?

Modifica: ho ancora il 95% di spazio libero sul mio disco rigido, quindi non è una grande preoccupazione. Non voglio un sacco di disordine inutile. Sto prendendo in considerazione rmquella directory, eseguendo dpkg --purge perle ripetendo il apt-getprocesso di installazione di CPAN. Ma è davvero necessario o posso semplicemente rimuovere i moduli non necessari da /usr/local/share/perl?


Alcune persone pensano che non sia davvero una buona idea eliminare direttamente i file di sistema (e le cartelle). Forse è meglio usare cose come apt-geto Synaptic in modo che il sistema esegua accuratamente la cancellazione e aggiorni i database necessari.

4
@ vasa1 I moduli Perl installati in CPAN non vengono tracciati in questo modo. La directory in cui risiedono i moduli probabilmente deve essere eliminata. Oppure è necessario eliminarli manualmente tramite CPAN ed è un cr * pshoot se obbediranno a una direttiva di disinstallazione o addirittura a un make uninstallcomando. Sfortunatamente è un sistema di gestione dei pacchetti completamente diverso. stackoverflow.com/questions/2626449/…
Kevin Bowen

@maggotbrain, grazie! Non lo sapevo. (L'unico Perl che uso per piccole cose viene fornito con il sistema operativo.)

Risposte:


5

Guardando questo un po 'più da vicino, non penso che sia necessario o debba eliminare qualsiasi directory o file sul proprio sistema.

L'esecuzione del comando perl -MCPAN -e 'upgrade'dalla riga di comando non installa moduli aggiuntivi sul sistema.

Tenterà solo di aggiornare i moduli installati, attraverso il sistema di gestione dei pacchetti CPAN e non tramite Synaptic .

Questo è simile all'esecuzione del comando 'r' e quindi dell'esecuzione del comando di aggiornamento al cpan[1]>prompt. Vedi qui .

CPAN e Synaptic sono due sistemi di gestione dei pacchetti separati e distinti.

Questo non installerà tutti i possibili moduli Perl da CPAN. Né modificherà il pacchetto di sistema esistente dB. Quindi, puoi sicuramente ripristinare questo in modo sicuro.

Tuttavia, questo è ancora potenzialmente rischioso se un'applicazione o il sistema dipende da una particolare versione di un modulo Perl.

Se hai interrotto il processo di aggiornamento, è probabile che tu abbia evitato di danneggiare il tuo sistema.

Opzioni di recupero:

Da una riga di comando, avviare cpaned eseguire il comando r per visualizzare l'elenco dei moduli installati e gli aggiornamenti disponibili. Ad esempio, ecco l'output abbreviato dal mio cpan:

cpan[7]> r

Package namespace         installed    latest  in CPAN file
App::Cpan                    1.5701      1.61  BDFOY/App-Cpan-1.61.tar.gz
DBD::mysql                    4.020     4.022  CAPTTOFU/DBD-mysql-4.022.tar.gz
DBI                           1.616     1.623  TIMB/DBI-1.623.tar.gz
DB_File                       1.821     1.827  PMQS/DB_File-1.827.tar.gz
Error                       0.17010   0.17019  SHLOMIF/Error-0.17019.tar.gz
Eval::Closure                  0.06      0.08  DOY/Eval-Closure-0.08.tar.gz
....

Prendi il Eval::Closuremodulo, per questo esempio. Supponiamo che tu abbia perl -MCPAN -e 'upgrade'completato il comando e che ora sia installata la versione 0.08.

Guardando Synaptic, in questo caso, mostrerà che l'ultima versione nel repository sarà ancora 0.06 (0.06-1, in particolare, nel mio caso).

È possibile tornare alla versione di sistema, eseguendo il comando seguente:

sudo apt-get install --reinstall libeval-closure-perl

Se hai installato manualmente dei moduli Perl e desideri ripristinarli a una versione precedente, dovrai scaricarli di nuovo (da source.cpan.org o altrove) e reinstallarli manualmente.

Riassumendo: l' aggiornamento dei moduli Perl all'interno di CPAN non dovrebbe influire sul repository del sistema.

Buona fortuna. Non fatevi prendere dal panico.


Risposta eccellente e completa! "Non farti prendere dal panico" è la frase chiave qui. Ho visto un sacco di output e letto sull'utilizzo degli argomenti per specificare il modulo, quindi sono passato alle conclusioni troppo rapidamente. Sono stato sorpreso di scoprire che ho usato a malapena spazio HD, ma ho comunque visto alcuni moduli che non riconoscevo (probabilmente a causa delle dipendenze). Buono a sapersi, questo non richiede lavoro per me!
paulrehkugler

0

Consiglierei di fare: apt-get remove <installed-packages> && apt-get autoremove(per rimuovere le dipendenze) && apt-get purge <installed-packages>(per rimuovere i file di configurazione rimanenti) quindi puoi rimuovere le cartelle che non ti servono, ma dovrebbe già essere fatto per te :)


2
L'OP ha fatto questo tramite CPAN. Un'eliminazione non è di aiuto poiché questi moduli non sono gestiti dal pacchetto.
Kevin Bowen
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.