From Fedora Project Wiki
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{autolang}}
{{autolang}}
{{admon/warning|Traduzione incompleta; fare riferimento alla pagina in lingua inglese.}}


== Cos'é il 'DNF system upgrade' ==
== Cos'é il 'DNF system upgrade' ==
Line 51: Line 49:


Sì, se impostati come repository per [[Dnf|dnf]]. I repository non-fedora comunemente usati di solito funzionano, ma meglio verificare che siano già disponibili i pacchetti adatti alla nuova versione di Fedora. In caso contrario non impedirebbe il completamento dell'aggiornamento.
Sì, se impostati come repository per [[Dnf|dnf]]. I repository non-fedora comunemente usati di solito funzionano, ma meglio verificare che siano già disponibili i pacchetti adatti alla nuova versione di Fedora. In caso contrario non impedirebbe il completamento dell'aggiornamento.
{{anchor|eol}}
=== É possibile aggiornare i rilasci [[End of life]]? ===
Fedora raccomanda fortemente di non usare versioni obsolete non più supportate; si dovrebbe perciò evitare di far "scadere" la propria Fedora installata.
Detto questo, se si utilizza una versione più recente della 20 si dovrebbe cercare di aggiornarla. É possibile farlo attraverso rilasci intermedi, oppure aggiornando alla versione più recente in una sola volta. Non è possibile stabilire con certezza quale approccio è più probabile che abbia successo.
Se si preferisce aggiornare attraverso due o più versioni, leggi [[#multi|qui]].
Se si usa una versione di Fedora più vecchia della 20 è impossibile utilizzare il ''DNF system upgrade'' soltanto, ma bisogna seguire il vecchio metodo [[Upgrading_Fedora_using_package_manager|con {{command|dnf}} o {{command|yum}}]]. Aggiornare fino a Fedora 21 e poi continuare usando 'DNF system upgrade'.
{{anchor|multi}}


=== Posso usare questa procedura per aggiornamenti a versioni non-stabili di Fedora (ad esempio ad un rilascio Beta) ? ===
=== Posso usare questa procedura per aggiornamenti a versioni non-stabili di Fedora (ad esempio ad un rilascio Beta) ? ===
Line 56: Line 67:
Sì. Sarebbe sempre possibile farlo, tuttavia questa funzione potrebbe essere soggetta a malfunzionamenti temporanei proprio per la natura non-stabile dei pacchetti.
Sì. Sarebbe sempre possibile farlo, tuttavia questa funzione potrebbe essere soggetta a malfunzionamenti temporanei proprio per la natura non-stabile dei pacchetti.


== Operazioni optionali post-aggiornamento ==
== Operazioni opzionali post-aggiornamento ==


Queste sono operazioni che è possibile fare dopo un aggiornamento avvenuto con successo. '''Sono da utilizzare per utenti esperti, se non si è abituati ad usare un terminale non bisogna preoccuparsi.'''
Queste sono operazioni che è possibile fare dopo un aggiornamento avvenuto con successo. '''Sono da utilizzare per utenti esperti, se non si è abituati ad usare un terminale non bisogna preoccuparsi.'''


=== Update system configuration files ===
=== Aggiornamento dei file di configurazione di sistema ===


Most configuration files are stored in <code>/etc</code>. If there are any updates to them and you touched some of those files before, RPM creates new files with either <code>.rpmnew</code> suffix (the new default config file), or <code>.rpmsave</code> suffix (your old config file backed up). You can search for these files, go through the changes and make sure your custom changes are still included and the new defaults are applied as well. A tool that tried to simplify this is {{pkg|rpmconf}}. Install the package, and then use it as:
La maggior parte dei file di configurazione sono immagazzinati in <code>/etc</code>. Se c'é qualche aggiornamento e questi file sono stati modificati prima, RPM creerà nuovi file con il suffisso <code>.rpmnew</code> (il nuovo file config), oppure con <code>.rpmsave</code> (il vecchio file config conservato). É possibile cercarli per recuperare le modifiche apportate precedentemente. {{pkg|rpmconf}} è uno strumento che aiuta in questa operazione:
  $ sudo rpmconf -a
  $ sudo rpmconf -a
See more information in its manual page.


=== Clean up old packages ===
=== Pulizia dai vecchi pacchetti ===


You can see list of packages with broken dependencies like this:
É possibile avere una lista di pacchetti con dipendenza mancante con il comando:
  $ sudo dnf repoquery --unsatisfied
  $ sudo dnf repoquery --unsatisfied
Ideally there should be none. If there are some, consider removing them, because they are not likely to work properly anyway.
Se ce ne sono alcuni, meglio rimuoverli perché comunque non funzioneranno come devono.


You can see duplicated packages (packages with multiple versions installed) like this:
Per avere una lista dei file duplicati:
  $ sudo dnf repoquery --duplicated
  $ sudo dnf repoquery --duplicated
For ordinary packages, just the latest version should be installed. But there can be exceptions to the rule, only remove what you are sure you no longer need.
Dei pacchetti ordinari dovrebbe essere installata soltanto la versione più aggiornata.


Some packages might stay on your system while they have been removed from the repositories. See them using:
Alcuni pacchetti potrebbero rimanere sul sistema mentre sono stati rimossi dai repository:
  $ sudo dnf list extras
  $ sudo dnf list extras
If you don't use these, you can consider removing them. Please note that this list is only valid if you have a fully updated system. Otherwise you'll see all installed packages which are no longer in the repositories, because there is a newer update available. So before acting on these, make sure you have run <code>sudo dnf update</code> and generate the list of extra packages again. Also, this list might contain packages installed from third-party repositories for which an updated repository hasn't been published yet. This often involves e.g. RPM Fusion or Dropbox.
Rimuoverli se non più utili. Da notare che la lista è valida se si usa un sistema pienamente aggiornato, in caso contrario si otterranno paccheti installati che non sono più disponibili nei repository perché in una nuova versione.


You can remove no-longer-needed packages using:
É possibile rimuovere i pacchetti non più necessari con:
  $ sudo dnf autoremove
  $ sudo dnf autoremove
Please note that dnf decides that a package is no longer needed if you haven't explicitly asked to install it and nothing else requires it. That doesn't mean that package is not useful or that you don't use it. Only remove what you know you don't need. Please note that there's a known bug in PackageKit which doesn't mark packages as user-installed, see [https://bugzilla.redhat.com/show_bug.cgi?id=1259865 bug 1259865]. If you use PackageKit (or GNOME Software, Apper, etc) for installation, this output might list even important apps and system packages, so beware.
Notare che DNF decide che un pacchetto non è più necessario se non si è esplicitamente chiesto di installarlo oppure non è richiesto da altri pacchetti. Ciò non significa che il pacchetto non è utile, rimuovere solo ciò che si è consapevoli non essere più necessario. Notare inoltre che esiste un bug noto in PackageKit: [https://bugzilla.redhat.com/show_bug.cgi?id=1259865 bug 1259865].


== Resolving post-upgrade issues ==
== Risoluzione di alcuni eventuali problemi post-aggiornamento ==


'''Only follow up these steps if you have troubles with your upgraded system. It should not be needed in the vast majority of upgrades.'''
'''Da seguire solo se necessario.'''


=== Rebuilding RPM database ===
=== Ricostruzione del database degli RPM ===


If you see warnings when working with RPM/DNF tools, your database might have gotten corrupted for some reason. It is possible to rebuild it and see if resolves your issues. Always back up <code>/var/lib/rpm/</code> first. To rebuild the database, run:
Se si notano degli avvertimenti mentre RPM/DNF lavora, il database degli RPM potrebbe essere corrotto. É possibile ricostruirlo per tentare di risolvere il problema. Fare un back-up di <code>/var/lib/rpm/</code> prima. Per ricostruire si usa:
  $ sudo rpm --rebuilddb
  $ sudo rpm --rebuilddb


=== Using distro-sync to resolve dependency issues ===
=== Utilizzo di distro-sync per risolvere problemi di dipendenza ===


The system upgrade tool uses distro-sync method by default. If your system stayed partly unupgraded or you see some package dependency issues, you might try to fix it by running another distro-sync manually. This tries to make your installed packages exactly the same version as in currently enabled repositories, even if it meant downgrading some packages:
Lo strumento d'aggiornamento usa il metodo ''distro-sync'' predefinito. Se il sistema rimane parzialemente non aggiornato o si notano problemi di dipendenza tra pacchetti, potrebbe essere uitle riavviare il ''distro-sync'' manualemte:
  $ sudo dnf distro-sync
  $ sudo dnf distro-sync


A stronger variant also allows to remove package for which package dependencies can't be satisfied. Always carefully review which packages are going to be removed before confirming this:
Una variante più efficace permette di rimuovere il pacchetto con le dipendenze non soddisfatte. Fare sempre attenzione a quali pacchetti si decide di rimuovere:
  $ sudo dnf distro-sync --allowerasing
  $ sudo dnf distro-sync --allowerasing


=== Relabel files with latest SELinux policy ===
=== Rietichettatura dei file con le recenti regole di SELinux ===


If you see warnings that some actions were not allowed because of current SELinux policy, it might be a case of having some files incorrectly label with SELinux permissions. This might happen in case of some bug or if you had SELinux disabled in some point of time in the past. You can relabel the whole system by running:
Se si notano avvertimenti riguardo ad operazioni non permesse a causa delle correnti regole [https://fedoraproject.org/wiki/SELinux SELinux] imposte, alcuni file potrebbero avere etichettature non corrette per i permessi di [https://fedoraproject.org/wiki/SELinux SELinux]. Questo potrebbe essere causato da bug o se [https://fedoraproject.org/wiki/SELinux SELinux] è disabilitato, in questi casi si procede con la rietichettatura dell'intero sistema:
  $ sudo touch /.autorelabel
  $ sudo touch /.autorelabel
and rebooting. The next boot will take a long time and will check and fix all SELinux labels on all your files.
$ reboot
 
L'avvìo successivo e solo quello sarà più lungo a causa dei controlli effettuati su tutti i file.
 
[[Category:Italiano]]

Latest revision as of 14:35, 22 November 2016

Cos'é il 'DNF system upgrade'

dnf-plugin-system-upgrade è un plugin per il manager di pacchetti dnf che gestisce gli aggiornamenti di sistema. É il metodo di aggiornamento raccomandato per le versioni di Fedora superiori alla 21.

Funzionamento

Il 'DNF system upgrade' aggiorna il sistema ad una nuova versione di Fedora usando un meccanismo simile a quello usato per gli aggiornamenti in locale (offline). I pacchetti aggiornati vengono scaricati mentre il sistema funziona normalmente, per poi riavviarsi in una modalità adatta ad installarli. Una volta terminato, il sistema si riavvìa di nuovo nella nuova Fedora.

Come si usa

  1. Backup dei propri dati. Ogni cambiamento del sistema è potenzialmente a rischio, quindi essere prepararsi all'eventualità. Nel caso si voglia aggiornare la propria (Fedora) workstation, è ancora preferibile scaricare una immagine live della Workstation ed assicurarsi che il proprio hardware (scheda grafica, wifi, etc) funzioni bene con l'ultimo kernel disponibile.
  2. Aggiornare il sistema usando gli strumenti grafici standard oppure pkcon o dnf:
    $ sudo dnf update --refresh

    É raccomandato riavviare il computer, specie se viene installato un nuovo kernel.
    Si prega di tener presente che esiste un problema se si usa un tema plymouth non predefinito.

    Seguire i seguenti passaggi.

  3. Installare dnf-plugin-system-upgrade:
    $ sudo dnf install dnf-plugin-system-upgrade
  4. Scaricare i pacchetti aggiornati:
    $ sudo dnf system-upgrade download --refresh --releasever=41

    Modificare il numero --releasever= in base al sistema a cui si vuole aggiornare. Molti utenti aggiornano all'ultimo sistema stabile disponibile, cioé 41, ma se si usa una Fedora 39, si potrebbe voler aggiornare ad una Fedora 40. Si può anche usare 42 oppure rawhide per avere una Rawhide (attenzione: queste sono versioni instabili di Fedora).

    • Se alcuni pacchetti hanno dipendenze insoddisfatte, l'aggiornamento non andrà avanti a meno che non si usi l'opzione --allowerasing. Spesso accade se si usano pacchetti provenienti da scaricamenti esterni a quelli ufficiali.
    • In caso di dipendenze insoddisfatte, si possono avere ulteriori dettagli aggiungendo l'opzione --best.
  5. Innescare il processo di aggiornamento:
     $ sudo dnf system-upgrade reboot

    Il sistema verrà riavviato immediatamente, ed apparirà il processo di aggiornamento all'avvìo.

  6. Attenderne il completamento.

FAQ

Come riportare eventuali bug

Innanzitutto dare uno sguardo ai Common F41 bugs o Common F42 bugs per controllare se il problema è già conosciuto. Se non c'é, fare una ricerca per un eventuale bug report esistente. Se non esiste ancora, se ne può aprire uno seguendo le istruzioni nel file README ed in man dnf.plugin.system-upgrade.

Se si incontrano problemi con uno specifico pacchetto, aprire un bug report riferito a quello stesso RPM.

Il 'DNF system upgrade' verifica il software in esecuzione o quello che installa durante l'aggiornamento ?

Sì. Le chiavi firmate per i nuovi rilasci di Fedora vengono inviati al vecchio sistema in modo da permettere a dnf di verificare l'integrità dei pacchetti scaricati. É possibile scaricare questa funzione con il parametro --nogpgcheck (non raccomandato, il sistema sarebbe poi vulnerabile ad attacchi di software malevole).

I pacchetti da repository non-fedora verranno aggiornati ?

Sì, se impostati come repository per dnf. I repository non-fedora comunemente usati di solito funzionano, ma meglio verificare che siano già disponibili i pacchetti adatti alla nuova versione di Fedora. In caso contrario non impedirebbe il completamento dell'aggiornamento.

É possibile aggiornare i rilasci End of life?

Fedora raccomanda fortemente di non usare versioni obsolete non più supportate; si dovrebbe perciò evitare di far "scadere" la propria Fedora installata.

Detto questo, se si utilizza una versione più recente della 20 si dovrebbe cercare di aggiornarla. É possibile farlo attraverso rilasci intermedi, oppure aggiornando alla versione più recente in una sola volta. Non è possibile stabilire con certezza quale approccio è più probabile che abbia successo.

Se si preferisce aggiornare attraverso due o più versioni, leggi qui.

Se si usa una versione di Fedora più vecchia della 20 è impossibile utilizzare il DNF system upgrade soltanto, ma bisogna seguire il vecchio metodo con dnf o yum. Aggiornare fino a Fedora 21 e poi continuare usando 'DNF system upgrade'.

Posso usare questa procedura per aggiornamenti a versioni non-stabili di Fedora (ad esempio ad un rilascio Beta) ?

Sì. Sarebbe sempre possibile farlo, tuttavia questa funzione potrebbe essere soggetta a malfunzionamenti temporanei proprio per la natura non-stabile dei pacchetti.

Operazioni opzionali post-aggiornamento

Queste sono operazioni che è possibile fare dopo un aggiornamento avvenuto con successo. Sono da utilizzare per utenti esperti, se non si è abituati ad usare un terminale non bisogna preoccuparsi.

Aggiornamento dei file di configurazione di sistema

La maggior parte dei file di configurazione sono immagazzinati in /etc. Se c'é qualche aggiornamento e questi file sono stati modificati prima, RPM creerà nuovi file con il suffisso .rpmnew (il nuovo file config), oppure con .rpmsave (il vecchio file config conservato). É possibile cercarli per recuperare le modifiche apportate precedentemente. rpmconf è uno strumento che aiuta in questa operazione:

$ sudo rpmconf -a

Pulizia dai vecchi pacchetti

É possibile avere una lista di pacchetti con dipendenza mancante con il comando:

$ sudo dnf repoquery --unsatisfied

Se ce ne sono alcuni, meglio rimuoverli perché comunque non funzioneranno come devono.

Per avere una lista dei file duplicati:

$ sudo dnf repoquery --duplicated

Dei pacchetti ordinari dovrebbe essere installata soltanto la versione più aggiornata.

Alcuni pacchetti potrebbero rimanere sul sistema mentre sono stati rimossi dai repository:

$ sudo dnf list extras

Rimuoverli se non più utili. Da notare che la lista è valida se si usa un sistema pienamente aggiornato, in caso contrario si otterranno paccheti installati che non sono più disponibili nei repository perché in una nuova versione.

É possibile rimuovere i pacchetti non più necessari con:

$ sudo dnf autoremove

Notare che DNF decide che un pacchetto non è più necessario se non si è esplicitamente chiesto di installarlo oppure non è richiesto da altri pacchetti. Ciò non significa che il pacchetto non è utile, rimuovere solo ciò che si è consapevoli non essere più necessario. Notare inoltre che esiste un bug noto in PackageKit: bug 1259865.

Risoluzione di alcuni eventuali problemi post-aggiornamento

Da seguire solo se necessario.

Ricostruzione del database degli RPM

Se si notano degli avvertimenti mentre RPM/DNF lavora, il database degli RPM potrebbe essere corrotto. É possibile ricostruirlo per tentare di risolvere il problema. Fare un back-up di /var/lib/rpm/ prima. Per ricostruire si usa:

$ sudo rpm --rebuilddb

Utilizzo di distro-sync per risolvere problemi di dipendenza

Lo strumento d'aggiornamento usa il metodo distro-sync predefinito. Se il sistema rimane parzialemente non aggiornato o si notano problemi di dipendenza tra pacchetti, potrebbe essere uitle riavviare il distro-sync manualemte:

$ sudo dnf distro-sync

Una variante più efficace permette di rimuovere il pacchetto con le dipendenze non soddisfatte. Fare sempre attenzione a quali pacchetti si decide di rimuovere:

$ sudo dnf distro-sync --allowerasing

Rietichettatura dei file con le recenti regole di SELinux

Se si notano avvertimenti riguardo ad operazioni non permesse a causa delle correnti regole SELinux imposte, alcuni file potrebbero avere etichettature non corrette per i permessi di SELinux. Questo potrebbe essere causato da bug o se SELinux è disabilitato, in questi casi si procede con la rietichettatura dell'intero sistema:

$ sudo touch /.autorelabel
$ reboot

L'avvìo successivo e solo quello sarà più lungo a causa dei controlli effettuati su tutti i file.