Π’ Arch Linux обСспСчСна воспроизводимая сборка ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Дистрибутив Arch Linux обСспСчил Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ сборку ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ поставляСмыС Π² ΠΎΠ±Ρ€Π°Π·Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ собраны ΠΈΠ· прСдоставляСмого исходного ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ содСрТат скрытых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ВоспроизводимыС ΠΎΠ±Ρ€Π°Π·Ρ‹ Arch Linux Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Docker Hub с Ρ‚Π΅Π³ΠΎΠΌ repro. Π›ΡŽΠ±ΠΎΠΉ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π±ΠΈΡ‚ Π² Π±ΠΈΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с распространяСмыми ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ, ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ сборочная инфраструктура дистрибутива, компилятор ΠΈ сборочный инструмСнтарий Π½Π΅ скомпромСтированы.

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ воспроизводимых сборок ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соотвСтствиС зависимостСй; использованиС Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ состава ΠΈ вСрсий сборочного инструмСнтария; ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ†ΠΈΠΉ ΠΈ настроСк ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ; сохранСниС порядка сборки Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки); ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ добавлСния компилятором нСпостоянной слуТСбной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ случайныС значСния, ссылки Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄Π°Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сборки. На Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сборок Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΡŽΡ‚ ошибки ΠΈ состояния Π³ΠΎΠ½ΠΊΠΈ Π² инструмСнтарии.

ВоспроизводимыС ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для обСспСчСния ΠΏΠΎΠ»Π½ΠΎΠΉ воспроизводимости Π² ΠΈΡ… состав Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊΠ»ΡŽΡ‡ΠΈ для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° pacman. ΠŸΡ€ΠΈ нСобходимости обновлСния ΠΈΠ»ΠΈ установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· pacman Π² Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·Π°Ρ… трСбуСтся запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для пСрСсоздания Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (Β«pacman-key β€”init && pacman-key β€”populate archlinuxΒ»). Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ идСнтичности собствСнной сборки с распространяСмым Ρ‡Π΅Ρ€Π΅Π· Docker Hub ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ…ΡΡˆΠΈ, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«podman inspect β€”format β€˜{{.Digest}}’ <image>Β», ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ diffoci.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ