Есть ли альтернативы Gitian?

Мне нравится, как Bitcoin Core использует Gitian, чтобы сделать свои сборки детерминированными. Но Gitian также является очень сложным обходным путем. Проводятся ли какие-либо исследования альтернатив для детерминированных сборок?

Ответы (1)

Таким образом, наличие детерминированной/воспроизводимой системы сборки — это скорее практика разработки программного обеспечения, чем отдельная часть программного обеспечения, такая как Gitian. Существует множество проектов, которые пытаются реализовать эту практику, которые перечислены ниже:

https://reproducible-builds.org/who/

Gitian обрабатывает детерминированное построение через виртуальную машину, а затем загружает и сравнивает подписи через git. Однако детерминированное построение невозможно автоматизировать для всего набора программного обеспечения из-за большого количества вещей, которые могут привести к тому, что скомпилированный код будет отличаться (например, прочитайте https://wiki.debian.org/ReproducibleBuilds/Howto или https: //blog.torproject.org/blog/deterministic-builds-part-two-technical-details, где они описывают конкретные проблемы воспроизводимых сборок в своих конкретных проектах). Таким образом, в конце концов, часть воспроизводимого процесса сборки заключается в ручном поиске всех вещей, которые могут привести к тому, что двоичные файлы отличаются, и их исправлении.

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

Для небольших проектов то, что вам нужно, зависит от программных библиотек, с которыми вы работаете, и от того, для какой ОС вы распространяете. Например, в Debian есть свои воспроизводимые инструменты сборки . Вы можете использовать https://diffoscope.org/ для определения конкретных различий в ваших двоичных файлах.