Что такое детерминированная сборка?
Детерминированная сборка — это процесс сборки одного и того же исходного кода с одной и той же средой и инструкциями сборки, при котором создаются одни и те же двоичные файлы в любом случае, даже если они сделаны на разных машинах, в разных каталогах и с разными именами. Такие сборки также иногда называют воспроизводимыми или герметичными сборками, если гарантируется, что они будут создавать одни и те же двоичные файлы даже при компиляции из разных папок.
Детерминированные сборки не являются чем-то, что происходит само собой. Они не создаются в обычных проектах, и причины, по которым этого не происходит, могут быть разными для каждой операционной системы или компилятора.
Детерминированные сборки должны быть гарантированы для заданной среды сборки. Это означает, что некоторые переменные, такие как операционная система, версии системы сборки и целевая архитектура, предположительно остаются одинаковыми в разных сборках.
В последние годы различные организации, такие как Chromium, Reproducible builds или Yocto, предпринимали много усилий для достижения детерминированных сборок. |