ГлавнаяМатериалы по FreeBSDУправление портами FreeBSD

Управление портами FreeBSD

(2 Голосов)

freebsdportsКоллекция Портов и Пакетов FreeBSD даёт пользователям и администраторам простой метод установки приложений. Дерево портов – это тематический список расположения дистрибутивов программ, патчей и библиотек на серверах поддержки FreeBSD в сети Интернет. То есть, если вам нужно установить какую-либо программу, вы заходите по дереву портов в определённый каталог и выполняете всего две команды – make (скачать всё, что нужно из сети и подготовить к установке) и make install (установить в систему).

Для управления системой портов FreeBSD существуют дополнительные утилиты, удобные и функциональные.

Я использую Portupgrade и Portmaster.

Утилита portupgrade

Portupgrade – это не одна утилита, а целый пакет утилит по управлению портами.
В пакет portupgrade входят:

1. portupgrade – одноименная утилита, средство автоматического обновления установленных программ
2. portinstall – утилита установки новых программ, присутствующих в системе портов FreeBSD
3. portversion – утилита показывающая установленный софт и наличие обновлений для него.
4. portsclean – утилита очистки мусора остающигося после сборки портов
5. portsdb – утилита создающая базу программ, присутствующих в портах FreeBSD
6. ports_glob – предназначена для поиска по базе портов
7. portcvsweb – браузер для CVSWeb
8. pkgdu – утилита, предназначенная для подсчета дискового пространства занятого уcтановленныыми программами
9. pkgdb – еще одна утилита для управления базой портов
10. pkg_which – предназначен для поиска по базе портов
11. pkg_sort – утилита сортирует порты в соответствии c зависимостями
12. pkg_fetch – утилита для скачки собранных(бинарных) пакетов
13. pkg_deinstall – средство для массового удаления установленного софта

Устанавливаем:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean 

Использование утилит из пакета portupgrade.

 1. Обновить все программы (-a) с зависимостями от обновляемых портов (-r) и зависимостями для этих портов (-R)

# portupgrade -arR

А такая команда позволит скачать новые программы, не устанавливая их:

# portupgrade -aFrR

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

# portupgrade -af

 При добавлении ключа (-b) к этой команде позволяет сохранить старые версии пакетов в бэкап (/usr/ports/packages/All/), установить пакет из бэкапа можно используя команду:

# pkg_add 

 3. Определяем программы, нуждающиеся в обновлении:

# pkg_version -v | grep "need"

 или

# portversion | grep "<"

Можно и так:

# portversion -l "<"

Вид списка нуждающихся в обновлении портов будет разным.

 4. С помощью portinstall можно устанавливать программы, делаем так:

# portinstall /usr/ports/databases/mysql51-server/

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

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

# portsclean -C

- для очистки рабочих директорий, тех которые используются для сборки программ и

portsclean -D

- для очистки директории /usr/ports/distfiles от устаревших файлов исходников программ

6. Pkgdb - в основном используется для исправления нарушенных зависимостей портов:

# pkgdb -F

7. Удаляем пакеты при помощи pkg_deinstall:

# pkg_deinstall apache

Интересная особенность, не нужно больше указывать полностью номер версии!

Portupgrade - очень полезный и надежный инструмент!

 

Утилита Portmaster

Не менее удобное, чем potrupgrade, средство, кроме этого, есть одно очень позитивное отличие: если portupgrade при сбое и повторном запуске начинает все сначала, причем при этом еще и может пострадать его база данных, portmaster, не используя никаких сторонних баз, строит список пересобранных портов. В случае, если возникает какая-либо нерешаемая ситуация, и пересборка портов останавливается, достаточно вручную решить проблему и перезапустить portmaster.

Установка:

# /usr/ports/ports-mgmt/portmaster
# make install clean

 

Использование Portmaster

1. Ищем что необходимо обновить:

# portmaster -L | grep -B1 «New version»

Выводятся имена пакетов

2. Обновляем все пакеты:

# portmaster -Da

 

Не забываем обновлять порты перед использованием утилит!

# portsnap fetch update

 

Для удобства можно заскриптовать все стадии и настроить cron.

Пример скрипта можно взять здесь:

 

Утилиты Portupgrade и Portmaster могут прекрасно уживаться вместе и дополнять друг друга. Пример из жизни - случилась неприятная ситуация с повреждением базы установленных портов. Pkgdb -F не помогал. На помощь пришел Portmaster:

#portmaster --check-depends  
#portmaster --check-port-dbdir  
#pkgdb -Fu

На вопросы об удалении нарушенных зависимостей отвечаем утвердительно ("у").

 

См. также:

Хитрости работы с портами в FreeBSD, использование portupgrade

Обновление портов FreeBSD, программа Portsnap

Использование коллекции портов (en)

Обновлено 17.12.2010 06:57

Ваше мнение

Вы с пользой провели время на сайте?
 

Кто сейчас на сайте

Сейчас на сайте:
  • 1 гость

wolf3Волк - символ свободы и самостоятельности среди животных.

wolf1Волк - это символ бесстрашия. В любой схватке волк борется до победы или до смерти.

wolfsВолк живет семьей, ухаживает только за своей волчицей-женой и воспитывает своих детей-волчат.

Наверх