

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo degli aggiornamenti deterministici tramite repository con versioni
<a name="deterministic-upgrades-usage"></a>

**Topics**
+ [Uso di un sistema di aggiornamento deterministico](#using-a-deterministic-upgraded-system)
+ [Aggiornamento selettivo di un sistema con aggiornamento deterministico](#deterministic-upgrade-selective-update)
+ [Uso dell'override persistente con aggiornamento deterministico](#deterministic-upgrade-override-persist)

## Uso di un sistema di aggiornamento deterministico
<a name="using-a-deterministic-upgraded-system"></a>

**Nota**  
 Il comportamento predefinito del gestore di pacchetti è cambiato da. AL2 

 Gli aggiornamenti deterministici sono un modo efficace per garantire che tutte le modifiche agli ambienti di produzione possano essere completamente testate prima di un'implementazione su vasta scala. Ogni nuova AL2023 AMI è associata a una versione particolare di AL2023. Ciò fornisce un comportamento deterministico delle versioni dei pacchetti del sistema operativo installate all'avvio dell'AMI specifica. Gli aggiornamenti in loco possono riguardare una versione di rilascio specifica, garantendo un comportamento deterministico in tutta la flotta. Quando passate a versioni nuove AMIs o già aggiornate, potete testarle tutte nella vostra CI/CD pipeline, individuando eventuali problemi potenziali prima di distribuirle negli ambienti di produzione. 

 Puoi utilizzare strumenti come [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) per orchestrare l'applicazione degli aggiornamenti in un parco macchine. Per le build derivate AMIs quando ne AL2023 AMIs vengono rilasciate nuove, [EC2](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Image Builder può creare, applicare patch AMIs e testare automaticamente, oppure [Ricevi notifiche sui nuovi aggiornamenti](receive-update-notification.md) puoi sapere quando sono disponibili AMIs nuove basi o attivare le tue pipeline di creazione AMI. 

 Per informazioni su come limitare gli aggiornamenti a quelli di un particolare avviso, consulta [Applicazione degli aggiornamenti di sicurezza in loco](security-inplace-update.md) 

 Per applicare le patch in loco, è possibile utilizzare il gestore di pacchetti. `dnf` Quando esegui il comando `dnf upgrade`, il sistema verifica la presenza di aggiornamenti nel repository specificato dalla variabile `releasever`. Una versione valida `releasever` è una delle due *latest* o una versione con data, ad esempio. *2023.10.20260325*

È possibile modificare il valore di `releasever` utilizzando uno dei metodi descritti di seguito. Questi metodi sono elencati con priorità di sistema decrescente. Ciò significa che il metodo 1 sostituisce i metodi 2 e 3, e il metodo 2 sostituisce il metodo 3.

1. Il valore nel flag della riga di comando, `--releasever=latest`, se utilizzato.

1. Il valore specificato nel file della variabile di override, `/etc/dnf/vars/releasever`, se impostato.

1. La versione attualmente installata del pacchetto `system-release`.

Nell'esempio seguente, la versione è: *2023.0.20230210*

```
$ rpm -q system-release
system-release-2023.0.20230210-0.amzn2023.noarch
```

In un sistema appena installato, la variabile di override non è presente. Non sono disponibili aggiornamenti perché il sistema è bloccato sulla versione installata di `system-release`.

```
$ cat /etc/dnf/vars/releasever
cat: /etc/dnf/vars/releasever: No such file or directory
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 06:14:12 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!
```

Puoi ottenere pacchetti di una versione specifica utilizzando il flag `releasever` per fornire la versione desiderata.

```
$ rpm -q system-release
system-release-2023.0.20230222-0.amzn2023.noarch
```

```
$ sudo dnf upgrade --releasever=2023.0.20230329
Amazon Linux 2023 repository                     26 MB/s |  12 MB     00:00
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                   aarch64 6.1.21-1.45.amzn2023        amazonlinux  26 M
Upgrading:
 amazon-linux-repo-s3     noarch  2023.0.20230329-0.amzn2023  amazonlinux  18 k
 ca-certificates          noarch  2023.2.60-1.0.amzn2023.0.1  amazonlinux 828 k
 cloud-init               noarch  22.2.2-1.amzn2023.1.7       amazonlinux 1.1 M

         ... [ list edited for clarity ]

 system-release           noarch  2023.0.20230329-0.amzn2023  amazonlinux  29 k

         ... [ list edited for clarity ]
          
 vim-data                 noarch  2:9.0.1403-1.amzn2023.0.1   amazonlinux  25 k
 vim-minimal              aarch64 2:9.0.1403-1.amzn2023.0.1   amazonlinux 753 k

Transaction Summary
================================================================================
Install    1 Package
Upgrade   42 Packages

Total download size: 56 M
```

Poiché l'opzione `--releasever` sostituisce sia `system-release` che `/etc/dnf/vars/releasever`, il risultato di questo aggiornamento è il seguente:

1. L'aggiornamento sostituisce tutti i pacchetti installati che sono stati modificati tra la versione precedente e quella nuova.

1. L'aggiornamento blocca il sistema nel repository per la nuova versione di `system-release`.

 Specificando sempre a quale versione `releasever` (ad esempio, AL2023 versione) eseguire l'aggiornamento, si ottiene una serie deterministica di modifiche in tutta la flotta. Hai lanciato la versione*A*, aggiornata a *B* e poi aggiornata a. *C* 

## Aggiornamento selettivo di un sistema con aggiornamento deterministico
<a name="deterministic-upgrade-selective-update"></a>

**Nota**  
 Si consiglia di installare tutti gli aggiornamenti di una nuova versione anziché selezionare aggiornamenti specifici. L'applicazione solo di una parte di un aggiornamento al sistema operativo dovrebbe costituire un'eccezione alla prassi standard di eseguire l'intero aggiornamento. 

Potresti voler installare pacchetti selezionati da un rilascio recente, lasciando al contempo il sistema bloccato sulla versione di rilascio originale.

Puoi utilizzare `dnf check-update` per identificare i pacchetti di cui vuoi eseguire l'aggiornamento.

```
$ sudo dnf check-update --releasever=latest --security
Amazon Linux 2023 repository                     13 MB/s |  10 MB     00:00
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 02:52:21 AM UTC.

bind-libs.aarch64                  32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-license.noarch                32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-utils.aarch64                 32:9.16.27-1.amzn2023.0.1         amazonlinux
cryptsetup.aarch64                 2.4.3-2.amzn2023.0.1              amazonlinux
cryptsetup-libs.aarch64            2.4.3-2.amzn2023.0.1              amazonlinux
curl-minimal.aarch64               7.85.0-1.amzn2023.0.1             amazonlinux
glibc.aarch64                      2.34-40.amzn2023.0.2              amazonlinux
glibc-all-langpacks.aarch64        2.34-40.amzn2023.0.2              amazonlinux
glibc-common.aarch64               2.34-40.amzn2023.0.2              amazonlinux
glibc-locale-source.aarch64        2.34-40.amzn2023.0.2              amazonlinux
gmp.aarch64                        1:6.2.1-2.amzn2023.0.1            amazonlinux
gnupg2-minimal.aarch64             2.3.7-1.amzn2023.0.2              amazonlinux
gzip.aarch64                       1.10-5.amzn2023.0.1               amazonlinux
kernel.aarch64                     6.1.12-17.42.amzn2023             amazonlinux
kernel-tools.aarch64               6.1.12-17.42.amzn2023             amazonlinux
libarchive.aarch64                 3.5.3-2.amzn2023.0.1              amazonlinux
libcurl-minimal.aarch64            7.85.0-1.amzn2023.0.1             amazonlinux
libsepol.aarch64                   3.4-3.amzn2023.0.2                amazonlinux
libsolv.aarch64                    0.7.22-1.amzn2023.0.1             amazonlinux
libxml2.aarch64                    2.9.14-1.amzn2023.0.1             amazonlinux
logrotate.aarch64                  3.20.1-2.amzn2023.0.2             amazonlinux
lua-libs.aarch64                   5.4.4-3.amzn2023.0.1              amazonlinux
lz4-libs.aarch64                   1.9.4-1.amzn2023.0.1              amazonlinux
openssl.aarch64                    1:3.0.5-1.amzn2023.0.3            amazonlinux
openssl-libs.aarch64               1:3.0.5-1.amzn2023.0.3            amazonlinux
pcre2.aarch64                      10.40-1.amzn2023.0.1              amazonlinux
pcre2-syntax.noarch                10.40-1.amzn2023.0.1              amazonlinux
rsync.aarch64                      3.2.6-1.amzn2023.0.2              amazonlinux
vim-common.aarch64                 2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-data.noarch                    2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-enhanced.aarch64               2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-filesystem.noarch              2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-minimal.aarch64                2:9.0.475-1.amzn2023.0.1          amazonlinux
xz.aarch64                         5.2.5-9.amzn2023.0.1              amazonlinux
xz-libs.aarch64                    5.2.5-9.amzn2023.0.1              amazonlinux
zlib.aarch64                       1.2.11-32.amzn2023.0.3            amazonlinux
```

Installa i pacchetti di cui vuoi eseguire l'aggiornamento. Usa `sudo dnf upgrade --releasever=latest` e i nomi dei pacchetti per assicurarti che il pacchetto `system-release` rimanga invariato.

```
$ sudo dnf upgrade --releasever=latest openssl openssl-libs
Last metadata expiration check: 0:01:28 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package          Arch        Version                     Repository       Size
================================================================================
Upgrading:
 openssl          aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     1.1 M
 openssl-libs     aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     2.1 M

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 3.2 M
```

**Nota**  
Usando `sudo dnf upgrade --releasever=latest` vengono aggiornati tutti i pacchetti, incluso `system-release`. Quindi, la versione rimane bloccata sul nuovo `system-release` a meno che non imposti l'override persistente.

## Uso dell'override persistente con aggiornamento deterministico
<a name="deterministic-upgrade-override-persist"></a>

**Nota**  
 Con gli aggiornamenti deterministici, puoi integrare le modifiche del sistema operativo nella tua CI/CD pipeline. La disabilitazione degli aggiornamenti deterministici elimina la possibilità di eseguire test prima della distribuzione. 

Invece di aggiungere`--releasever=latest`, è possibile utilizzare l'override persistente per *sbloccare* il sistema impostando il valore della variabile su. *latest* Utilizzandola sempre`latest`, questa opzione ripristina il comportamento del modello di AL2 aggiornamento, in base AL2023 al quale ogni chiamata al gestore di pacchetti controllerà *sempre* la versione più recente e non è limitata a nessuna versione specifica del sistema operativo.

**avvertimento**  
 Sbloccando il gestore di pacchetti utilizzando una sovrascrittura persistente degli aggiornamenti deterministici, correte il rischio di scoprire ogni possibile incompatibilità tra l'applicazione e un aggiornamento del sistema operativo in produzione.   
 Sebbene le incompatibilità *siano* rare, con un aggiornamento del sistema operativo si integrano nuove modifiche al codice nell'ambiente, i test di integrazione possono impedire l'implementazione di modifiche al codice che hanno un impatto negativo sugli ambienti di produzione. 

```
$ echo latest | sudo tee /etc/dnf/vars/releasever
latest
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:03:36 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                  aarch64 6.1.73-45.135.amzn2023       amazonlinux  24 M
Upgrading:
 acl                     aarch64 2.3.1-2.amzn2023.0.1         amazonlinux  72 k
 alternatives            aarch64 1.15-2.amzn2023.0.1          amazonlinux  36 k
 amazon-ec2-net-utils    noarch  2.3.0-1.amzn2023.0.1         amazonlinux  16 k
 at                      aarch64 3.1.23-6.amzn2023.0.1        amazonlinux  60 k
 attr                    aarch64 2.5.1-3.amzn2023.0.1         amazonlinux  59 k
 audit                   aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 249 k
 audit-libs              aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 116 k
 aws-c-auth-libs         aarch64 0.6.5-6.amzn2023.0.2         amazonlinux  79 k
 aws-c-cal-libs          aarch64 0.5.12-7.amzn2023.0.2        amazonlinux  34 k
 aws-c-common-libs       aarch64 0.6.14-6.amzn2023.0.2        amazonlinux 119 k
 aws-c-compression-libs  aarch64 0.2.14-5.amzn2023.0.2        amazonlinux  22 k
 aws-c-event-stream-libs aarch64 0.2.7-5.amzn2023.0.2         amazonlinux  47 k
 aws-c-http-libs         aarch64 0.6.8-6.amzn2023.0.2         amazonlinux 147 k
 aws-c-io-libs           aarch64 0.10.12-5.amzn2023.0.6       amazonlinux 109 k
 aws-c-mqtt-libs         aarch64 0.7.8-7.amzn2023.0.2         amazonlinux  61 k
 aws-c-s3-libs           aarch64 0.1.27-5.amzn2023.0.3        amazonlinux  54 k
 aws-c-sdkutils-libs     aarch64 0.1.1-5.amzn2023.0.2         amazonlinux  26 k
 aws-checksums-libs      aarch64 0.1.12-5.amzn2023.0.2        amazonlinux  50 k
 awscli-2                noarch  2.7.8-1.amzn2023.0.4         amazonlinux 7.3 M
 basesystem              noarch  11-11.amzn2023.0.1           amazonlinux 7.8 k
 bash                    aarch64 5.1.8-2.amzn2023.0.1         amazonlinux 1.6 M
 bash-completion         noarch  1:2.11-2.amzn2023.0.1        amazonlinux 292 k
 bc                      aarch64 1.07.1-14.amzn2023.0.1       amazonlinux 120 k
 bind-libs               aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 1.2 M
 bind-license            noarch  32:9.16.27-1.amzn2023.0.1    amazonlinux  14 k
 bind-utils              aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 206 k
 binutils                aarch64 2.38-20.amzn2023.0.3         amazonlinux 4.6 M
 boost-filesystem        aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  55 k
 boost-system            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  14 k
 boost-thread            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  54 k
 bzip2                   aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  53 k
 bzip2-libs              aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  44 k
 c-ares                  aarch64 1.17.2-1.amzn2023.0.1        amazonlinux 107 k
 ca-certificates         noarch  2021.2.50-1.0.amzn2023.0.3   amazonlinux 343 k
 checkpolicy             aarch64 3.4-3.amzn2023.0.1           amazonlinux 345 k
 chkconfig               aarch64 1.15-2.amzn2023.0.1          amazonlinux 162 k
 chrony                  aarch64 4.2-7.amzn2023.0.4           amazonlinux 314 k
 cloud-init              noarch  22.2.2-1.amzn2023.1.7        amazonlinux 1.1 M
 cloud-utils-growpart    aarch64 0.31-8.amzn2023.0.2          amazonlinux  31 k
 coreutils               aarch64 8.32-30.amzn2023.0.2         amazonlinux 1.1 M
 coreutils-common        aarch64 8.32-30.amzn2023.0.2         amazonlinux 2.0 M
 cpio                    aarch64 2.13-10.amzn2023.0.1         amazonlinux 269 k
 cracklib                aarch64 2.9.6-27.amzn2023.0.1        amazonlinux  83 k
 cracklib-dicts          aarch64 2.9.6-27.amzn2023.0.1        amazonlinux 3.6 M
 crontabs                noarch  1.11-24.20190603git.amzn2023.0.1
                                                              amazonlinux  19 k
 crypto-policies         noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  61 k
 crypto-policies-scripts noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  81 k
...
Installing dependencies:
 amazon-linux-repo-cdn   noarch  2023.0.20230210-0.amzn2023   amazonlinux  16 k
 xxhash-libs             aarch64 0.8.0-3.amzn2023.0.1         amazonlinux  32 k
Installing weak dependencies:
 amazon-chrony-config    noarch  4.2-7.amzn2023.0.4           amazonlinux  14 k
 gawk-all-langpacks      aarch64 5.1.0-3.amzn2023.0.1         amazonlinux 207 k

Transaction Summary
================================================================================
Install    5 Packages
Upgrade  413 Packages

Total download size: 199 M
```

**Nota**  
Se hai usato la variabile di override `/etc/dnf/vars/releasever`, utilizza il comando seguente per ripristinare il comportamento di blocco predefinito cancellando il valore di override.  

```
$ sudo rm /etc/dnf/vars/releasever
```

 L'uso di un override persistente `latest` rispetto a una versione specifica è simile al comportamento predefinito di. AL2 Esistono servizi che AMIs si basano sui AL2 quali disabilitano questo comportamento e si limitano a versioni di pacchetti specifiche, come quelle impostate di default. AL2023 

 Piuttosto che disabilitare gli aggiornamenti deterministici, consigliamo di sostituire le istanze con altre avviate da una nuova AMI. Se la sostituzione delle istanze non è un'opzione, consigliamo di utilizzare strumenti come [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) per orchestrare l'applicazione degli aggiornamenti in un parco istanze. [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder può anche creare, applicare patch e testare automaticamente le AMIs proprie immagini AL2023 derivate dalle immagini di base. Puoi anche [Ricevi notifiche sui nuovi aggiornamenti](receive-update-notification.md) utilizzarlo per attivare le tue pipeline di costruzione AMI. 

 L'utilizzo `latest` in un ambiente di preproduzione e la successiva distribuzione in produzione `latest` *non* forniscono protezione da eventuali problemi tra un aggiornamento del sistema operativo e l'applicazione. Una nuova AL2023 versione può essere rilasciata in qualsiasi momento, pertanto tutti gli utilizzi `latest` in produzione comportano dei rischi. 