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