Карта сайта
Обслуживание компьютеров, ремонт компьютеров, 1С предприятие, обслуживание серверов,создание сайтов, продвижение сайтов, доработка 1С предприятие
О компании | Статьи | UNIX | Обновление дерева портов FreeBSD с помощью Portsnap

« Назад « На главную

Обновление дерева портов FreeBSD с помощью Portsnap

Дерево портов – это минимальный набор файлов, который нужен для того что бы найти в сети исходные коды вашей программы, скомпилировать её и установить. Время от времени порты обновляются, убираются баги – в связи с этим иметь обновленное дерево портов просто необходимо.

Как правило порт состоит из нескольких файлов:
distinfo
Makefile
pkg-plist
pkg-descr

distinfo – Содержит имена файлов для скачивания и их контрольные суммы для проверки подлинности.

pkg-descr – Краткое описание программы, информация о разработчике, официальный сайт и т.д..

pkg-plist – Это список файлов, которые будут собраны в процессе установки программы, с директориями назначения. Файл используется для регистрации приложения в базе данных пакетов ( var/db/pkg ).

Makefile – Основной файл сценария. Содержит массу различных опций и переменных, описывающих информацию о версии, разработчике, зависимостях данного приложения от других пакетов и библиотек, опции конфигурирования.

Кроме тога, во многих портах можно обнаружить поддиректорию files, в ней как правило лежат различные патчи и дополнения.

Программа Portsnap, для обновления портом, операционной системы FreeBSD

Обновить дерево портов во FreeBSD, можно разными способами. Один из них, на мой взгляд самый удобный, использовать штатную утилиту обновления портов, Portsnap.

Программа Portsnap, не работает напрямую с основным деревом портов /usr/ports, она использует рабочий каталог, по-умолчанию /var/db/portsnap, туда скачивается сжатая копия ( snapshot ) дерева портов, а оттуда уже обновляется основное дерево портов. Конфигурационный файл живет по адресу /etc/portsnap.conf, в принципе его можно не трогать, но если вдруг надумаете, например, поменять адрес сервера, откуда программы будет качать исзодники или расположение рабочей директории, там все довольно хорошо откомментировано.

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

Команда fetch – Скачивает снимок ( snapshot ), основного дерева портов с указанного в конфигурации сервера. Используется только для интерактивной работы, не через cron
Команда cron – Используется для запуска из планировщика заданий cron.
Команда extract – Разворачивает дерево портов, данная команда полностью удаляет существующее дерево портов, включая все внесенные в него изменения, как правило выполняется в первый раз и в случае, если нужно получить, чистое дерево портов или при использовании с опцией path( cм. ниже )
Команда update – Служит для, непосредственно, обновления, основного дерева портов.
path – Это дополнительная опция, используется с командой extract, для обновления конкретного порта, или нескольких портов.

Итак, если это первый запус Portnap, делаем:
vds-admin /root# portsnap fetch
Looking UP portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap2.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Mon Jun 1 17:22:35 UTC 2009 to Sun Jun 28 08:01:56 UTC 2009.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 2058 patches.....10....20....30....40....50....60....70....80... done.
Applying patches... done.
Fetching 2094 new ports or files... done.

Я недавно обновлял порты, поэтому сейчас это заняло минуту, если обновление дерева портов делается впервые или давненько не делалось, естественно процесс будет куда более долгим. Пугаться этого не стОит, ничего не застряло и не зависло.

Теперь можно распаковать дерево:
vds-admin /# portsnap extract
/Mk
/usr/ports/Templates
/usr/ports/Tools
/usr/ports/accessibility
/usr/ports/arabic
-----------------------------
пропущено..
-----------------------------
/usr/ports/x11/yelp/
/usr/ports/x11/zenity/
Building new INDEX files... done.

Данная команда разворачивает все дерево целиком, поэтому время выполнения не зависит от того, как давно вы обновлялись. У меня на тестовой, не самой сильной машине, с операционной системой FreeBSD 7.1, ушло порядка 15-ти минут

Теперь обновляем:
vds-admin /# portsnap update
Removing old files AND directories... done.
Extracting new files:
/usr/ports/devel/Makefile
/usr/ports/devel/p5-DateTime-Format-SQLite/
/usr/ports/lang/neko/
/usr/ports/security/fakeroot/
/usr/ports/security/tor-devel/
/usr/ports/www/lighttpd/
/usr/ports/www/webcheck/
/usr/ports/www/xpi-noscript/
Building new INDEX files... done.

Вот собственно и все, имеем свежее дерево портов. Если обновление система обнаружит что обновление не требуется, будет выдано соответствующее сообщение:
vds-admin /# portsnap update
Ports tree is already UP to date.

Использование программы Portsnap из планировщика Cron

Согласитесь, очень удобно периодически обновлять порты, практически не принимая в этом участия. Для этого у программы Portsnap, есть специальная команда, Cron. Это именно специальная команда, обычный portsnap fetch, из крона работать не будет. Сделано это не случайно, команда portsnap cron, после запуска, до загрузки чего-либо, отсчитывает произвольный интервал времени от 1 до 3600 секунд, это сделано разработчиками, что-бы снизить кол-вл одновременно подключающихся пользователей к серверу обновлений, а затем приступает к работе.
Настоятельно не рекомендуется прописывать в cron команду update, может получится неприятная ситуация, например, если вы компилируете какую-то программу а cron запустит в этот момент обновление портов.

Что-бы избежать вышеописанной ситуации, нужно обновлять только индексный файл, для этого у программы Portsnap, есть опция «-I».

Итак, в конфигурационном файле /etc/crontab, прописываем следующую строку:
0 0 * * 0 root portsnap -I cron update

С такой конфигурацией, cron, будет выполнять обновление индекса в 00:00 каждого воскресенья.
Не забывайте, что в данном варианте у вас обновляется только индексный файл, а это не есть обновление дерева портов. Для обновления самих портов нужно вручную выполнить команду portsnap update, из командной строки. Делайте это периодически, как того требует ваша политика поддержания системы портов в актуальном состоянии.

Snapshot is corrupt, испортилась база программы portsnap
Fetching 3 metadata files... /usr/sbin/portsnap: cannot OPEN
beea5333deea7ef646b497e9cd751ba72e17fd59708f9eed1f8d857bc585ad70.gz:
No such FILE or directory
metadata is corrupt.

Наличие на экране даннго сообщения ), зачастую говорит о том, что попортилась база данных, программы portsnap. Ничего страшного в этом тоже нет, всякое случается. Исправить можно следующим образом:
vds-admin /# rm -rf /var/db/portsnap
vds-admin /# mkdir /var/db/portsnap
vds-admin /# portsnap fetch extract

30 Ноябрь 2012 г.



метки:



Вверх

Подписаться на RSS

  • Новости
  • Статьи
  • Разделы статей

    Наши контакты

    +7 922 292-00-34

    +7(343)361-52-00

    Напишите нам через форму!!!

    Быстрая форма связи с нами

     
    Ваше имя?*
    Как с Вами связаться?*
    Опишите вопрос или сообщение*
    Введите код *


    Знаком (*) выделены обязательные поля.
    Каталог интернет ресурсов - ИнфоПитер
    1С Предприятие
    1С Предприятие

    Антивирусная защита, FireWall
    Антивирусная защита, FireWall

    Заправка Samsung/Xerox
    Заправка Samsung/Xerox

    Заправка картриджей Brother
    Заправка картриджей Brother

    Заправка картриджей Epson/Konica Minolta
    Заправка картриджей Epson/Konica Minolta

    Заправка картриджей HP/Canon black
    Заправка картриджей HP/Canon black

    Заправка картриджей HP/Canon color
    Заправка картриджей HP/Canon color

    Заправка картриджей Lexmark
    Заправка картриджей Lexmark

    Информационные услуги
    Информационные услуги

    Монтаж локальной сети
    Монтаж локальной сети

    Монтирование кабель каналов
    Монтирование кабель каналов

    Настройка внутреннего оборудования
    Настройка внутреннего оборудования

    Настройка работоспособности переферийного оборудования
    Настройка работоспособности переферийного оборудования

    Обслуживание компьютеров
    Обслуживание компьютеров

    Обслуживание серверов
    Обслуживание серверов

    Оптимизация веб сайтов
    Оптимизация веб сайтов

    Разовые услуги
    Разовые услуги

    Ремонт
    Ремонт

    Ремонт оргтехники
    Ремонт оргтехники

    Создание веб (WEB) сайтов
    Создание веб (WEB) сайтов


    упвап

    Юридические услуги
    Юридические услуги

    Наверх

    ООО "Бизнес Технологии"© 2010 г.

    Написать автору

    Карта сайта