Документация по ОС FreeBSD Среда, 08.05.2024, 04:38
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Ports & Packages

portmaster: обновление портов [2010]
Я всегда для массового обновления портов использовал /usr/ports/ports-mgmt/portupgrade, однако, во время последней эпопеи с обновлением в портах jpeg и png, в результате чего потребовалась пересборка большого количества портов, наткнулся в рассылке stable@ на предложение использовать /usr/ports/ports-mgmt/portmaster и решил его попробовать. Изучение документации привело меня к мысли, что я зря до сих пор его не использовал.

Собственно, в чем прелести этого инструмента:

Во-первых, при установке обновлении порта он сразу вычисляет его зависимости, после чего делает для всех портов, которые в результате будут устанавливаться, make config, что очень изрядно экономит время. Впрочем, так можно заставить делать и portupgrade, так что это не самое вкусное.

Во-вторых, portmaster чистит distfiles от устаревших архивов сорцов портов, что лично мне при моем количестве установленных портов экономит дисковое пространство. Главное, не забыть указать portmaster ключик -d, иначе на удаление каждого архива он станет спрашивать разрешения, что не способствует автоматизации процесса :)
А вот в-третьих для меня оказалось очень и очень приятным: если portupgrade при сбое и повторном запуске начинает все сначала, причем при этом еще и может пострадать его база данных, что сильно портит жизнь, portmaster, не используя никаких сторонних баз, строит список пересобранных портов. В случае, если возникает какая-либо нерешаемая ситуация, и пересборка портов останавливается, достаточно вручную решить проблему и перезапустить portmaster. При этом последний известит вас о том, что присутствует флаг законченных установок портов и спросит, удалять его или нет (y/n)? Если выберем ‘y’, пересборка начнется сначала, но если выберем ‘n’, процесс начнется с места возникновения ошибки. Собственно, portmaster при этом задает еще вопрос, не включить ли принудительную пересборку пакетов, на этот вопрос тоже стоит ответить отрицательно.
Впрочем, одна проблема у меня все-таки возникла. Почему-то порт teTeX-base у меня оказался в списке как устанавливаемых, так и обновляемых портов, в результате чего на второй попытке установить его портмастер вываливался на ошибке «port is already installed». В гугле я ничего по этому поводу не нашел, зато нашел в мане, что если в директорию порта в базе данных портов (в моем случае это была /var/db/pkg/teTex-base-3.0.20) поместить файл с именем +IGNOREME, то portmaster его проигнорирует и ставить не будет. Так и случилось, при вычислении зависимостей portmaster четыре раза известил меня, что для данного порта присутствует данный файл и спросил, не установить ли этот порт в любом случае. Я ответил отрицательно, и все прошло как надо.

Собственно, установка/обновление порта с помощью portmaster:

sudo portmaster полный_путь_до_директории_порта в /var/db/pkg

или

sudo portmaster /usr/ports/категория/порт

Обновление порта и всех зависящих от него портов на примере png:

sudo portmaster -d -R -r 'png-*'

PS. кстати, вот еще полезный ключик ‘-o‘

Позволяет заменить уже установленный порт на другой. Полезно, когда установленный порт, например, вынесен из дерева портов за устареванием, как, например, было с libtool15, на замену которой пришла libtool22. Таким образом, замена одного на другое на примере того же libtool происходит вот так:

portmaster -o devel/libtool22 devel/libtool15

PPS. Блин, сделать, что ли, над собой усилие, перевести полностью man по portmaster на русский?


Источник: http://bsd.mlcom.ru/?p=820#more-820
Категория: Ports & Packages | Добавил: oleg (10.05.2010) | Автор: skiangel
Просмотров: 1423 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024