Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #58, ОКТЯБРЬ 2003 г.

Обновление системы

Владимир Осинцев aka 0с

Xakep, номер #058, стр. 058-074-4


#cd /usr/ports/<категория>/<название_программы> && make install clean // установка порта

#cd /usr/ports/<категория>/<название_программы> && make deinstall // удаление порта из системы

Полезной утилитой для работы с портами является 'portupgrade', для ее установки:

#cd /usr/ports/sysutils/portupgrade && make install clean

Главная возможность, которую предоставляет 'portupgrade, заключается в обновлении всех установленных портов. Основные команды:

#man portupgrade // RTFM

#portupgrade -ra // рекурсивное обновление (по необходимости) всех портов

#portupgarde <название_пакета> // обновление пакета при необходимости

#portupgarde -raF // скачивает все файлы, необходимые для обновления системы в distfiles/

#portupgarde -af // перекомпилирует все порты без исключения

Для эффективной работы с коллекцией портов, их нужно периодически обновлять. Ведь буквально каждый день в систему портов добавляются новые порты, появляются новые версии, убираются ошибки в старых скриптах и т.д. Изменения в дереве портов и многое другое ты найдешь на http://freshports.org. Если же ты хочешь капитально обновить дерево портов, то придется синхронизировать локальную копию с удаленной при помощи фундаментальной утилиты CVSup. Она работает по схеме, схожей с CVS, но на порядок эффективнее: уменьшает трафик, что позволяет сократить общее время загрузки и сэкономить деньги :). Давай разберемся, как же работает CVS. При обновлении дерева исходников (или других текстовых файлов) CVS коннектится к удаленному серверу и начинает выявлять файлы, которые отличаются от локальных. Делает он это самым простым способом: высчитывает MD5 checksum файла и, если он отличается от checksum удаленного файла, закачивает этот удаленный файл на локальную машину и заменяет устаревший файл. Преимущество CVSup в том, что он, при различных checksum, не закачивает файл целиком, а просто передает отличия между двумя файлами - по сути патч. Именно поэтому система CVSup позволят разгрузить сервер, она не столь требовательна к скорости передачи данных, и это делает ее "народной" утилитой там, где скоростной доступ в Сеть еще не вытеснил привычный dial-up. Согласись, удобно? Для работы CVSup нужны sup-файлы, которые находятся в /usr/share/examples/cvsup/. Для корректного обновления дерева портов исправим в файле ports-supfile строку:

*default host=CHANGE_THIS.FreeBSD.org

на

*default host=cvsup.ru.freebsd.org // или зеркало cvsup2.ru.freebsd.org

После этого можно закомментировать строчку 'ports-all' и раскомментировать нужные категории, которые будут обновлены. Для запуска CVSup:

#cvsup /usr/share/examples/cvsup/ports-supfile

Если тебе (как и мне) не нужен графический интерфейс, то из командной строки набери:

#cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile

Если каталог /usr/ports/ пустой, то дерево портов будет выкачано целиком. Аналогично обстоит дело и с исходниками: с помощью команды 'sysinstall' можно установить порты и исходники системы с диска FreeBSD, если это, конечно, не было сделано при инсталляции.

Назад на стр. 058-074-3  Содержание  Вперед на стр. 058-074-5