Как я могу сравнить файловые структуры до и после установки программного обеспечения?

Я пишу новую формулу для Homebrew для некоторого программного обеспечения, которое я поддерживаю, и в рамках моего тестирования я хотел бы убедиться, что файлы добавляются только в правильные места при установке и что все файлы удаляются при удалении.

Как лучше всего сравнивать файловые структуры до и после тестовой установки и удаления?

Очевидно, это не то, о чем вы просили, но все же полезно для аналогичной задачи «lsbom».

Ответы (3)

В терминале я могу выбрать два варианта:

  1. ls -R.

  2. tree directory-name/(после его установки; т.е. brew install tree). Косая черта в конце сохраняет отображение специальных символов в файле, в котором сохраняется вывод.

В обоих случаях вы перенаправляете вывод в файл до и после установки и сравниваете два файла, возможно, используя Apple FileMerge.app, поставляемый с Xcode.

Мне нравится использовать «найти» и «шасум» для такого рода задач. Два разных вызова, 1 для структуры и другой для sha-1 файлов:

find -s /path/to/directory -ls > files-before.txt
find -s /path/to/directory -type f -exec shasum \{} \+ >> files-before.txt

Запустите свои установки/удаления, а затем используйте тот же процесс для «files-after.txt». Затем

diff files-before.txt files-after.txt

Два способа приходят мне в голову:

  • fseventer — это приложение, которое использует платформу Apple FSEvents для наблюдения за изменением файловой системы в реальном времени. Обязательно прочитайте предупреждения и предостережения на сайте разработчика.
  • Сделайте копию соответствующих каталогов (в удобное место, например, на рабочий стол) перед выполнением действия. Затем вы можете использовать FileMerge (поставляется с утилитами разработчика) для сравнения каталогов.