FreeBSD глазами администратора

Более "тонкая" работа.


Все вышеописаные действия можно сделать и с помощью программы 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.

Иван Паскаль pascal@tsu.ru

Comments: info@citmgu.ru

Copyright © CIT



Содержание раздела