

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan peningkatan Deterministik melalui repositori berversi
<a name="deterministic-upgrades-usage"></a>

**Topics**
+ [Menggunakan sistem upgrade deterministik](#using-a-deterministic-upgraded-system)
+ [Pembaruan selektif dari sistem upgrade deterministik](#deterministic-upgrade-selective-update)
+ [Menggunakan penggantian persisten dengan peningkatan deterministik](#deterministic-upgrade-override-persist)

## Menggunakan sistem upgrade deterministik
<a name="using-a-deterministic-upgraded-system"></a>

**catatan**  
 Perilaku default manajer paket telah berubah dari AL2. 

 Peningkatan deterministik adalah cara ampuh untuk memastikan semua perubahan pada lingkungan produksi dapat sepenuhnya diuji sebelum penerapan luas. Setiap AL2023 AMI baru dikunci ke versi tertentu AL2023. Ini memberikan perilaku deterministik tentang versi paket OS apa yang diinstal saat meluncurkan AMI tertentu. Pembaruan di tempat dapat dilakukan untuk versi rilis tertentu, memastikan perilaku deterministik di seluruh armada. Saat beralih ke versi pembaruan baru AMIs atau di tempat, Anda dapat menguji masing-masing versi di CI/CD pipeline, menangkap potensi masalah apa pun sebelum menerapkan ke lingkungan produksi. 

 Anda dapat menggunakan alat seperti [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) untuk mengatur penerapan pembaruan di seluruh armada. Untuk bangunan yang diturunkan AMIs saat baru AL2023 AMIs dirilis, [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder dapat secara otomatis membangun, menambal, dan AMIs menguji, atau Anda [Menerima pemberitahuan tentang pembaruan baru](receive-update-notification.md) dapat mengetahui kapan AMIs basis baru tersedia, atau untuk memicu pipeline bangunan AMI Anda sendiri. 

 Untuk informasi tentang membatasi pembaruan untuk pembaruan dari penasihat tertentu, lihat [Menerapkan pembaruan keamanan di tempat](security-inplace-update.md) 

 Untuk menambal di tempat, Anda dapat menggunakan manajer `dnf` paket. Saat Anda menjalankan `dnf upgrade` perintah, sistem memeriksa peningkatan di repositori yang ditentukan oleh variabel. `releasever` Valid `releasever` adalah salah satu *latest* atau versi yang dicap tanggal seperti. *2023.10.20260325*

Anda dapat mengubah nilai `releasever` menggunakan salah satu metode berikut. Metode-metode ini tercantum dalam prioritas sistem menurun. Ini berarti bahwa metode 1 mengesampingkan metode 2 dan 3, dan metode 2 mengesampingkan metode 3.

1. Nilai dalam bendera baris perintah`--releasever=latest`,, jika digunakan.

1. Nilai yang ditentukan dalam file variabel override,`/etc/dnf/vars/releasever`, jika disetel.

1. Versi `system-release` paket yang saat ini diinstal.

Dalam contoh berikut, versinya adalah*2023.0.20230210*:

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

Dalam sistem yang baru diinstal, variabel override tidak ada. Tidak ada peningkatan yang tersedia karena sistem dikunci ke versi yang diinstal. `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!
```

Anda bisa mendapatkan paket versi tertentu dengan menggunakan `releasever` bendera untuk menyediakan versi yang Anda inginkan.

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

Karena `--releasever` opsi mengesampingkan keduanya `system-release` dan`/etc/dnf/vars/releasever`, hasil dari peningkatan ini adalah sebagai berikut:

1. Upgrade menggantikan semua paket yang diinstal yang berubah antara versi sebelumnya dan yang baru.

1. Upgrade mengunci sistem ke repositori untuk versi baru. `system-release`

 Dengan selalu menentukan apa `releasever` (yaitu AL2023 rilis) yang akan diperbarui, Anda memiliki serangkaian perubahan deterministik di seluruh armada. Anda meluncurkan versi*A*, diperbarui ke*B*, dan kemudian diperbarui ke*C*. 

## Pembaruan selektif dari sistem upgrade deterministik
<a name="deterministic-upgrade-selective-update"></a>

**catatan**  
 Kami menyarankan agar semua pembaruan dalam rilis baru diinstal daripada memilih pembaruan tertentu. Hanya menerapkan bagian dari pembaruan ke OS harus menjadi pengecualian untuk praktik standar mengambil seluruh pembaruan. 

Anda mungkin ingin menginstal paket yang dipilih dari rilis terbaru, sambil membiarkan sistem terkunci ke versi rilis asli.

Anda dapat menggunakan `dnf check-update` untuk mengidentifikasi paket yang ingin Anda upgrade.

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

Instal paket yang ingin Anda tingkatkan. Gunakan `sudo dnf upgrade --releasever=latest` dan nama paket untuk memastikan bahwa `system-release` paket tetap tidak berubah.

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

**catatan**  
Menggunakan `sudo dnf upgrade --releasever=latest` pembaruan semua paket, termasuk`system-release`. Kemudian, versi tetap terkunci ke yang baru `system-release` kecuali Anda mengatur penggantian persisten.

## Menggunakan penggantian persisten dengan peningkatan deterministik
<a name="deterministic-upgrade-override-persist"></a>

**catatan**  
 Dengan pembaruan deterministik, Anda dapat mengintegrasikan perubahan OS ke dalam CI/CD pipeline Anda. Menonaktifkan pembaruan deterministik menghilangkan kemampuan untuk menguji sebelum menerapkan. 

Alih-alih menambahkan`--releasever=latest`, Anda dapat menggunakan penggantian persisten untuk *membuka kunci* sistem dengan menyetel nilai variabel ke*latest*. Dengan selalu menggunakan`latest`, ini mengembalikan perilaku AL2023 ke model AL2 pembaruan, di mana setiap panggilan ke manajer paket akan *selalu* melihat rilis terbaru, dan tidak dikunci ke versi OS tertentu.

**Awas**  
 Dengan membuka kunci manajer paket dengan menggunakan penggantian pembaruan deterministik yang terus-menerus, Anda mengambil risiko menemukan kemungkinan ketidakcocokan antara aplikasi Anda dan pembaruan OS dalam produksi.   
 Meskipun tidak kompatibel *jarang* terjadi, dengan pembaruan OS Anda mengintegrasikan perubahan kode baru ke lingkungan Anda, pengujian integrasi dapat mencegah penerapan perubahan kode yang berdampak negatif pada lingkungan produksi. 

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

**catatan**  
Jika Anda menggunakan variabel override`/etc/dnf/vars/releasever`, gunakan perintah berikut untuk mengembalikan perilaku penguncian default dengan menghapus nilai override.  

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

 Penggunaan penggantian persisten untuk menggunakan `latest` daripada versi specfiic mirip dengan perilaku default. AL2 Ada layanan yang AMIs dibuat berdasarkan AL2 yang menonaktifkan perilaku ini, dan mengunci ke versi paket tertentu seperti yang Anda dapatkan secara default AL2023. 

 Daripada menonaktifkan pembaruan deterministik, sebaiknya ganti instans dengan yang diluncurkan dari AMI baru. Jika penggantian instance bukan pilihan, sebaiknya gunakan alat seperti [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) untuk mengatur penerapan pembaruan di seluruh armada. [EC2 Image](https://docs.aws.amazon.com/imagebuilder/latest/userguide/) Builder juga dapat secara otomatis membangun, menambal, dan menguji gambar Anda AMIs sendiri yang berasal AL2023 dari gambar dasar. Anda juga [Menerima pemberitahuan tentang pembaruan baru](receive-update-notification.md) dapat digunakan untuk memicu pipa bangunan AMI Anda sendiri. 

 Menggunakan `latest` dalam lingkungan pra-produksi, dan kemudian menerapkan ke produksi menggunakan `latest` *tidak* memberikan perlindungan dari masalah apa pun antara pembaruan OS dan aplikasi Anda. AL2023 Rilis baru dapat dilakukan kapan saja, dan dengan demikian semua penggunaan `latest` dalam produksi membawa risiko. 