Действительно ли сборки Ubuntu детерминированы? Почему нет?

Действительно ли сборки Ubuntu детерминированы? Я предположил, что они, то есть, если я воссоздам процесс создания установочного носителя Ubuntu, то я получу то же изображение, (поразрядно, с теми же контрольными суммами) как та на зеркалах Ubuntu.

Недавнее сообщение Joanna Rutkowska (ведущий разработчик Qubes дистрибутив ОС) предполагает, что это не так:

в настоящее время большинство проектов, включая все дистрибутивы Linux, не создает детерминировано

Почему нет?

2
задан 13 April 2017 в 15:23

2 ответа

Нет они не. Давайте разъясним различие здесь,

  • Система поддерживает "восстанавливаемые сборки"?

    Да все системы поддерживают пакеты, которые детерминированы.

  • Система осуществляет "восстанавливаемые сборки"?

    Нет, хотя это действительно помогает диагностировать проблемы, и работы делаются для создания пакетов восстанавливаемыми - об ошибках сообщают и обрабатывают так или иначе.

  • Все, без исключения, восстанавливаемого?

    Даже не близко.

Теперь давайте определим "восстанавливаемые сборки"

Сборка восстанавливаема, если дали тот же исходный код, среда сборки и инструкции по сборке, любая сторона может воссоздать поразрядные идентичные копии всех указанных артефактов.

Соответствующие атрибуты среды сборки, инструкций по сборке и исходного кода, а также ожидаемых восстанавливаемых артефактов определяются авторами или дистрибьюторами. Артефакты сборки являются частями результатов сборки, которые являются желаемым основным выводом.

Теперь давайте говорить о том, что требуется

Проверьте эту страницу под "Как", который устанавливает три критерия

  1. система сборки должна быть сделана совершенно детерминированной: преобразование данного источника должно всегда создавать тот же результат. Как правило, текущая дата и время не должна быть зарегистрирована и произведена, всегда должен писаться в том же порядке.

  2. набор инструментов раньше выполнял сборку, и в более общем плане среда сборки должна или быть зарегистрирована или предопределена.

  3. пользователям нужно дать способ воссоздать достаточно близкую сборку 3., выполните процесс сборки и проверьте, что вывод соответствует исходной сборке.

Можно найти больше документации обо всем этом здесь.

Относительно того, почему Ubuntu не в настоящее время восстанавливаема, вещи как Perl в настоящее время перестали работать потому что -V хранит компилятор args для удобства - они ожидают на GCC для исправления этого восходящего потока. Большая эта функциональность могла, просто уничтожил. Некоторые другие проблемы: некоторым страницам справочника и программам скомпилировали даты сборки в, другие компилируют в изменяемых путях к общим библиотекам и т.п..

Не быть восстанавливаемым не проблема или уязвимость. Это просто мешает проверять, что в Вас не вмешались, и в настоящее время что функциональность просматривается как более ценная.

Можно следовать за успехом Debian к детерминизму здесь

0
ответ дан 3 December 2019 в 06:15

Для начала, я не думаю, что Rutkowska говорила о создании установочного носителя детерминировано, но о пакетах (deb, об/мин).

Debian работает над созданием пакетов восстанавливаемо ( https://wiki.debian.org/ReproducibleBuilds), но существует все еще много пакетов, которые не создают тот путь...

Здание целое распределение детерминировано, конечно, является еще большим количеством проблемы.

-1
ответ дан 3 December 2019 в 06:15

Другие вопросы по тегам:

Похожие вопросы: