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 |
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
Материалы брались из разных источников, в том числе отсюда:
Комментариев нет:
Отправить комментарий