Для чего нужен параметр -J n в GCC?

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

  • Метаданные, такие как право собственности, временные метки и т. Д., Могут отличаться. Чтобы получить воспроизводимый tar-архив, у вас должны быть те же права собственности, права доступа и временные метки. Убедитесь, что вы скопировали все метаданные (если у вас идентичное содержимое файла с разными метаданными, может помочь cp -a --attributes-only ). В GNU tar есть несколько опций, которые вы можете использовать для игнорирования определенных атрибутов:

    • - numeric-owner хранит только числовые идентификаторы пользователей и групп, но не имена.
    • - владелец и - группа принудительно записывают файлы под определенным пользователем и группой соответственно (например, - owner = 0 --group = 0 для записывать все файлы как принадлежащие корню).
    • - set-mtime позволяет сохранять все файлы с определенной меткой времени вместо реальной.
  • Порядок, в котором хранятся файлы, может отличаться. Большинство файловых систем не дают никаких конкретных гарантий относительно порядка, в котором файлы перечислены в каталоге, и tar перечисляет их по мере их поступления. (Вы можете увидеть порядок с помощью ls -U .) В GNU tar 1.28 появилась новая опция - sort = name . В более старых версиях или других реализациях вы можете получить воспроизводимый порядок файлов, построив отсортированный список имен файлов и передав его в tar:

     find. -print0 | LC_ALL = C sort -z | tar --no-recursion -Jcf ../archive.tar.xz -T - 
     

Возможно, вас заинтересует вики-страница Debian о воспроизводимых сборках .

1
04.06.2016, 02:19
0 ответов

Теги

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