Difference between revisions of "Downgrading packages (Italiano)"

From ArchWiki
Jump to: navigation, search
m (codeline -> ic)
m
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category:Package management (Italiano)]]
 
[[Category:Package management (Italiano)]]
{{i18n|Downgrading Packages}}
+
[[cs:Downgrading Packages]]
 +
[[de:Ältere_Paketversion_installieren_(Downgrade)]]
 +
[[en:Downgrading Packages]]
 +
[[es:Downgrading Packages]]
 +
[[fa:دانگرید]]
 +
[[fr:Downgrade]]
 +
[[ja:Downgrading Packages]]
 +
[[ru:Downgrading Packages]]
 +
[[sk:Downgrading Packages]]
 +
[[tr:Paket_sürümünü_düşürmek]]
 +
[[uk:Downgrading Packages]]
 +
[[zh-CN:Downgrading Packages]]
 +
{{Article summary start|Sommario}}
 +
{{Article summary text|Ripristinare versioni precedenti di pacchetti: perchè e come.}}
 +
{{Article summary heading|Wiki Correlati}}
 +
{{Article summary wiki|Arch Build System (Italiano)}}
 +
{{Article summary wiki|pacman (Italiano)}}
 +
{{Article summary text|[[LVM (Italiano)|LVM]] – come abilitare gli snapshots e come ripristinare il loro stato}}
 +
{{Article summary end}}
  
 
Questa guida vi mostrerà come effettuare il downgrade di un pacchetto ad una versione precedente. Il declassamento di un pacchetto non viene normalmente raccomandato ed è spesso necessario solo quando viene introdotto un bug nel pacchetto corrente.
 
Questa guida vi mostrerà come effettuare il downgrade di un pacchetto ad una versione precedente. Il declassamento di un pacchetto non viene normalmente raccomandato ed è spesso necessario solo quando viene introdotto un bug nel pacchetto corrente.
Line 18: Line 36:
 
== I dettagli ==
 
== I dettagli ==
  
Tuttavia, l'utente deve tenere a mente i seguenti punti. In primo luogo, vi sarà la necessità di considerare le dipendenze di ogni programma.  Le librerie necessarie, che così spesso cambiano con ogni versione, e la funzionalità dei file associati, che possono essere completamente diversi da quelli precedenti. La soluzione richiede anche la loro modifica, per le versioni precedenti.
+
Tuttavia, l'utente deve tenere a mente i seguenti punti:
  
In secondo luogo, si deve considerare se i file necessari sono stati rimossi dal sistema o se addirittura sono ancora disponibili da altre fonti. I repository del sistema rolling release di Arch Linux vengono automaticamente aggiornati, senza salvare le vecchie versioni. Vedere ulteriori informazioni su questo problema qui sotto.
+
* Considerare le dipendenze di ogni programma.  Le librerie necessarie, che così spesso cambiano con ogni versione, e la funzionalità dei file associati, che possono essere completamente diversi da quelli precedenti. La soluzione richiede anche la loro modifica, per le versioni precedenti.
  
In terzo luogo, si deve fare attenzione con le modifiche ai file di configurazione e script. Su questo punto, ci si baserà su pacman che gestirà questo per noi, seguendo le indicazioni e gli avvisi di sicurezza che verranno proposti.
+
* Considerare se i file necessari sono stati rimossi dal sistema o se addirittura sono ancora disponibili da altre fonti. I repository del sistema rolling release di Arch Linux vengono automaticamente aggiornati, senza salvare le vecchie versioni. Vedere ulteriori informazioni su questo problema qui sotto.
  
Si prega di tenere presente che questo problema porta alla punta di diamante dello sviluppo di gestione dei pacchetti pacman. Il concetto di "Arch Rollback Machine" è tuttora in via di sviluppo ed in attesa di un inserimento utile in pacman. Quando succederà, diventerà automatico. Fino ad allora, seguire le istruzioni che seguono.
+
* Fare attenzione con le modifiche ai file di configurazione e script. Su questo punto, ci si baserà su pacman che gestirà questo per noi, seguendo le indicazioni e gli avvisi di sicurezza che verranno proposti.
 +
 
 +
Il concetto di "Arch Rollback Machine" è tuttora in via di sviluppo ed in attesa di un inserimento utile in pacman. Quando succederà, diventerà automatico.
  
 
==Come effettuare il downgrade di un pacchetto==
 
==Come effettuare il downgrade di un pacchetto==
 
*D: Ho appena eseguito {{Ic|pacman -Syu}} e il pacchetto "XYZ" è stato aggiornato alla versione N dalla versione M. Questo pacchetto è causa di problemi sul mio computer, come posso fare il downgrade dalla versione N alla versione precedente M?
 
*D: Ho appena eseguito {{Ic|pacman -Syu}} e il pacchetto "XYZ" è stato aggiornato alla versione N dalla versione M. Questo pacchetto è causa di problemi sul mio computer, come posso fare il downgrade dalla versione N alla versione precedente M?
*R: Può essere possibile effettuare il downgrade del pacchetto esplorando semplicemente {{Filename|/var/cache/pacman/pkg}} sul proprio sistema e vedere se la vecchia versione del pacchetto è presente. (Se non è stato eseguito {{Ic|pacman -Scc}} di recente, dovrebbe essere lì). Se il pacchetto è lì, è possibile reinstallare la versione con il comando {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}.
+
*R: Può essere possibile effettuare il downgrade del pacchetto esplorando semplicemente {{Ic|/var/cache/pacman/pkg}} sul proprio sistema e vedere se la vecchia versione del pacchetto è presente. (Se non è stato eseguito {{Ic|pacman -Scc}} di recente, dovrebbe essere lì). Se il pacchetto è lì, è possibile reinstallare la versione con il comando {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}.
  
 
Questo processo rimuoverà il pacchetto attuale, calcolerà attentamente tutte le dipendenza modificate, e reinstallerà la versione precedente scelta con le dipendenze corrette su tutta la linea.
 
Questo processo rimuoverà il pacchetto attuale, calcolerà attentamente tutte le dipendenza modificate, e reinstallerà la versione precedente scelta con le dipendenze corrette su tutta la linea.
  
{{Note| Se si modifica una parte fondamentale del sistema operativo, ci si può ritrovare a dover estrarre decine di pacchetti e sostituirli con le loro versioni precedenti.  Oppure potrebbero non essere più disponibili e si dovrà rimetterli manualmente, facendo attenzione che un particolare aggiornamento, non reinstalli la versione del pacchetto indesiderata.}}
+
{{Nota| Se si modifica una parte fondamentale del sistema operativo, ci si può ritrovare a dover estrarre decine di pacchetti e sostituirli con le loro versioni precedenti.  Oppure potrebbero non essere più disponibili e si dovrà rimetterli manualmente, facendo attenzione che un particolare aggiornamento, non reinstalli la versione del pacchetto indesiderata.}}
  
C'è anche un pacchetto in [[AUR (Italiano)|AUR]], chiamato [https://aur.archlinux.org/packages.php?ID=31937 downgrade]. Si tratta di un semplice script Bash che verificherà la presenza, nella propria cache, di versioni precedenti dei pacchetti. Qualora non fossero trovati pacchetti nella cache, lo script cercherà anche in [https://wiki.archlinux.org/index.php/Downgrading_Packages_(Italiano)#ARM A.R.M.] Si potrà quindi selezionare il pacchetto da installare. Sostanzialmete si tratta di un'automatizzazione dei processi descritti qui. Vedere {{Ic|downgrade --help}} per informazioni sull'utilizzo.
+
C'è anche un pacchetto in [[AUR (Italiano)|AUR]], chiamato {{AUR|downgrade}}. Si tratta di un semplice script Bash che verificherà la presenza, nella propria cache, di versioni precedenti dei pacchetti. Qualora non fossero trovati pacchetti nella cache, lo script cercherà anche in [[Downgrading_Packages_(Italiano)#ARM |A.R.M.]] Si potrà quindi selezionare il pacchetto da installare. Sostanzialmete si tratta di un'automatizzazione dei processi descritti qui. Vedere {{Ic|downgrade --help}} per informazioni sull'utilizzo.
  
Un altro strumento utile è [http://aur.archlinux.org/packages.php?ID=50246 downgrader], esso funziona con i log di pacman, può effettuare il downgrade dei pacchetti da ARM, dalla cache locale, e funziona con la lista dei pacchetti (se il sistema risulta instabile dopo l'aggiornamento di alcuni pacchetti e si è insicuri circa il loro nome)
+
Un altro strumento utile è {{AUR|downgrader}}, esso funziona con i log di pacman, può effettuare il downgrade dei pacchetti da ARM, dalla cache locale, e funziona con la lista dei pacchetti (se il sistema risulta instabile dopo l'aggiornamento di alcuni pacchetti e si è insicuri circa il loro nome).
 +
 
 +
=== Effettuare il downgrade del kernel ===
 +
 
 +
Se dopo l'aggiornamento del kernel non si riesce ad avviare il sistema, si può effettuare il downgrade del kernel tramite il live cd. Utilizzare un supporto di installazione Arch Linux abbastanza recente. Una volta avviato, montare la partizione del proprio sistema, ad esempio /mnt e se si ha /boot oppure /var in partizioni separate, montarle entrambe (<tt>mount /dev/sdc3 /mnt/boot</tt>). Quindi montare proc, ecc..
  
 
==Trovare la versione precedente==
 
==Trovare la versione precedente==
 
Ci sono tre modi per farlo.
 
Ci sono tre modi per farlo.
====Mirror non aggiornati====
+
===Mirror non aggiornati===
Se non si trovano le versioni precedenti sul proprio sistema, verificare se uno dei mirror non è ben sincronizzato con gli aggiornamenti, e ottenere i pacchetti da lì. Cliccare qui per visualizzare lo [http://users.archlinux.de/~gerbra/mirrorcheck.html stato dei mirror].
+
Se non si trovano le versioni precedenti sul proprio sistema, verificare se uno dei mirror non è ben sincronizzato con gli aggiornamenti, e ottenere i pacchetti da lì. Cliccare qui per visualizzare lo [https://www.archlinux.org/mirrors/status/ stato dei mirror].
  
 
È inoltre possibile controllare questo mirror che mantiene pacchetti datati:
 
È inoltre possibile controllare questo mirror che mantiene pacchetti datati:
* http://schlunix.org/?page_id=11  
+
* http://schlunix.org/?page_id=11
  
====ARM====
+
===ARM===
 
L' [http://arm.konnichi.com/ Arch Rollback Machine] (ARM) contiene delle specie di istantanee archiviate dei repository risalenti al 1 novembre 2009. Il sito è in continuo mutamento alla data odierna (21 November 2009), ed è stato rimosso il materiale risalente fino al 1 ° ottobre 2008, come precedentemente riportato.
 
L' [http://arm.konnichi.com/ Arch Rollback Machine] (ARM) contiene delle specie di istantanee archiviate dei repository risalenti al 1 novembre 2009. Il sito è in continuo mutamento alla data odierna (21 November 2009), ed è stato rimosso il materiale risalente fino al 1 ° ottobre 2008, come precedentemente riportato.
  
Chi fosse interessato ad ARM, può vedere l'annuncio introduttivo sul forum e la discussione, in modo da mantenersi aggiornato sul progetto. Il thread del forum è [http://bbs.archlinux.org/viewtopic.php?id=53665 qui].
+
Chi fosse interessato ad ARM, può vedere l'annuncio introduttivo sul forum e la discussione, in modo da mantenersi aggiornato sul progetto. Il thread del forum è [https://bbs.archlinux.org/viewtopic.php?id=53665 qui].
  
 
In sintesi si illustra l'obiettivo, che è quello di creare degli URL in modo da facilitare l'esecuzione di pacman + wget script per ottenere il "roll back", cioè un ripristino del sistema ad una data specifica.  Il processo di automazione non è stato ancora spiegato. Per cercare manualmente un particolare pacchetto, si può usare la pagina di ricerca fornita su [http://arm.konnichi.com/search/ ARM Search].
 
In sintesi si illustra l'obiettivo, che è quello di creare degli URL in modo da facilitare l'esecuzione di pacman + wget script per ottenere il "roll back", cioè un ripristino del sistema ad una data specifica.  Il processo di automazione non è stato ancora spiegato. Per cercare manualmente un particolare pacchetto, si può usare la pagina di ricerca fornita su [http://arm.konnichi.com/search/ ARM Search].
  
====Ricompilare il pacchetto====
+
===Ricompilare il pacchetto===
Nella peggiore delle ipotesi, se il pacchetto non è reperibile altrove, sarà necessario compilare la versione precedente da soli. Per fare questo è necessario un PKGBUILD per il file; si può modificare il PKGBUILD esistente fornito da ABS per utilizzare i vecchi sorgenti, o si può visitare http://www.archlinux.org/packages/ e cercare il pacchetto di cui si desidera effettuare il downgrade. Una volta trovato, cliccare "View SVN entries" e selezionare "View Log". Individuare la versione desiderata e fare clic sul percorso. Poi basta scaricare i file che si trovano in tale directory e compilarli con makepkg.
+
Nella peggiore delle ipotesi, se il pacchetto non è reperibile altrove, sarà necessario compilare la versione precedente da soli. Per fare questo è necessario un PKGBUILD per il file; si può modificare il PKGBUILD esistente fornito da ABS per utilizzare i vecchi sorgenti, o si può visitare https://www.archlinux.org/packages/ e cercare il pacchetto di cui si desidera effettuare il downgrade. Una volta trovato, cliccare "View Changes" e selezionare "log". Individuare la versione desiderata e fare clic sul percorso. Poi basta scaricare i file che si trovano in tale directory e compilarli con makepkg.
  
==Altre informazioni==
+
Per i pacchetti AUR, attualmente l'unico metodo per ottenere i vecchi PKGBUILDs è prenderli da http://pkgbuild.com/git/aur-mirror.git/ oppure controllare l'[[Unofficial User Repositories]] per i binari precompilati (a volte non sono aggiornati).
Il concetto di base riguardo il controllo dell'utente nella gestione dei pacchetti di pacman, è quello di modificare il file {{Filename|pacman.conf}} eseguendo il login come root al prompt dei comandi e l'utilizzo di "nano /etc/pacman.conf" (senza virgolette) per modificare il file.  (Anche se questo può essere fatto dal proprio frontend grafico, come ad esempio Shaman, a volte è preferibile farlo direttamente da riga di comando. Si consiglia inoltre di ripulire eventuale spazzatura accumulata nel file con il passare del tempo.)
+
  
Il più semplice è la modifica della posizione dei repository da cui pacman eseguirà la ricerca dei programmi. Commentare ogni repository esistente mediante l'uso del simbolo cancelletto all'inizio della riga, determinerà la sola attivazione di quelli attuali, senza renderli accessibili a pacman ed al sistema di gestione dei pacchetti.
+
==Cambiare Repository==
 
+
Per cambiare repository in ARM, occorre commentare la riga obsoleta ed aggiungere il percorso dell'idonea directory nel seguente formato:
Per esempio, per aggiungere un repository da ARM, bisogna commentare la riga obsoleta e aggiungere il percorso della directory appropriata nel formato:
+
 
  [core]
 
  [core]
 
  #<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki>
 
  #<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki>
 
  <nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki>
 
  <nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki>
  
In questo esempio, la sezione data istruisce a prendere qualsiasi pacchetto disponibile dal 1 novembre 2009.  Si prega di notare che tutti i repository sono gli snapshot dei repository ufficiali. Basta modificare il mirror in {{Filename|/etc/pacman.d/mirrorlist}}, e spostare un mirror ARM in alto, per esempio <nowiki>http://arm.konnichi.com/2009/11/01/$repo/os/i686</nowiki> per sincronizzare tutti i repository ufficiali elencati in {{Filename|/etc/pacman.conf}} al mirror ARM scelto. Infine aggiornarlo con:
+
In questo esempio, la sezione data istruisce a prendere qualsiasi pacchetto disponibile dal 1 novembre 2009.  Si prega di notare che tutti i repository sono gli snapshot dei repository ufficiali. Basta modificare il mirror in {{Ic|/etc/pacman.d/mirrorlist}}, e spostare un mirror ARM in alto, per esempio <nowiki>http://arm.konnichi.com/2009/11/01/$repo/os/i686</nowiki> per sincronizzare tutti i repository ufficiali elencati in {{Ic|/etc/pacman.conf}} al mirror ARM scelto. Infine aggiornarlo con:
 
  pacman -Syy  # ricarica la sincronizzazione dei database
 
  pacman -Syy  # ricarica la sincronizzazione dei database
 
  pacman -Suu  # declassa tutti i pacchetti ad una versione inferiore nei repo
 
  pacman -Suu  # declassa tutti i pacchetti ad una versione inferiore nei repo
Line 72: Line 94:
 
Questo da solo non garantisce un rollback completo, dato che a volte ci possono essere conflitti tra i vari pacchetti per quanto riguarda i numeri di versione, ecc. Se si conosce il repository può essere più facile visitare il mirror globale, per esempio http://arm.konnichi.com/core/os/i686. Notare l'omissione della data.
 
Questo da solo non garantisce un rollback completo, dato che a volte ci possono essere conflitti tra i vari pacchetti per quanto riguarda i numeri di versione, ecc. Se si conosce il repository può essere più facile visitare il mirror globale, per esempio http://arm.konnichi.com/core/os/i686. Notare l'omissione della data.
  
==E le dipendenze?==
+
Per maggiori informazioni si prega di vedere [[pacman (Italiano)|pacman]].
* D: Non riesco a declassare un pacchetto, a causa delle dipendenze.
+
* R: È possibile ignorare le dipendenze durante l'aggiornamento o la rimozione con l'opzione "d". Esempio: '''pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz''' ma questo potrebbe danneggiare ulteriormente il sistema.
+
 
+
==Impedire a Pacman di aggiornare determinati pacchetti==
+
* D: Come si può istruire pacman ad omettere l'aggiornamento o il declassamento di determinati pacchetti?
+
* R: Con la variabile "IgnorePkg" in {{Filename|/etc/pacman.conf}}.
+
  
{{Ic|"IgnorePkg &#61; package1 package2 ..."}} nel file {{Filename|pacman.conf}} istruisce pacman ad ignorare eventuali aggiornamenti per i pacchetti selezionati durante un'aggiornamento di sistema.
+
== FAQ ==
  
==Ripristino ad un punto di salvataggio==
+
{{FAQ
* D: Vorrei tornare a come era il mio sistema ieri.
+
|question=Non riesco a declassare un pacchetto, a causa delle dipendenze.
* R: È facilmente ottenibile se si sono eseguiti degli snapshot periodici.
+
|answer=È possibile ignorare le dipendenze durante l'aggiornamento o la rimozione con l'opzione "d". Esempio: '''pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz''' ma questo potrebbe danneggiare ulteriormente il sistema.}}
  
Potete contare su un Logical Volume Manager ([[LVM (Italiano)|LVM]]) per creare e mantenere degli snapshot. Queste istantanee non devono essere confuse con gli snapshot CVS.  Gli snapshot LVM sono istantanee del filesystem a livello di kernel che, a differenza di un backup completo, utilizzano uno schema COW (copy-on-write) il che significa che occupa pochissimo spazio su disco finché non vengono modificati i file, nel qual caso, lo snapshot occuperebbe solo un po' di più dello spazio necessario per archiviare i file pre-modificati.  Ciò in genere significa che è possibile creare lo snapshot di un sistema di 35GB con soli 2GB di spazio libero, visto che pacman-Sy può modificarlo, anche se in misura di gran lunga inferiore a 2GB.  Se lo stato del sistema dopo l'aggiornamento non è soddisfacente, si può rapidamente eseguire il rollback all'immagine snapshot precedente del proprio sistema.
+
{{FAQ
 +
|question=Come è possibile impedire a Pacman di aggiornare i pacchetti scaricati?
 +
|answer={{Ic|<nowiki>IgnorePkg = package1 package2</nowiki>}} nel proprio {{Ic|pacman.conf}} indicherà a Pacman, quando si esegue --sysupgrade, di ignorare ogni aggiornamento per i pacchetti selezionati.}}
  
==Ulteriori risorse==
+
{{FAQ
* [[Arch Build System (Italiano)|Arch Build System]] per ulteriori informazioni.
+
|question=Vorrei tornare a come era il mio sistema ieri.
* [[LVM (Italiano)|LVM]] manuale per la creazione degli snapshot e il loro ripristino.
+
|answer=È facilmente ottenibile se si sono eseguiti gli snapshot periodici forniti da [[LVM (Italiano)|LVM]].}}

Revision as of 15:28, 2 January 2013

Sommario help replacing me
Ripristinare versioni precedenti di pacchetti: perchè e come.
Wiki Correlati
Arch Build System (Italiano)
pacman (Italiano)
LVM – come abilitare gli snapshots e come ripristinare il loro stato

Questa guida vi mostrerà come effettuare il downgrade di un pacchetto ad una versione precedente. Il declassamento di un pacchetto non viene normalmente raccomandato ed è spesso necessario solo quando viene introdotto un bug nel pacchetto corrente.

Prima di iniziare l'operazione di declassamento, considerare il perché lo si sta facendo. Se la causa è un bug, si prega di aiutare sia Arch che gli sviluppatori, dedicando pochi minuti del proprio tempo per inviare la notifica dei bug nel bug tracker Arch o sul progetto madre del programma stesso. Dal momento che Arch è una distribuzione rolling release, probabilmente si lavora di continuo con pacchetti nuovissimi e talvolta è possibile incappare in qualche problema di bug.

Sia noi che gli sviluppatori apprezzeremo lo sforzo. Quel po' di informazioni in più ci potrebbe risparmiare ore di test e debug, e ci aiuterebbe a rilasciare software sempre più stabile.

Ragioni

Il processo di declassamento è quello di disinstallare il pacchetto attuale e installare una versione precedente. La versione precedente può essere una versione immediata (l'ultima versione precedente del pacchetto) o un certo numero di versioni precedenti.

Le ragioni del declassamento includono (tra le altre): che l'attuale versione ha un bug, non contiene al momento la funzionalità desiderata, o la si sta usando per motivi di sperimentazione. In ognuno di questi casi, l'utente ha scelto che può essere meno problematico tornare ad una versione precedente e aspettare una nuova release.

Il declassamento di un pacchetto può significare che altri pacchetti potrebbero venir declassati, in quanto richiesti come dipendenze. Per coloro che hanno installato una notevole quantità di pacchetti sperimentali o di test, ed eseguito molte configurazioni, può essere preferibile reinstallare il sistema piuttosto che cercare di eseguire il downgrade.

I dettagli

Tuttavia, l'utente deve tenere a mente i seguenti punti:

  • Considerare le dipendenze di ogni programma. Le librerie necessarie, che così spesso cambiano con ogni versione, e la funzionalità dei file associati, che possono essere completamente diversi da quelli precedenti. La soluzione richiede anche la loro modifica, per le versioni precedenti.
  • Considerare se i file necessari sono stati rimossi dal sistema o se addirittura sono ancora disponibili da altre fonti. I repository del sistema rolling release di Arch Linux vengono automaticamente aggiornati, senza salvare le vecchie versioni. Vedere ulteriori informazioni su questo problema qui sotto.
  • Fare attenzione con le modifiche ai file di configurazione e script. Su questo punto, ci si baserà su pacman che gestirà questo per noi, seguendo le indicazioni e gli avvisi di sicurezza che verranno proposti.

Il concetto di "Arch Rollback Machine" è tuttora in via di sviluppo ed in attesa di un inserimento utile in pacman. Quando succederà, diventerà automatico.

Come effettuare il downgrade di un pacchetto

  • D: Ho appena eseguito pacman -Syu e il pacchetto "XYZ" è stato aggiornato alla versione N dalla versione M. Questo pacchetto è causa di problemi sul mio computer, come posso fare il downgrade dalla versione N alla versione precedente M?
  • R: Può essere possibile effettuare il downgrade del pacchetto esplorando semplicemente /var/cache/pacman/pkg sul proprio sistema e vedere se la vecchia versione del pacchetto è presente. (Se non è stato eseguito pacman -Scc di recente, dovrebbe essere lì). Se il pacchetto è lì, è possibile reinstallare la versione con il comando pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz.

Questo processo rimuoverà il pacchetto attuale, calcolerà attentamente tutte le dipendenza modificate, e reinstallerà la versione precedente scelta con le dipendenze corrette su tutta la linea.

Nota: Se si modifica una parte fondamentale del sistema operativo, ci si può ritrovare a dover estrarre decine di pacchetti e sostituirli con le loro versioni precedenti. Oppure potrebbero non essere più disponibili e si dovrà rimetterli manualmente, facendo attenzione che un particolare aggiornamento, non reinstalli la versione del pacchetto indesiderata.

C'è anche un pacchetto in AUR, chiamato downgradeAUR. Si tratta di un semplice script Bash che verificherà la presenza, nella propria cache, di versioni precedenti dei pacchetti. Qualora non fossero trovati pacchetti nella cache, lo script cercherà anche in A.R.M. Si potrà quindi selezionare il pacchetto da installare. Sostanzialmete si tratta di un'automatizzazione dei processi descritti qui. Vedere downgrade --help per informazioni sull'utilizzo.

Un altro strumento utile è downgraderAUR, esso funziona con i log di pacman, può effettuare il downgrade dei pacchetti da ARM, dalla cache locale, e funziona con la lista dei pacchetti (se il sistema risulta instabile dopo l'aggiornamento di alcuni pacchetti e si è insicuri circa il loro nome).

Effettuare il downgrade del kernel

Se dopo l'aggiornamento del kernel non si riesce ad avviare il sistema, si può effettuare il downgrade del kernel tramite il live cd. Utilizzare un supporto di installazione Arch Linux abbastanza recente. Una volta avviato, montare la partizione del proprio sistema, ad esempio /mnt e se si ha /boot oppure /var in partizioni separate, montarle entrambe (mount /dev/sdc3 /mnt/boot). Quindi montare proc, ecc..

Trovare la versione precedente

Ci sono tre modi per farlo.

Mirror non aggiornati

Se non si trovano le versioni precedenti sul proprio sistema, verificare se uno dei mirror non è ben sincronizzato con gli aggiornamenti, e ottenere i pacchetti da lì. Cliccare qui per visualizzare lo stato dei mirror.

È inoltre possibile controllare questo mirror che mantiene pacchetti datati:

ARM

L' Arch Rollback Machine (ARM) contiene delle specie di istantanee archiviate dei repository risalenti al 1 novembre 2009. Il sito è in continuo mutamento alla data odierna (21 November 2009), ed è stato rimosso il materiale risalente fino al 1 ° ottobre 2008, come precedentemente riportato.

Chi fosse interessato ad ARM, può vedere l'annuncio introduttivo sul forum e la discussione, in modo da mantenersi aggiornato sul progetto. Il thread del forum è qui.

In sintesi si illustra l'obiettivo, che è quello di creare degli URL in modo da facilitare l'esecuzione di pacman + wget script per ottenere il "roll back", cioè un ripristino del sistema ad una data specifica. Il processo di automazione non è stato ancora spiegato. Per cercare manualmente un particolare pacchetto, si può usare la pagina di ricerca fornita su ARM Search.

Ricompilare il pacchetto

Nella peggiore delle ipotesi, se il pacchetto non è reperibile altrove, sarà necessario compilare la versione precedente da soli. Per fare questo è necessario un PKGBUILD per il file; si può modificare il PKGBUILD esistente fornito da ABS per utilizzare i vecchi sorgenti, o si può visitare https://www.archlinux.org/packages/ e cercare il pacchetto di cui si desidera effettuare il downgrade. Una volta trovato, cliccare "View Changes" e selezionare "log". Individuare la versione desiderata e fare clic sul percorso. Poi basta scaricare i file che si trovano in tale directory e compilarli con makepkg.

Per i pacchetti AUR, attualmente l'unico metodo per ottenere i vecchi PKGBUILDs è prenderli da http://pkgbuild.com/git/aur-mirror.git/ oppure controllare l'Unofficial User Repositories per i binari precompilati (a volte non sono aggiornati).

Cambiare Repository

Per cambiare repository in ARM, occorre commentare la riga obsoleta ed aggiungere il percorso dell'idonea directory nel seguente formato:

[core]
#Server=http://mirrors.gigenet.com/archlinux/core/os/i686
Server=http://arm.konnichi.com/2009/11/01/core/os/i686

In questo esempio, la sezione data istruisce a prendere qualsiasi pacchetto disponibile dal 1 novembre 2009. Si prega di notare che tutti i repository sono gli snapshot dei repository ufficiali. Basta modificare il mirror in /etc/pacman.d/mirrorlist, e spostare un mirror ARM in alto, per esempio http://arm.konnichi.com/2009/11/01/$repo/os/i686 per sincronizzare tutti i repository ufficiali elencati in /etc/pacman.conf al mirror ARM scelto. Infine aggiornarlo con:

pacman -Syy  # ricarica la sincronizzazione dei database
pacman -Suu  # declassa tutti i pacchetti ad una versione inferiore nei repo

Questo da solo non garantisce un rollback completo, dato che a volte ci possono essere conflitti tra i vari pacchetti per quanto riguarda i numeri di versione, ecc. Se si conosce il repository può essere più facile visitare il mirror globale, per esempio http://arm.konnichi.com/core/os/i686. Notare l'omissione della data.

Per maggiori informazioni si prega di vedere pacman.

FAQ

Template:FAQ

Template:FAQ

Template:FAQ