В Windows, особенно в старых версиях, программы обычно хранили файлы конфигурации и непостоянные данные в своем C:\Program Filesкаталоге. Это происходит от того, как программы обычно устанавливались и запускались в однопользовательской, не сетевой, DOS-папке без прав доступа.
С точки зрения безопасности это плохая идея. Места, где живет исполняемый код, должны быть отделены от изменяемых данных. Таким образом, проще применять соответствующие разрешения для файлов, чтобы предотвратить изменение установленных двоичных файлов неавторизованными пользователями. Аналогичным образом, библиотечные каталоги, которые могут обновляться отдельно от основных исполняемых файлов, также должны находиться в отдельном каталоге.
С появлением раздражений в Vista и UAC эта традиция, наконец, начинает серьезно терять популярность.
UNIX и Linux, будучи намного более ранней многопользовательской системой, имели тенденцию отделять исполняемые каталоги от других каталогов гораздо раньше, поскольку существовала необходимость запретить пользователям, отличным от root, изменять установленные двоичные файлы. Это также то, почему /usrи даже /sbinиногда являются отдельными разделами - администратор с особым вниманием к безопасности может монтировать эти разделы только для чтения и перемонтировать их для чтения / записи, когда должна произойти установка / удаление.
Пакеты обычно устанавливаются из менеджера пакетов. Существуют различные менеджеры пакетов, такие как aptitude(Debian и производные дистрибутивы), yum(Redhat и производные дистрибутивы), pacman(забудьте, какой это дистрибутив ...) и другие.
Менеджер пакетов позволяет вам просматривать репозитории, загружать, устанавливать, запрашивать и удалять программное обеспечение, подобно сложному (и бесплатному) «магазину приложений». Он принимает на себя ответственность за обеспечение работы зависимостей и отслеживание того, что в данный момент установлено.
Обычно менеджер пакетов также позволяет выполнять те же операции с пакетом, который вы загружали вручную, вне каких-либо репозиториев. Инструменты также доступны, если вы хотите создать свой собственный из программного обеспечения, которое вы создали или скомпилировали самостоятельно.
Поскольку сам пакет НЕ является исполняемым файлом, вам не нужно запускать ненадежный исполняемый файл, который вы на самом деле не знаете, что он делает. (Windows, наконец, приходит с обновлениями, распространяя .msuвместо .exes - но .msiуже давно ...)
rpm, вы можете использовать,rpm -q --whatprovidesчтобы найти имя пакета для конкретного файла, а затемrpm -q -aузнать, какие файлы установлен пакет.