Обзор установки программного обеспечения - PC-BSD - BSD - Каталог статей - Игры под Ос Линукс
Воскресенье, 20.05.2012, 07:20 Приветствую Вас Гость

Cайт посвящённый играм под Linux

Меню сайта
Форма входа
E-mail:
Пароль:
Категории раздела
PC-BSD [22]
OpenBSD [12]
solaris [67]
FreeBSD [40]
Поиск
Главная » Статьи » BSD » PC-BSD

Обзор установки программного обеспечения
Вместе с pcBSD в составе базового комплекта системы поставляется богатый набор системный утилит. Однако для выполнения какой-то реальной работы очень скоро возникает необходимость в установке дополнительных приложений сторонних разработчиков. pcBSD даёт три взаимодополняющих технологии для установки программного обеспечения сторонних разработчиков в вашу систему: Коллекция Портов FreeBSD, бинарные пакеты с программным обеспечением и PBI пакеты (об оустановке которых расказываться небудет) . Любая из этих систем может быть использована для установки самых последних версий ваших любимых приложений с локальных носителей или прямо из сети.

После чтения этой главы вы будете знать:
Как устанавливать бинарные пакеты с программным обеспечением сторонних разработчиков.
Как собирать программное обеспечение сторонних разработчиков при помощи Коллекции Портов.
Как удалять ранее установленные пакеты или порты.
Как переопределить значения, используемые по умолчанию в Коллекции Портов.
Как обновить ваши порты.

1.Загрузка программного обеспечения, которое может распространяться в форме исходных текстов или двоичных файлов.

2.Распаковка программного обеспечения из дистрибутивного формата (обычно tar-архива, сжатого при помощи compress, gzip или bzip2.

3.Поиск документации (возможно, подойдут файлы INSTALL, README или несколько файлов из подкаталога doc/) и её чтение в поиске описания установки программного обеспечения.

4.Если программное обеспечение распространялось в форме исходных текстов, его компиляция. Сюда может быть включено редактирования файла Makefile, запуск скрипта configure и другие работы.

5.Тестирование и установка программного обеспечения.

      Если вы хотите, то можете продолжать устанавливать программное обеспечение в pcBSD ''традиционным, PBI'' способом. Однако pcBSD предоставляет ещё две технологии, которые могут сохранить вам много усилий: пакеты и порты. На момент написания таким образом были доступны более 40 000 сторонних приложений.

      Для любого конкретно взятого приложения пакет pcBSD является одним файлом, который вы должны загрузить. Пакет содержит уже откомпилированные копии всех команд приложения, а также все конфигурационные файлы и документацию. Загруженным файлом пакета можно управлять такими командами pcBSD, как pkg_add, pkg_delete, pkg_info и так далее. Установка нового приложения может выполняться единственной командой.

      Порт FreeBSD для приложения является набором файлов, предназначенных для автоматизации процесса компиляции приложения из исходного кода. Файлы, составляющие порт, содержат всю информацию, необходимую для того, чтобы система сделала это за вас. Вы задаёте пару простых команд, и исходный код приложения автоматически загружается, распаковывается, модифицируется, компилируется и устанавливается.

      Как пакеты, так и порты принимают во внимание зависимости. Предположим, что вы хотите установить приложение, которое зависит от некоторой установленной библиотеки. И приложение, и библиотека доступны в pcBSD в виде портов и пакетов. Если вы используете команду pkg_add или систему портов для добавления приложений, то в обоих случаях будет обнаружено, что библиотека не была установлена, и сначала будет автоматически выполнена установка библиотеки.

      Видя, что обе технологии весьма похожи, вы можете удивиться, почему во FreeBSD используются обе. И пакеты, и порты имеют свои преимущества, так что выбор используемой вами системы зависит от ваших собственных предпочтений.

Преимущества пакетов

      Сжатый tar-архив обычно меньше, чем сжатый tar-архив, содержащий исходный код приложения. Пакеты не требуют никакой дополнительной компиляции. Для таких больших приложений, как Mozilla, KDE или GNOME, это может быть важно, в частности, если вы работаете на медленной системе. Пакеты не требуют понимания процесса компиляции программного обеспечения в pcBSD. Система портов может также использоваться для генерации пакетов, которые позже могут управляться командой pkg_add и другими командами управления пакетами.

      Вы можете установить security/portaudit, который автоматически проверит все установленные приложения на наличие известных уязвимостей, проверка также будет выполняться перед сборкой какого-либо порта. Вы можете использовать portaudit -F -a и после установки пакетов.

Поиск нужного вам приложения

      Перед тем, как устанавливать какое-либо приложение, вам нужно знать, что вы хотите и как называется нужное вам приложение. Список имеющихся для pcBSD приложений постоянно растёт. К счастью, есть несколько способов найти то, что вам нужно: На сайте FreeBSD поддерживается обновляемый список имеющихся приложений для pcBSD, в котором можно выполнять поиск, по адресу http://www.FreeBSD.org/ports/. Порты разбиты на категории, и вы можете либо выполнить поиск приложения по имени (если его знаете), либо просмотреть список всех приложений, относящихся к определённой категории.

      Если вы не знаете названия нужного вам приложения, попытайтесь воспользоваться сайтом типа FreshMeat (http://www.freshmeat.net/) для поиска приложения, а затем возвратитесь на сайт FreeBSD, чтобы проверить, есть ли порт для этого приложения. Если вы знаете точное имя порта, и хотите определить, в какой категории он находится, используйте команду whereis. Просто наберите в приглашении ''whereis file'', где file - программа, которую вы хотите установить. И если она имеется в системе, об этом будет сообщено, как показано ниже:

# whereis lsof
lsof: /usr/ports/sysutils/lsof


      Это говорит о том, что lsof (системная утилита) находится в каталоге /usr/ports/sysutils/lsof. Ещё одним способом поиска некоторого порта является использование встроенной возможности поиска в Коллекции Портов. Чтобы ею воспользоваться, вы должны находиться в каталоге /usr/ports. Очутившись в этом каталоге, выполните команду make search name=program-name, где program-name - это название программы, которую вы хотите найти. Например, если вы ищете lsof:

# cd /usr/ports
# make search name=lsof
Port:   lsof-4.56.4
Path:   /usr/ports/sysutils/lsof
Info:   Lists information about open files (similar to fstat(1))
Maint:  obrien@FreeBSD.org
Index:  sysutils
B-deps:
R-deps:


      Вам следует обратить особое внимание на строчку ''Path:'', так как в ней указывается, где найти порт. Остальная сообщаемая информация для установки порта не нужна, поэтому здесь она описываться не будет.

      Для выполнения более глубокого поиска вы можете также использовать make search key=string, где string представляет собой некоторый текст, относящийся к искомому порту. При этом будет выполнен поиск в именах портов, комментариях, описаниях и зависимостях, и его можно использовать для поиска портов, связанных с некоторой темой, если вы не знаете названия программы, которую вы ищете. В обоих этих случаях строка поиска нечувствительна к регистру. Поиск ''LSOF'' приводит к тому же самому результату, что и поиск ''lsof''.

Использование системы пакетов
Установка пакета
      Для установки пакетов программного обеспечения для pcBSD из локальных файлов или с сервера в сети вы можете использовать утилиту pkg_add

Загрузка пакета вручную и его локальная установка
# ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-     This machine is in Vienna, VA, USA, hosted by Verio.
230-
        Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375       00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
# pkg_add lsof-4.56.4.tgz


      Если у вас нет исходных текстов локальных пакетов, то проще всего, наверное, воспользоваться опцией -r для pkg_add(1). Это приведёт к тому, что утилита автоматически определит правильный формат объектных файлов и релиз, а затем загрузит и установит пакет с сервера FTP.

# pkg_add -r lsof

      В примере выше нужный пакет будет загружен и установлен без всякого дополнительного взаимодействия с пользователем.

Управление пакетами

      pkg_info является утилитой для вывода списка и описаний различных установленных пакетов.

# pkg_info
cvsup-16.1          A general network file distribution system optimized for CV
docbook-1.2         Meta-port for the different versions of the DocBook DTD


...

      pkg_version(1) является утилитой для вывода отчёта о версиях всех установленных пакетов. Она сравнивает версию имеющегося пакета с текущей версией, находящейся в дереве портов.

# pkg_version
cvsup                      =
docbook                     =


...

      Символы во второй колонке указывают сравнительную разницу в возрасте установленной версии и версии, находящейся в локальном дереве портов.

Символ - Значение
=     Версия установленного пакета соответствует версии, находящейся в локальном дереве портов.
<     Установленная версия старее, чем та, что имеется в дереве портов.
>     Установленная версия новее чем та, что есть в дереве портов. (Скорее всего, локальное дерево портов устарело.)
?     В индексном файле портов установленный пакет не может быть найден. (Это может случиться, например, если установленный порт был удалён из Коллекции Портов или переименован.)
*     Имеется несколько версий пакета.

Удаление пакета

      Для удаления ранее установленных пакетов с программным обеспечением используйте утилиту pkg_delete.

# pkg_delete xchat-1.7.1

      Вся информация о пакете хранится в каталоге /var/db/pkg. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога.

Установка портов

      Когда речь заходит о Коллекции Портов, то первым делом вы должны понять, что именно подразумевается под словом ''скелет''. По сути скелетом порта является минимальный набор файлов, который указывает вашей системе pcBSD, как корректно откомпилировать и установить программу. Скелет каждого порта включает:

Makefile. Makefile содержит различные директивы, которые определяют, как приложение должно быть откомпилировано и куда в вашей системе оно должно быть установлено.

Файл distinfo. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе для успешной сборки порта, и их контрольные суммы, для проверки при помощи md5 того, что файлы в процессе загрузки не были повреждены.

Каталог files. Этот каталог содержит патчи, использование которых необходимо для компиляции и установки программы в вашей системе pcBSD. Патчи - это, как правило, маленькие файлы, в которых содержатся изменения, которые нужно внести в какой-то конкретный файл. Они имеют обычный текстовый формат и в основном содержат указания типа ''Удалить строку 10'' или ''Заменить строку 26 на такую ...''.

Патчи также называются ''diff-файлами'' или просто ''диффами'', потому что они генерируются программой diff.

Этот каталог также может содержать другие файлы, используемые для построения порта.
pkg-descr. Это более подробное, зачастую многострочное описание программы.
pkg-plist. Это список всех файлов, которые будут установлены портом. В нем также содержатся указания системе портов на удаление определенных файлов во время удаления порта.

Установка портов

cd /usr/ports/sysutils/lsof
# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[вывод команды при распаковке опущен]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[вывод команды при конфигурации опущен]
...
===> Building for lsof-4.57
...
[вывод команды при компиляции опущен]
...
#


      Заметьте, что как только компиляция закончится, вы снова вернётесь к приглашению вашего командного процессора. Следующим шагом является установка порта. Чтобы это сделать, вам нужно просто добавить одно слово к команде make, а именно слово install:

# make install
===>  Installing for lsof-4.57
...
[вывод команды при установке опущен]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.57
===>   Registering installation for lsof-4.57
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
#


      Как только вы вернулись к приглашению вашей оболочки, вы должны суметь запустить приложение, которое только что установили. Так как lsof является программой, которая запускается с повышенными правами, выдаётся предупреждение о безопасности. Во время построения и установки портов вы должны принимать во внимание все выдаваемые предупреждения.

      Замечание: Вы можете сэкономить лишний шаг, просто выдав команду make install вместо make и последующей make install в двух отдельных шагах.

Удаление установленных портов

      Теперь, когда вы знаете, как устанавливать порты, вы наверное, уже задумывались о том, как же их удалять -- просто даже на тот случай, если вы установили один из них, а позже решили, что установили не тот порт. Мы удалим порт из нашего предыдущего примера (а это была программа lsof, если вы обратили внимание). Как и при установке портов, первым делом вы должны перейти в каталог с портом, /usr/ports/sysutils/lsof. После смены каталога вы готовы к удалению lsof. Это делается командой make deinstall:

# cd /usr/ports/sysutils/lsof
# make deinstall
===> Deinstalling for lsof-4.57


      Это было достаточно легко. Вы удалили lsof из вашей системы. Если вам захочется переустановить эту программу, то это можно будет сделать, выдав команду make reinstall из каталога /usr/ports/sysutils/lsof. Последовательность команд make deinstall и make reinstall не сработает, если вы запустите команду make clean. Если вы хотите убрать порт из системы после очистки каталога, используйте команду pkg_delete как описано выше.
Категория: PC-BSD | Добавил: Lorg_Andre (11.04.2010)
Просмотров: 568 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Архив записей
Библиотека минотавра
Мини-чат
200
Статистика
... Хостинг от uCoz