Устанавливаем и обновляем программное обеспечение в системе FreeBSD::Журнал СА 1.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6144
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6857
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4140
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Устанавливаем и обновляем программное обеспечение в системе FreeBSD

Архив номеров / 2007 / Выпуск №1 (50) / Устанавливаем и обновляем программное обеспечение в системе FreeBSD

Рубрика: Администрирование /  Администрирование

Гаспар Чилингаров

Устанавливаем и обновляем программное обеспечение в системе FreeBSD

Что такое пакет? Что такое порт?

В ОС FreeBSD существует два механизма для установки программного обеспечения – пакеты и порты. Пакеты – заранее скомпилированные файлы с бинарными файлами. Они не требуют компиляции из исходных файлов и более просты в установке. Пакеты неудобны только тем, что скомпилированы с копределённым набором опций по умолчанию, под конкретную платформу, а вам для конкретной задачи нужны дополнительные опции. Порты предоставляют автоматизированный механизм для установки программ из исходных файлов – начиная с получения (скачивания) исходных файлов, изменения исходных файлов для успешной компиляции программы для системы FreeBSD и механизм инсталляции/деинсталляции ПО.

Версии пакетов и портов

Вы можете думать о пакетах как о конкретной версии программы, а о порте – как об описании, как создать версию пакета. Через некоторое время порт может быть обновлен и он уже будет генерировать пакет с другим номером версии. То есть mysql51-server – это название порта с версией сервера MySQL 5.1.x, а пакет mysql-server-5.1.12 – это уже скомпилированные бинарные файлы сервера MySQL версии 5.1.12 . Иногда после номера версии добавляется знак подчеркивания и число – это показывает на версию изменения порта, т.е. если версия программного обеспечения не изменилась, а в порт были внесены изменения, чтобы обеспечить лучшую интеграцию данного ПО в систему FreeBSD (lynx-2.8.5_2 – текстовый браузер lynx версии 2.8.5, в порт которого 2 раза вносились изменения). Когда меняется (повышается) версия программного обеспечения, версия порта сбрасывается и не пишется до первого обновления порта.

Какое программное обеспечение готово для использования?

Посмотреть список программного обеспечения, перенесенного на систему FreeBSD, вы можете по адресу http://www.freebsd.org/ports. Вы сумеете узнать также точное название пакета, который вас интересует.

Как установить пакет?

Для установки пакетов можно использовать команду sysinstall (меню «Configure», подменю «Packages»), однако это не даст вам навыков по установке пакетов вручную. Из командной строки пакеты устанавливаются при помощи команды pkg_add. Наиболее часто используемые пакеты поставляются на самом диске FreeBSD в директории packages. Для их установки достаточно смонтрировать CD-диск (команда «mount /cdrom») и выполнить команду:

pkg_add /cdrom/packages/All/имя_пакета-версия.tgz

Если вы не знаете точного имени и версии пакета, то его можно узнать при помощи команды:

ls /cdrom/packages/All/имя_пакета*

Если вы скачали пакет из сети, то он устанавливается аналогично:

pkg_add имя_файла

Если пакета нет на диске или вы хотите получить последнюю версию пакета, то можно попробовать команду:

pkg_add -rv имя_порта

Скажем, для установки веб-сервера Apache версии 1.3.x можно набрать команду:

pkg_add -rv apache13

которая обратится к серверу FreeBSD и сама скачает пакет, подходящий для вашей версии FreeBSD, во временную директорию и установит его. Если пакет для своей работы требует дополнительные библиотеки или другие пакеты, то команда «pkg_add» скачает и их тоже. После установки все временные файлы удаляются.

Команда:

pkg_add -K -rv apache13

не только скачает и установит порт, но и сохранит скачанный файл пакета в текущей директории.

Удаление установленного ПО

Для удаления установленного ПО необходимо использовать команду:

pkg_delete имя_пакета

которая корректно удалит установленные пакетом файлы. Пакеты, установленные как зависимости, удалены не будут.

Сохранение установленных пакетов

Если вы установили программное обеспечение из пакетов или при помощи портов, то вы можете всегда создать пакет для переноса ПО на другую систему или для удобства установки в следующий раз.

Команда:

pkg_create -b имя_пакета-версия

создаст в текущей директории пакет, который можно устанавливать при помощи команды «pkg_add». Это особенно удобно, когда вы сконфигурировали ПО, установленное из портов для своих задач, и хотите создать пакет, который можно использовать в дальнейшем.

Какой пакет установил данный файл?

Узнать, какой пакет установил данный файл, можно при помощи команды:

pkg_info -W абсолютное_имя_файла

Просмотр списка установленных пакетов

Для просмотра можно использовать команду «pkg_info», которая выводит название пакета, версию и короткое описание. Другой способ – просто посмотреть список пакетов:

ls /var/db/pkg

В директории /var/db/pkg команды pkg* хранят базу всех установленных пакетов. Посмотреть детальную информацию по одному пакету можно при помощи команды:

pkg_info имя_пакета

скажем:

pkg_info xorg-6.9.0

Обновление портов при помощи системы CVSup

Для использования системы CVSup необходимо добавить несколько строк в файл /etc/make.conf (пример приведенной конфигурации есть в файле /usr/share/examples/etc/make.conf). Эти строчки в /etc/make.conf конфигурируют обновление коллекции портов через протокол CVSup, который передает только изменения, произошедшие в коллекции портов, что существенно меньше, чем скачивание полной коллекции. Вам потребуется либо прямое соединение с Интернетом, либо с трансляцией адресов (NAT). Протокол CVSup не может работать через HTTP-прокси.

SUP_UPDATE=YES

SUP=/usr/bin/csup

SUPFLAGS=-g -L 2 -z

SUPHOST=cvsup.uk.FreeBSD.org

SUPFILE=/usr/share/examples/cvsup/standard-supfile

PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile

Если у вас FreeBSD версии 6.0 или ниже, то у вас должна быть строка:

SUP=/usr/local/bin/cvsup

вместо указанной:

SUP=/usr/bin/csup

и для обновления портов вам необходимо поставить пакет cvsup при помощи:

pkg_add -rv cvsup-without-gui

После того как вы добавили эти строки в /etc/make.conf, необходимо перейти в директорию /usr/ports и запустить команду:

make update

После успешного завершения у вас будет коллекция портов с последними обновлениями.

Работа с портами

Коллекция всех портов находится в директории /usr/ports. Если у вас она не установлена, то вы можете установить ее при помощи команды sysinstall (меню «Configure», подменю «Distributions», пункт меню «ports»). Другие способы – скачать всю коллекцию портов одним файлом, так же как и при обновлениях, или воспользоваться утилитой portsnap.

Автоматизация установки и обновления портов

Для автоматизации процесса установки и обновления портов вам потребуется пакет portupgrade.

Его можно установить либо из порта /usr/ports/sysutils/portupgrade, либо при помощи команды:

pkg_add -rv portupgrade

Для обновления ПО сперва нужно обновить коллекцию портов (как это делать, описано выше). После этого вы можете инсталлировать и обновлять порты при помощи следующих команд:

portinstall имя_порта

скачать исходные файлы, скомпилировать, установить данный порт и очистить рабочую директорию.

portupgrade имя_порта

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

portupgrade 'имя_порта*'

обновить все порты начинающиеся с данного префикса, скажем:

portupgrade 'php5*'

обновит сам интерпретатор php и все его установленные расширения.

Именно для этого случая нам было нужно сохранить конфигурацию при помощи «make config» или записывая ее в файл /etc/make.conf. Portupgrade сам скачает новые версии исходных файлов, сконфигурирует их с теми опциями, которые были запомнены, сделает резервную копию старого пакета, удалит старую версию пакета, установит новую. Если этот процесс завершился успешно, то копия старого пакета будет удалена, если нет, то portupgrade установит ее обратно. Порты в FreeBSD разрабатываются так, чтобы при удалении порта не затрагивать файлы конфигурации. Таким образом, ваши старые файлы конфигурации останутся неизменными. Иногда это может привести к проблемам, и файлы конфигурации нужно исправлять для совместимости с новой версией установленного ПО.

portupgrade -R 'имя_порта'

обновит не только порт, но и его зависимости, которые необходимы для его работы.

portupgrade -a

обновит все установленные в системе пакеты.

Обновление коллекции портов

Коллекцию портов необходимо обновлять время от времени, если вы хотите отслеживать последние версии программ, доступные для системы FreeBSD. В частности, это нужно для получения обновлений, связанных с безопасностью ПО, – в новых версиях программ бывают исправлены ошибки. Есть несколько способов обновить коллекцию портов – скачать полностью новую коллекцию портов (на страничке http://www.freebsd.org/ru/ports линк «Сгрузите gzip-архив») и распаковать в директорию /usr/ports. Это самый простой способ, но и самый требовательный к трафику – каждый раз вы будете скачивать файл размером где-то в 35 Мб.

Установки ПО при помощи портов

Для установки порта необходимо перейти в его директорию (скажем, «cd /usr/ports/lang/php4» – для установки языка PHP). Имя порта можно узнать на сайте http://www.freebsd.org/ports либо перейти в директорию /usr/ports (командой «cd /usr/ports») и дать команду:

make search key=ключевое_слово

Например:

make search key=licq

для поиска всех портов, связанных с ICQ клиентом licq.

Возможные операции для компиляции порта (должны выполнятся в директории порта – то есть /usr/ports/lang/php4 в нашем случае):

  • make config – запускает конфигуратор, если данный порт имеет диалоговый текстовый интерфейс конфигурации. Выбранная конфигурация будет использована и в дальнейшем при обновлении данного порта.
  • make fetch – только скачивает необходимые файлы, но не компилирует порт. Исходные файлы портов скачиваются в директорию /usr/ports/distfiles.
  • make – скачивает и компилирует порт. Если порт имеет опции, которые могут быть указаны в командной строке, он сообщит об этом до начала процесса компиляции. В командной строке опции задаются как:

make -DWITHOUT_X11=YES

то есть при помощи флага -Dимя_опции= значение. Если вы хотите сохранить эти опции, чтоб они использовались в дальнейшем при обновлениях, откройте файл /etc/make.conf и допишите их туда в виде опция=значение (т.е., скажем, WITHOUT_X11=YES). Эти опции будут применяться при компиляции всех портов.

  • make all – то же самое, что и команда make без аргументов.
  • make install – устанавливает скомпилированный порт.
  • make clean – очищает директорию порта от рабочих файлов.
  • make distclean – аналогично make clean, но также стирает скачанные исходные файлы.
  • make deinstall – удаляет инсталлированную версию порта.
  • make package – создает пакет для данной версии ПО. Эта команда подразумевает, что ПО установлено на жестком диске, в противном случае она выполняет «make install», после чего создает пакет.

На стадии компиляции и установки порт может автоматически установить другие порты, необходимые для его работы.

Разные опции команды make можно комбинировать друг с другом, т.е. «make install clean» приведет к скачиванию исходных текстов, компиляции, установке порта и очистке директории порта от рабочих файлов.

Обновление портов при помощи portsnap

Если у вас система FreeBSD 6.0 и выше или 5.5 и выше, то в базовой системе есть утилита portsnap, которая облегчает обновление коллекции портов. В первый раз команда «portsnap fetch» скачивает сжатую версию коллекции портов и сохраняет ее в /var/db/portsnap. В последующие разы команда «portsnap fetch» скачивает сжатые обновления для этого файла, что использует существенно меньший трафик, чем полное скачивание коллекции портов и даже обновление при помощи CVSup. Если у вас нет распакованной коллекции портов в /usr/ports, то ее можно создать при помощи команды «portsnap extract». Для обновления распакованной коллекции портов, после того как portsnap скачал сжатые изменения, используется команда «portsnap update».

То есть в первый раз вы должны выполнить команды:

portsnap fetch; portsnap extract

а в последующие разы:

portsnap fetch; portsnap update

Можно указать командам «portsnap extract» и «portsnap update», чтоб они работали не со всей коллекцией портов, а только с ее частью. Так:

portsnap update   databases/mysql

обновит только порты в директории databases, имя которых начинается на mysql.

Другие команды для работы с портами

pkg_which имя_файла

покажет пакет, который установил на файловую систему данный файл.

portsclean

позволяет почистить /usr/ports от старых рабочих директорий, устаревших исходных файлов и т. д.

portsclean -C

очистить рабочие директории.

portsclean -D

удалить старые исходные файлы портов.

portsclean -DD

удалить все исходные файлы портов, которые не установлены в данный момент.

pkg_version

после обновления коллекции портов показывает, какие имеются более новые версии и требуются обновления.

pkg_deinstall 'имя_порта'

// или

pkg_deinstall 'имя_porta*'

позволяет удалить порт из системы или сразу удалить несколько портов из системы (по шаблону).

pkg_deinstall -r имя_порта

удалить порт и все порты, которые требуют его в качестве зависимости (dependency).

pkg_deinstall -R имя_порта

удалить порт и все порты, которые он требует в качестве зависимости (dependency).


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru