Автор делится опытом работы с MacBook как с основной машиной для разработки, используя Linux на рабочих серверах. Проблема возникает при переносе архивов из macOS на Linux: команда tar выбрасывает предупреждения о неизвестных заголовках атрибутов. В логах появляются сообщения вроде tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.quarantine' или 'LIBARCHIVE.xattr.com.apple.metadata:kMDItemTextContentLanguage'. Эти строки появляются из-за создания дополнительных файлов с именами, начинающимися на '.', которые дублируют реальные данные и создают неудобства. На macOS встроенная утилита bsdtar добавляет лишние метаданные, что приводит к ошибкам при распаковке на серверах.
Решить проблему можно тремя способами. Первый вариант самый простой: при создании архива добавить флаг --no-xattrs в команду. Это предотвратит сохранение лишних атрибутов расширений. Второй метод похож — использовать флаг --disable-copyfile вместо копирования файловых атрибутов. Оба приема гарантируют чистую структуру архива без лишних файлов на Linux. Третий, более фундаментальный способ — заменить стандартный архиватор bsdtar на GNU tar. Для этого нужно установить пакет gnu-tar через Homebrew командой brew install gnu-tar.
Программисты должны проверить текущую версию с помощью команды tar --version, чтобы убедиться, что используется bsdtar. После установки GNU версии нужно указать её в качестве стандартной, изменив переменную PATH в файле ~/.bash_profile. Для машин на процессорах Apple Silicon M1-M4 путь будет другим: /opt/homebrew/opt/gnu-tar/libexec/gnubin, а для процессоров Intel — /usr/local/opt/gnu-tar/libexec/gnubin. Сохранив изменения в файле конфигурации и перезапустив терминал, пользователь делает GNU tar дефолтным инструментом. Теперь команды без дополнительных флагов будут работать корректно. Распаковка архивов на Linux серверах станет чистой, предупреждения исчезнут, а производительность обработки данных вырастет благодаря отсутствию обработки лишних метаданных.