воскресенье, 6 декабря 2009 г.

Полезности при обновлении системы и портов FreeBSD

Настройка обновления через make update:

server$ cat /etc/make.conf

SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST=cvsup3.ru.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile

Для обновления:

server$ cd /usr/ports
server$ make update

после обновления портов через cvsup, необходимо сделать построение индекса: portsdb -Uu

Если хотим указать постоянные опции сборки порта, то в /etc/make.conf:


server$ cat /etc/make.conf

.if ${.CURDIR:N*/ports/mail/mutt-devel} == ""
NOPORTDOCS=yes
WITH_MUTT_NCURSES=yes
WITHOUT_MUTT_SGMLFORMAT=yes
WITH_MUTT_XFACE=no
WITH_MUTT_SIGNATURE_MENU=yes
WITH_MUTT_MAILDIR_MTIME_PATCH=yes
WITH_MUTT_NNTP=yes
WITH_MUTT_HTML=yes
WITH_MUTT_IMAP_HEADER_CACHE=yes
WITH_MUTT_MAILDIR_HEADER_CACHE=yes
.endif


Опции make:
fetchindex Скачать индекс- альтернатива portsdb -Uu
fetch Загрузить исходные тексты
fetch-list Показать список файлов, какие будут загружены командой fetch
fetch-recursive Загрузить исходные тексты рекурсивно, т. е. со всеми зависимостями
fetch-recursive-list Показать список файлов, какие будут загружены командой fetch-recursive
fetch-required Загрузить еще не установленные части/зависимости для данного пакета
fetch-required-list Показать список еще не установленных частей/зависимостей для данного пакета
readmes Сгенерировать readme.html с описаниями портов
rmconfig удалить сохранённую информацию об опциях выбранных ранее при make configure
search name = Поиск пакета по названию пакета
search key = Поиск пакета по ключевому слову
checksum Проверить контрольные суммы.
depends Перестроить зависимости
extract Извлечь файлы пакета в каталог ./files
patch Приложить "заплатки"
configure Запустить сценарий configure (если есть)
build собрать приложение из исходных тестов.
install Установить пакет
reinstall Переустановить пакет
deinstall Удалить пакет
package Собрать двоичный пакет (*.tbz) из уже установленного
package-recursive Собрать двоичные пакеты (*.tbz) из уже установленного и всех его зависимостей
clean "почистить" исходники после сборки.


Полезные утилиты по работе с портами:
pkg_info -xL порт Отобразит все установленные файлы для пакета
pkg_info -xc имя Выведет однострочный комментарий для всех приложений, начинающихся с "имя"
pkg_info -xD Показать установочное сообщение для указанного пакета
pkg_info -R порт Покажет какие приложения зависят от указанного
pkg_which файл Определить какому порту принадлежит файл
pkg_which -o порт показать где расположен порт в дереве портов
portupgrade -rR порт -l logfile проапгрейдить порт и направить вывод в файл, названный logfile
portsclean -D Удаление старых дистфайлов

fastest_cvsup Поиск ближайшего cvsup сервера
и например такой скрипт:

#!/bin/sh
if SRV=`fastest_cvsup -q -c ru,uk`; then
cvsup -g -L 2 -h $SRV /root/scripts/ports-supfile
fi

Сборка документации:

server$ cd /usr/ports/textproc/docproj && make install clean
А после этого соберем саму документацию. Например в формате html:

server$ cd /usr/doc && make FORMATS="html" install clean

Автоматизировать процесс установки FreeBSD на несколько машин:
Для автоматической установки достаточно создать профайл инсталляции
install.cfg, скопировать его на дискету, а в sysinstall при установке
выбрать пункт меню "Load Config".
Пример install.cfg можно найти в /usr/src/release/sysinstall/install.cfg



Использования nc (netcat) в качестве прокси для cvsup и csup.
rc.conf:
inetd_enable="YES"

inetd.conf:
cvsup stream tcp nowait root /usr/bin/nc nc -xA.B.C.D:8080 -Xconnect cvsup2.ru.freebsd.org 5999

supfile:
*default host=127.0.0.1

Отключение сборки модулей ядра:
Практически любой системный администратор, который сталкивался с FreeBSD,
компилировал ядро под себя, выбрасывая оттуда лишние "детали" или вставляя недостающие.
Между тем выброшенная из ядра "деталька" никуда не девается и при повторной компиляции
превращается в модуль (за редким исключением), который всегда можно подгрузить.

Бороться с этим можно с помощью опций в файле make.conf:

# не компилировать все модули
NO_MODULES="YES"
# компилировать только указанные модули
# названия модулей пишутся через пробел
MODULES_OVERRIDE=acpi ipfw
# компилировать все модули, за исключением указанных
WITHOUT_MODULES=pf ntfs_iconv


Материалы брались из разных источников, в том числе отсюда:
http://www.opennet.ru
http://unix-hobby.narod.ru

Комментариев нет:

Отправить комментарий