Курсы пакетного менеджмента Евгений Зобнин aka j1m Хакер, номер #090, стр. 090-100-3 # make # checkinstall Иной подход исповедуют создатели программы GNU Stow (www.gnu.org/software/stow/). Stow не создает нэйтивного пакета для дистрибутива, не использует собственную базу пакетов. Эта утилита предоставляет возможность пользователю установить программу в индивидуальный каталог (как это происходит в Windows и MacOS). "Расфасовка" программ по изолированным каталогам противоречит идеологии UNIX, но может быть использована благодаря символическим ссылкам. К плюсам такого подхода можно отнести частичное решение проблемы конфликтов между пакетами и визуальной красотой. Рассмотрим пример установки программы с использованием Stow: # ./configure # make # make install prefix=/usr/local/stow/program # stow program Последняя команда создаст все необходимые ссылки в дереве /usr/local. Для удаления программы достаточно выполнить две команды: "stow -D program" (удаление ссылок) и "rm -Rf /usr/local/stow/program" (удаление самой программы). Существует еще множество других "правильных" способов установки программ из исходников, с самыми интересными из которых ты можешь ознакомиться на сайте проекта LFS (www.linuxfromscratch.org). Пакет с покупками Вместо того чтобы помещать распространяемое ПО в индивидуальные пакеты для каждого дистрибутива, производители коммерческого и закрытотго ПО решили использовать нечто вроде самораспаковывающихся архивов. Конечно, ни о каком отслеживании зависимостей и регистрации пакета в базе не может идти речи, но зато выполняется основная задача любой компании, промышляющей в области IT. В большинстве случаев этот самораспаковывающийся архив имеет расширение ".run" и представляет собой шелл-скрипт, в конец которого дописан архив с программой. При запуске скрипт задает пользователю несколько вопросов, вычисляет точку, в которой заканчивается текст и начинается архив, извлекает архив во временный файл и распаковывает его в каталог, указанный пользователем. После отработки все созданные файлы отправляются в /dev/null, а пользователь думает, что произошло нечто магическое. OpenOffice, Opera, драйвера nVidia и многие коммерческие игры распространяются в подобных самораспаковывающихся архивах. Схожий подход используется в пакетах формата AutoPackage (www.autopackage.org). Помимо шелл-скрипта и архива с программой, в таком пакете находится удобный графический инсталлятор, способный отслеживать зависимости, и менеджер пакетов, который устанавливается в систему вместе с программой и прописывается в меню KDE и Gnome. Процесс установки и удаления пакетов AutoPackage не вызывает никаких трудностей для неподготовленного человека, большинство проблем решается автоматически, в крайнем случае выводится справка об ошибке и путях ее решения. Внешне все это очень напоминает установку программы в ОС Windows. К черту пакеты В отличие от Linux, ситуация в узком круге BSD-систем выглядит менее увлекательно. Здесь нет огромного количества вариантов упаковки ПО, нет разницы в подходах к его распространению, нет навязчивого мнения разработчиков дистрибутива. Любая ОС семейства BSD предлагает два средства установки софта: порты и пакеты. Причем во всех BSD-отпрысках эти самые средства реализованы схожим образом (а в NetBSD и DragonFlyBSD вообще повторяют друг друга). |