Найдите файлы, связанные с программным обеспечением - PullRequest
1 голос
/ 16 февраля 2010

У меня есть одно сомнение. Я делаю проект, связанный с концепцией восстановления системы в Linux. Там я планирую выполнить откат приложения в случае сбоя. Есть ли способ выяснить, какие файлы используются приложением в системе?

Ok. Я сделаю это немного ясным. Например, рассмотрим приложение Firefox. Когда он установлен, многие файлы записываются из файла .deb в такие папки, как / etc, / usr, / opt и т. Д. В Windows все файлы устанавливаются в одну папку в программных файлах, а в linux нет. Так есть ли способ выяснить файлы, которые принадлежат программному обеспечению?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 16 февраля 2010

Ну, это может охватывать несколько вещей.

Если вы имеете в виду, какие файлы предоставляются при установке вашего приложения?Тогда ответ таков: используйте достойное управление пакетами, предоставьте свое программное обеспечение в виде пакета rpm / deb / ... независимо от пакета, а все остальное позаботится об удалении.

Если вы имеете в виду, на какие библиотеки ссылаютсянаше приложение?Затем вы можете использовать ldd, это скажет вам, какие динамические библиотеки используются при выполнении этого приложения.

Если вы имеете в виду, какие файлы активно использует мое приложение?Затем посмотрите на вывод lsof (lsof = список открытых файлов) (или, альтернативно, ls / proc // fd /), он покажет все файловые дескрипторы, открытые вашим приложением (файлы, сокеты, каналы, tty's, ...)

Или вы можете использовать все вышеперечисленное.

Одна вещь, которую вы не можете отследить (если вы не регистрируете это самостоятельно), это какие файлы были созданы вашим приложением за время его существования.

1 голос
/ 16 февраля 2010

Чтобы определить все файлы, установленные вместе с приложением, зависит от менеджера пакетов. Все, с кем я имел дело (apt, pacman), имели такую ​​возможность.

Чтобы определить все файлы, открытые в данный момент приложением, используйте lsof.

0 голосов
/ 16 февраля 2010

Если вы используете дистрибутив на основе RPM

# rpm -Uvh --repackage pkg-1-1.i386.rpm

упакует старые файлы и обновит транзакцию, чтобы вы могли позже выполнить откат, если что-то пошло не так Откат ко вчерашнему состоянию например

# rpm -Uvh --rollback yesterday

См. эту статью для других примеров.

0 голосов
/ 16 февраля 2010

Ну, это зависит ...

Большинство систем Linux имеют какое-то программное обеспечение для управления пакетами, например, aptitude в debian и ubuntu. Там у вас есть информация о том, что принадлежит пакету. Вы могли бы использовать эту информацию. Это не распространяется на файлы, созданные во время выполнения приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...