- Главная... arrow - Статьи... arrow | - BSD arrow FreeBSD обновляем порты

#Записки о Unix/Linux/BSD/Solaris

FreeBSD обновляем порты
Автор H@wk!   
11:03:2009 г.
Прежде чем приступать к установке программ из портов, необходимо обновить дерево портов. Делается это с помощью утилиты CVSup. 
Первое, что делаем - устанавливаем CVSup. Лучше это сделать из пакета (либо из программы sysinstall, либо командой pkg-add), т.к. CVsup написан на языке Modula-3 и если его собирать из портов, то сборка кода будет включать в себя сборку нескольких крупных зависимостей Modula-3.
Запускаем sysinstall, идем в подраздел configure/packages/sysutils и выбираем пакет cvsup-16.1h или cvsup-without-gui-16.1h, если не нужна графическая оболочка (этот пакет доступен, если указать источником коллекции пакетов ftp.freebsd.org или другой ftp сервер).
После инсталляции пакета приступаем к его настройке. Создаем файл настроек CVsup называемый "sup-файл".
В каталоге /usr/share/examples/cvsup/ можно найти несколько примеров этого файла для разных применений. Нам для обновления портов интересен файл /usr/share/examples/cvsup/ports-supfile.
Скопируем его в каталог /usr/local/etc:

# cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc


Примечание: Можно создать просто пустой файл с именем например ports-supfile в /usr/local/etc (путь тоже не важен, как вам удобно).

Содержание файла:

*default host=cvsup12.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default tag=.
*default delete use-rel-suffix
*default compress
## Ports Collection. (перечень коллекций портов)
ports-all


Где:
host=cvsup12.FreeBSD.org - указывает, откуда мы хотим получать обновления. Этот путь можно изменить при запуске программы cvsup, запуская ее с ключом -h hostname.
base=/usr - указывает, где будут размещаться файлы статуса (для поддержки истории обновлений). В указанном случае будет использоваться каталог /usr/sup.
prefix=/usr - указывает, где будут размещаться полученные файлы.
release=cvs - означает, что сервер должен получать информацию из главного репозитария FreeBSD CVS.
tag=. - версия исходных текстов. "Точка" означает current (текущую) версию. Для обновления портов используйте только "точку".
delete - дает возможность CVSup удалять файлы, чтобы поддерживать дерево портов в актуальном состоянии.
compress - включает использование gzip сжатия при передаче данных.
Слово default перед параметром означает, что он используется по умолчанию для всех далее перечисленных коллекций, которые мы хотим обновить.

Далее идет перечень коллекций, которые будут участвовать в обновлении:
ports-all - для обновления всей коллекции портов.
Чтобы обновить только определенные ветви коллекции портов, следует закомментировать строку ports-all и раскомментировать требуемые, например: ports-base, ports-net и т.д. (ports-base раскомментировать обязательно, чтобы всегда обновлялась структура самого дерева портов).

Сохраняем файл, теперь все готово для обновления коллекции портов. Набираем следующую команду:

/usr/local/bin/cvsup -g -L 2 /usr/local/etc/ports-supfile


Где:
-g
- указывает не использовать GUI (графическую оболочку).
-L
- уровень вывода сообщений:
0
- не выводить никаких сообщений, кроме об ошибках;
2
- выводить информацию о каждом производимом обновлении (указано в нашем примере).

(для получения информации о всех ключах используйте ключ -H)

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

# pkg_version -v | less


для просмотра списка установленного ПО. После каждой программы будет указано надо ее обновлять или нет (< -требует обновления, = - установленная и в портах версии совпадают...)

Список обновлений доступен для чтения в файле /usr/ports/UPDATING. Читать этот файл полезно!

Если вы хотите регулярно обновлять свою коллекцию портов, то добавьте строчку в crontab с указынным временем обновлений, данная не хитрая процедура позволи всегда держать вашу коллекцию портов в актуальном состоянии.
примерно так:
/etc/crontab

00 03 * * * root /usr/local/bin/cvsup  -g -L 2 /usr/local/etc/ports-supfile >/dev/null 2>&1


Обновление раз в сутки в 3 часа утра.

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

//H@wk!

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code


Просмотров: 24059

  Коментарии (1)
RSS комментарии
 1 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 09:29 24.07.2012
"Делается это с помощью утилиты CVSup" 
Можно нм много проще делать встроенной утилитой: 
portsnap fetch extract, а потом можно просто portsnap fetch update.
 
« sysctl переменные для FreeBSD   FreeBSD клонирование HDD не вынимая диска и не останавливая сервер »

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

Сейчас на сайте находятся:
3 гостей