RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Как добавить из дистрибутива то, что вы не поставили в процессе инсталляции системы?
Ну, основные бинарники и конфиги у вас уже стоят. В том числе и ненужные :-). При инсталляции можно отказатся от установки исходных текстов (src), системы X-Window, игрушек (games), и различной документации (manpages, doc, info, dict).
Кроме того, существует большое колличество дополнительных программ в виде пакетов (packages) и портов (ports). Но о них разговор отдельный. Смотри: Установка "пакетов" (packages). Установка "портов" (ports).
Итак. Добавление из дистрибутива ...
1. С помощью программы sysinstall. Это самый легкий способ. Но... Sysinstall все еще в процессе совершенствования :-), и я не уверен, что эти рекомендации подойдут к любой версии. Кроме того, ему не хватает гибкости.
Надеюсь, что вы уже точно знаете - что именно из дистрибутива вам нужно и откуда его (дистрибутив) можно взять. Итак...
1. Запустите программу
/stand/sysinstall
2. В главном меню выберите пункт
Configure - Do post-install configuration of FreeBSD
3. В меню "FreeBSD Configuration Menu" выберите пункт
Distributions - Install additional distribution sets
4. В меню "Choose Distributions" выберите (пробелом) пункт
> > Custom - Specify your own distribution set
5. Теперь можно пометить (пробелом) то, что вам нужно. Если вы отметите src или XFree86 появятся дополнительные меню для уточнения - что вам из этого надо. Естественно, не надо просить то, что у вас уже стоит.
6. Нажимая <Enter> возвращайтесь из меню. В конце концов программа спросит вас - откуда брать дистрибутив. Здесь вариантов много. Надеюсь, вы знаете - что выбрать. :-)
Вот, в общем, и все. Если вы правильно указали где брать дистрибутив все поставится автоматически. Можно выходить из программы.
Поэтому, предлагаю еще один, несколько более трудоемкий, но надежный и гибкий способ... 2.Установка "вручную".
Будем считать, что дистрибутив вам доступен для просмотра и копирования. Если он находится на CD, отдельной партиции винчестера или доступен по NFS - смонтируйте его в любую подходящую директорию.
Если вы можете скопировать его через FTP или через флопики - выберите ту часть, которая вас интересует (можете посмотреть "Содержание дистрибутива FreeBSD") и скопируйте в подходящую директорию.
Что именно нужно копировать?
Если речь идет о "монолитных" частях дистрибутива (info, games, manpages и т.п), то забирайте все, что лежит в соответствующей директории дистрибутива. Если вам нужны исходники (директория src), то выберите - какой из архивов вас интересует и берите все файлы с таким названием. Например, если вам нужны исходники ядра, берите все файлы с именем ssys (ssys.aa, ssys.ab и т.д.). Кроме того, очень полезно взять еще файл install.sh из этой же директории.
Несколько слов о том, что это за файлы. На самом деле это архив *.tgz (tar-архив сжатый GNU zip'ом), только порезанный на кусочки программой split. Эти кусочки можно "склеить" обратно в единый файл командой cat после чего обращаться с ним как и с другими файлами типа tgz.
Однако, вам этого делать не обязательно.
"Извлечение"
Просто запустите командный файл install.sh из этой директории: sh install.sh он сам выполнит последовательно команды cat, которая "сольет" кусочки в единый файл и tar (с соответствующими ключами), которая развернет получившийся архив в нужную директорию. Если вы хотите развернуть какой-либо архив из исходников, то install.sh нужно указать в качестве аргумента имя архива (без начальной буквы "s") или all, если вы хотите развернуть все исходники. Например, для тех же исходников ядра: sh install.sh sys
Более "тонкая" работа.
Все вышеописаные действия можно сделать и с помощью программы sysinstall. Однако, вручную можно сделать и более "тонкую" работу. Например, "вытащить" исходники только одной конкретной программы. Или "достать" из дистрибутива сдержимое директории /etc, какой она была в оригинале (если вы вдруг безнадежно испортили какой-нибудь файл при настройке).
Прежде всего, определите - в каком из дистрибутивных архивов лежит то, что вам нужно. Если речь идет об исходниках какой-то программы, найдите саму программ в своей развернутой системе (например, с помощью команды locate). По названию директории, в которой она находится, можно определить в каком из архивов искать ее исходники (см. "Содержание дистрибутива FreeBSD"). Естественно, если вам надо саму программу в бинарном виде или файлы из /etc, то их надо искать в той части дистрибутива, которая называется bin.
Теперь просмотрите соответствующий архив. cat file.?? | tar tzvf - | more (вместо more лучше использовать less, если он у вас уже стоит) естественно, вместо file в команде должно быть имя конкретного архива.
Если вы не обнаружили в архиве то, что искали - попробуйте просмотреть другие архивы (например, часть исходников лежит в архивах scontrib и sgnu).
Если вы нашли, то что искали, можно приступать к "извлечению" из архива. Решите, в какую директорию вы хотите положить извлеченное и запускайте команду cat file.?? | tar xzf - -C "куда положить" "что взять"
Например: cat sgnu.?? | tar xzf - -C /home/vasia */uucp
Обратите внимание, что в архиве может быть большое дерево из директорий, и, те файлы, которые вам нужны, могут иметь длинный "префикс" из названий поддиректорий (так файлы-исходники uucp в архиве sgnu, выглядят как gnu/libexec/uucp/...). Поэтому в команде, в том месте, где "что взять", надо либо прописать начало имени полностью - gnu/libexec/uucp, либо начать со звездочки - */uucp. Кстати, в директории, куда вы извлекаете файлы, в этом случае создастся соответствующий кусочек дерева из архива. То есть, директория gnu, в ней - libexec, а в ней - uucp со всем своим содержимым.
Подробности о других возможностях программы tar можно почитать в соответствующем man'уале man tar.