Ну, основные бинарники и конфиги у вас уже стоят. В том числе и ненужные :-). При инсталляции можно отказатся от установки исходных текстов (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.