<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Разные способы установки программ

При установке ПО в Unix используется один из трех вариантов:

  1. Из готового пакета (в RedHat Linux -- при помощи rpm).
  2. Разворачивание из файла .tar.gz или .tgz, содержащего готовые исполняемые файлы.
  3. Компиляция из исходных текстов.

Первый вариант -- самый удобный и предпочтительный. Но при этом надо, чтобы нужное ПО существовало именно в виде .rpm-пакета.

Второй вариант очень часто используется с программами "от третьих поставщиков". К примеру, самая последняя версия Netscape обычно становится доступна в виде .tar.gz-архива (и лишь несколько позже появляется .rpm-пакет).

Третий вариант до недавнего времени был самым распространенным, да и до сих пор множество программ научного и развлекательного назначения распространяются именно в виде исходных текстов. Достоинство этого способа -- то, что собрать программу из исходных текстов можно практически под любым Unix, даже если сам автор этого не сделал. К недостаткам же относится то, что "сходу" программа может и не откомпилироваться (или даже просто не заработать), так что могут потребоваться навыки программиста.

Если дистрибутив берется из .tar.gz-архива, то чаще всего его может установить не только "root", но и любой пользователь (естественно, в свою личную директорию, а не в системную). В случае же .rpm-пакета обычному пользователю придется повозиться, чтобы извлечь оттуда файлы для "ручной" установки.

В какие директории следует устанавливать ПО

При установке из готового пакета rpm автоматически выбирает директории (они проросту зашиты в .rpm-файле). При установке же из бинарных дистрибутивов или из исходных текстов обычно есть выбор, в какое место дерева директорий поместить файлы.

Основные директории, где располагается ПО
ДиректорияНазначение
/usr/Стандартное ПО, поставляемое с системой.
/usr/X11R6/Система X-Window и разнообразное ПО для нее.
/usr/local/Локальное ПО (обычно от третьих поставщиков), установленное администратором отдельно после инсталляции системы. Здесь может располагаться также отдельно установленное ПО под X-Window.

Как очевидно, "вручную" программы надо устанавливать именно в /usr/local/.

В каждой из этих иерархий имеются поддиректории bin/, lib/, man/ и doc/, служащие для исполняемых файлов, библиотек, man-страниц и документации соответственно.

/usr/
    |
    +--bin/
    +--doc/
    +--lib/
    +--man/
    |
    +--X11R6/
    |       |
    |       +--bin/
    |       +--doc/
    |       +--lib/
    |       +--man/
    |
    +--local/
            |
            +--bin/
            +--doc/
            +--lib/
            +--man/

В переменной окружения PATH есть ссылки на /usr/bin, /usr/X11R6/bin и /usr/local/bin, так что все программы запускаются просто по имени. Команда man же, соответственно, ищет man-страницы также во всех трех man-директориях.

Естественно, весь дистрибутив следует ставить внутрь одной иерархии. Так, если исполняемые файлы располагаются в /usr/local/bin/, то man-страницы -- в /usr/local/man/, а библиотечные файлы -- в /usr/local/lib/.

Некоторые пакеты (например, Wabi -- эмулятор Windows 3.x) устанавливаются в директорию /opt/. В этом случае создается директория вида /opt/имя-программы/ (например, /opt/wabi/), и в ней размещаются все файлы пакета. Такие пакеты обычно не предлагают выбор директории, а просто сами ставятся в /opt/.

Подробно про то, какие директории в файловой системе для чего предназначены, можно прочитать в "Filesystem Hierarchy Standard" (прежнее название -- "Linux FSSTND") по адресу

http://www.pathname.com/fhs/

Меры предосторожности

Установку ПО из .rpm-пакетов может выполнять только "root".

При установке же из бинарного дистрибутива или из исходных текстов следует придерживаться следующих правил:

  1. Разворачивать архивы и выполнять компиляцию надо не как "root", а как обычный пользователь. Для этого стоит выделить отдельную директорию. А еще лучше -- создать для этих целей специального пользователя и компилировать ПО только из-под него.
  2. Все файлы, устанавливаемые в общее пользование (в общесистемные директории) должны иметь права доступа "rw-r--r--" для обычных файлов и "rwxr-xr-x" для исполняемых файлов и директорий, и их владельцем должен быть пользователь "root" и группа "root", если в инструкциях не оговорено иное.
  3. Если пакет требует установки каких-либо исполняемых файлов с флажком смены идентификатора пользователя (setuid, suid) или группы (setgid, sgid), то следует десять раз проверить, действительно ли это необходимо пакету для работы, и если да -- то лучше отказаться от его использования.


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел