

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de actualizaciones deterministas a través de repositorios versionados
<a name="deterministic-upgrades-usage"></a>

**Topics**
+ [Uso de un sistema determinista mejorado](#using-a-deterministic-upgraded-system)
+ [Actualización selectiva de un sistema determinista actualizado](#deterministic-upgrade-selective-update)
+ [Uso de la anulación persistente con una actualización determinista](#deterministic-upgrade-override-persist)

## Uso de un sistema determinista mejorado
<a name="using-a-deterministic-upgraded-system"></a>

**nota**  
 El comportamiento predeterminado del administrador de paquetes ha cambiado de AL2. 

 Las actualizaciones deterministas son una forma eficaz de garantizar que todos los cambios en los entornos de producción puedan probarse exhaustivamente antes de una implementación generalizada. Cada AL2023 AMI nueva está bloqueada a una versión concreta de AL2023. Esto proporciona un comportamiento determinista de las versiones de los paquetes del sistema operativo que se instalan al lanzar la AMI específica. Las actualizaciones locales pueden ser para una versión de lanzamiento específica, lo que garantiza un comportamiento determinista en toda la flota. A medida que vaya pasando a una versión nueva AMIs o a una versión actualizada, podrá probar cada una de ellas en CI/CD proceso y detectar cualquier posible problema antes de implementarlas en entornos de producción. 

 Puede utilizar herramientas como el [administrador de parches AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) para organizar la aplicación de las actualizaciones en toda la flota. Para compilaciones derivadas AMIs cuando AL2023 AMIs se lanzan nuevas, [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder puede compilar, parchear y AMIs probar automáticamente, o [Recibir notificaciones sobre nuevas actualizaciones](receive-update-notification.md) puede saber cuándo hay nuevas AMIs bases disponibles o activar sus propias canalizaciones de creación de AMI. 

 Para obtener información sobre cómo restringir las actualizaciones a las de un aviso concreto, consulte [Aplicación de actualizaciones de seguridad in situ](security-inplace-update.md) 

 Para aplicar los parches in situ, puede utilizar el administrador de paquetes `dnf`. Al ejecutar el comando `dnf upgrade`, el sistema comprueba si hay actualizaciones en el repositorio que especifica la variable `releasever`. Una versión válida `releasever` es una versión con fecha *latest* o una versión con fecha, por ejemplo. *2023.10.20260325*

Puede cambiar el valor de `releasever` mediante uno de los métodos siguientes. Estos métodos se muestran en orden descendente de prioridad del sistema. Esto significa que el método 1 anula los métodos 2 y 3, y el método 2 anula el método 3.

1. El valor de la marca de línea de comandos, `--releasever=latest`, si se usa.

1. El valor que se especifica en el archivo de variables de anulación `/etc/dnf/vars/releasever`, si está establecido.

1. La versión del paquete `system-release` actualmente instalado.

En el siguiente ejemplo, la versión es: *2023.0.20230210*

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

En un sistema recién instalado, la variable de anulación no está presente. No hay actualizaciones disponibles porque el sistema está bloqueado en la versión instalada de `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!
```

Puede obtener paquetes de una versión específica con la marca `releasever` para proporcionar la versión que desee.

```
$ 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
```

Como la opción `--releasever` anula ambas, `system-release` y `/etc/dnf/vars/releasever`, el resultado de esta actualización es el siguiente:

1. La actualización reemplaza todos los paquetes instalados que cambiaron entre la versión anterior y la nueva.

1. La actualización bloquea el sistema en el repositorio de la nueva versión de`system-release`.

 Al especificar siempre a qué AL2023 versión `releasever` (es decir, a qué versión) se debe actualizar, se obtiene un conjunto determinista de cambios en la flota. Lanzó la versión*A*, la actualizó y*B*, a continuación, la actualizó a*C*. 

## Actualización selectiva de un sistema determinista actualizado
<a name="deterministic-upgrade-selective-update"></a>

**nota**  
 Se recomienda instalar todas las actualizaciones de una nueva versión en lugar de seleccionar actualizaciones específicas. Aplicar solo una parte de una actualización al sistema operativo debería ser una excepción a la práctica habitual de realizar la actualización completa. 

Es posible que desee instalar algunos paquetes de una versión reciente y, al mismo tiempo, dejar el sistema bloqueado en la versión original.

Puede utilizar `dnf check-update` para identificar los paquetes que desee actualizar.

```
$ 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
```

Instale los paquetes que desee actualizar. Utilice `sudo dnf upgrade --releasever=latest` y los nombres de los paquetes para asegurarse de que el paquete `system-release` permanezca inalterado.

```
$ 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**  
El uso de `sudo dnf upgrade --releasever=latest` actualiza todos los paquetes, incluido `system-release`. Después, la versión permanece bloqueada con el nuevo `system-release` a menos que establezca la anulación persistente.

## Uso de la anulación persistente con una actualización determinista
<a name="deterministic-upgrade-override-persist"></a>

**nota**  
 Con las actualizaciones deterministas, puede integrar los cambios del sistema operativo en su CI/CD proceso. Al deshabilitar las actualizaciones deterministas, se elimina la posibilidad de realizar pruebas antes de implementarlas. 

En lugar de añadir`--releasever=latest`, puedes usar la anulación persistente para *desbloquear* el sistema estableciendo el valor de la variable en. *latest* Si se usa siempre`latest`, se revierte el comportamiento del AL2023 modelo de AL2 actualización, en el que cualquier llamada al administrador de paquetes *siempre* busca la versión más reciente y no está limitada a ninguna versión específica del sistema operativo.

**aviso**  
 Al desbloquear el administrador de paquetes mediante una anulación persistente de las actualizaciones deterministas, se corre el riesgo de descubrir cualquier posible incompatibilidad entre la aplicación y una actualización del sistema operativo en fase de producción.   
 Si bien las incompatibilidades *son* poco frecuentes, con una actualización del sistema operativo se integran nuevos cambios de código en el entorno, las pruebas de integración pueden impedir la implementación de cambios de código que tengan un impacto negativo en los entornos de producción. 

```
$ 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**  
Si ha utilizado la variable de anulación `/etc/dnf/vars/releasever`, utilice el siguiente comando para restablecer el comportamiento de bloqueo predeterminado borrando el valor de anulación.  

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

 El uso de una modificación persistente para utilizar una versión `latest` en lugar de una específica es similar al comportamiento predeterminado de. AL2 Hay servicios que se crean en AMIs función de los AL2 cuales se deshabilita este comportamiento y se limitan a versiones de paquetes específicas, como las que se utilizan de forma predeterminada. AL2023 

 En lugar de deshabilitar las actualizaciones deterministas, recomendamos reemplazar las instancias por otras lanzadas desde una AMI nueva. Si el reemplazo de instancias no es una opción, le recomendamos que utilice herramientas como el [administrador de parches AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) para organizar la aplicación de las actualizaciones en toda la flota. [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder también puede crear, aplicar parches y probar automáticamente sus AMIs propias imágenes AL2023 derivadas de las imágenes base. También puede usar [Recibir notificaciones sobre nuevas actualizaciones](receive-update-notification.md) para activar sus propias canalizaciones de creación de AMI. 

 El uso de `latest` en un entorno de preproducción y, posteriormente, su implementación en producción con `latest` *no* proporciona protección contra ningún problema entre una actualización del sistema operativo y la aplicación. Una nueva AL2023 versión puede publicarse en cualquier momento y, por lo tanto, todos los usos de la versión `latest` en producción conllevan riesgos. 