FreeBSD/Вопросы по работе с портами

Материал из Lblss.ru
Перейти к: навигация, поиск

Шпаргалки по работе с портами.

В двух словах о назначении портов во FreeBSD. Порты предназначены для установки и обновления ПО. В коллекции портов собрано более 23000 единиц разномастного ПО. Разумеется, периодически версии программного обеспечения обновляются, и, вместе с ними обновляются и порты. На локальной машине порты должны находиться в достаточно актуальном состоянии, а иначе установка ПО может пойти неудачно. Про обновление и говорить нечего :-)


Содержание

Установка и обновление коллекции портов

В принципе, порты можно поставить при установке FreeBSD. Можно поставить позже, используя команду sysinstall. Однако, если на машине есть подключение к Интернету, то для установки можно дать команду:

# portsnap fetch extract

В зависимости от "скорости инета" и мощи машины, следует ориентироваться на 15...40 минут, а с очень медленным инетом - и на дольше. Объем скачиваемого составляет немногим менее 70 мегабайт.

Для обновления дерева директорий портов /usr/ports команда будет чуточку иной:

# portsnap fetch update


Для поддержания коллекции портов в актуальном состоянии можно повесить на крон в файле /etc/crontab такое задание:

# Ports update
10 6 * * * root portsnap -I cron update && pkg_version -vIL=

На почту будут приходить письма о необходимости обновления ПО. Следует отметить, что при выполнении этой команды в рабочие директории /usr/ports никакие изменения не вносятся, все ограничивается только базами (те что в /var/db).

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

Удобно для этой цели использовать команду portinstall. Однако, ее требуется установить вместе с portupgrade:

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

Прибираемся

Если через какое-то время директория /usr/ports/distfiles будет завалена тоннами исходников, оставшихся после установок или апдейтов, убрать лишнее/устаревшее можно командой

# portmaster -ty --clean-distfiles

Ошибки

При проверке необходимости обновления версий ПО получаем ошибку:

# pkg_version -vIL=
....
pkg_version: corrupted record (pkgdep line without argument), ignoring

Это говорит о поврежденных записях (или связях) в списке зависимостей. Запускаем проверку. На вопросы, вроде такого, отвечаем утвердительно:

# portmaster --check-depends
....
===>>> Checking bugzilla-4.0.6
        ===>>> @pkgdep  is listed as a dependency
        ===>>> but there is no installed version
 
        ===>>> Delete this dependency data? y/n [n] y
 
        ===>>> Installing the new +CONTENTS file
Персональные инструменты