Открывай ворота!


Сергей А.ЯРЕМЧУК
N 41 (264) 13.10.2003

На мой взгляд, основная причина того, почему пользователи игнорируют BSD-системы, — отсутствие информации об их преимуществах в сравнении с Windows. Подобного рода информации, ориентированной на рядового пользователя, как говорится, кот наплакал. Попробуем обратить внимание пользователей на основные возможности BSD-систем.

Найти подходящее приложение под Windows не составляет труда, а вот пользовательские программы под Unix только начинают набирать обороты. Насущная задача обозревателя — разобраться во всем их многообразии, определить лидеров и, конечно, донести об этом пользователю. Частично в этом нелегком деле могут помочь статьи Петра ‘Roxton’ СЕМИЛЕТОВА «Джентльменский набор пингвинятника» (МК №39, 41 (262, 264)). У меня, например, на сегодняшний день собрано 2.5 Гб еще не опробованного софта, не говоря уже о здоровенном списке интересных ссылок. В общем, не могу я сразу обо всем интересном рассказать.

Но давайте от слов перейдем к делу и начнем знакомиться с ОС OpenBSD. Так уж получилось, что мой плановый поход на сайт OpenBSD ( http://www.openbsd.org) совпал с выходом следующей версии системы 3.3, установку которой я и буду рассматривать. Взять необходимые файлы абсолютно бесплатно можно, например, с официального сервера ftp://ftp.openbsd.org/pub/OpenBSD/3.3 или с любого другого зеркала, список которых можно найти на сайте (только не со штатовских — реэкспорт криптографии официально оттуда запрещен, так что пускай янки спят спокойно :-)). Хотя в продаже можно встретить и CD-ROM с системой, но скачать ISO-образ, чтобы потом спокойно загрузиться с него, увы, не получится — это единственная услуга, которая не поддерживается. Для Intel-совместимых платформ все необходимые для установки файлы находятся в директории i386, дополнительно в tools можно найти некоторые вспомогательные инструменты вроде rawrite. В каталоге i386 лежит множество файлов, для успешной установки и работы нашей системы хватит лишь некоторых (общий объем закачиваемых файлов колеблется от 35 — 200 Мб). Назначение их таково:

• floppy33.fs — для настольных систем; поддерживает PCI и ISA, простые SCSI-адаптеры и отчасти PCMCIA;

• floppyB33.fs — для серверов; поддерживает RAID и SCSI, но исключена поддержка некоторых устройств нижнего уровня, а также устаревших (например, EISA- и ISA-);

• floppyC33.fs — для ноутбуков; поддерживает Cardbus- и PCMCIA-устройства, встречающиеся в этих компьютерах;

• cdrom33.fs — комбинация всего вышеперечисленного; может быть использована для создания 2.88-Мб дискеты или загружаемого CD-ROM;

• cd33.iso — готовый для записи на болванку образ cdrom33.fs.

Вышеперечисленные файлы предназначены для первоначальной загрузки и для проведения спасательных работ; по функциональности они идентичны, отличаются только поддерживаемым оборудованием, объем — 1.40 Мб (кроме последних двух по 2.87 Мб). Для установки на домашний компьютер необходим floppy33.fs при загрузке с флоппи-диска или cd33.iso — с загрузочного CD-ROM’а. Сама же система находится в tgz-архивах:

• bsd — универсальное GENERIC i386 ядро

• bsd.rd — сжатое RAMDISK-ядро; внедренная файловая система, содержит инсталляционные инструменты. Может использоваться для простой инсталляции;

• base33.tgz — основные бинарники, библиотеки и скелет файловой системы, необходимые для минимальной работы (29.5 Мб);

• comp33.tgz — утилиты и заголовочные файлы (/usr/include), необходимые для компилирования программ в С, С++ и fortran, плюс man-страницы по теме (15.8 Мб);

• etc33.tgz — здесь содержатся конфигурационные файлы системы. При первой установке данный набор должен быть обязательно установлен; при модернизации все конфигурационные файлы необходимо обновлять вручную (1.43 Мб).

• game33.tgz — очень важный набор приложений, позволяющий не умереть со скуки в свободное время (2.6 Мб);

• man33.tgz — все man-страницы, не включенные в остальные комплекты. Хотя обилие документации под Unix сейчас уже даже считается недостатком (из-за занимаемого места и количества), установите обязательно: некоторые команды отличаются своими параметрами от Linux (5.78 Мб);

• misc33.tgz — включает системные словари (/usr/share/dict) и некоторую документацию (1.78 Мб);

• xbase33.tgz, xfont33.tgz, xserv33.tgz, xshare33.tgz — содержит программы, заголовочные файлы, серверы и библиотеки — в общем, все, что нужно Х-Window. Если компьютер, на который устанавливается OpenBSD — не сервер, и планируется использование графической оболочки, лучше забрать все (или взять прямо с сайта http://www.xfree86.org) — 8.84 Мб, 29.9 Мб, 14.5 Мб, 1.53 Мб.

Как видите, список немаленький. Если кому показалось много, то на первое время достаточно ограничиться обязательными base33.tgz, etc33.tgz и bsd (все вместе — 35.3 Мб), а также man33.tgz, где можно найти ответы на попутно возникающие вопросы. После того как пакеты будут скачаны, можно приступать к установке. Весь процесс довольно подробно описан в файле INSTALL_i386, который лежит здесь же на ftp, а также в OpenBSD 3.3 Installation Guide ( http://www.openbsd.org/faq/faq4.html), перевод которого, правда, на момент написания статьи еще не полностью законченный, валяется на сайте поддержки русскоязычных пользователей системы — http://www.openbsd.ru. Для новой системы, конечно, желательно иметь еще один жесткий диск, но можно обойтись и одним — OpenBSD отлично уживается на одном диске со всеми популярными на сегодня операционными системами. Только всегда старайтесь использовать для создания и форматирования разделов средства, идущие в поставке вместе с устанавливаемой операционной системой, тогда проблем будет меньше. Для начала необходимо создать диск, с которого будем загружаться. Если на компьютере имеется дисковод, тогда под Windows при помощи программы rawrite.exe (или rawritewin.exe) записываем образ floppy33.fs на дискету. Под Linux можно воспользоваться командой dd:

# dd if=floppy33.fs of=/dev/fd0 bs=36b

Если кто уже расстался с этим раритетом, то запишите на болванку cd33.iso — для этого подойдет любая программа для записи, в том числе и под Windows (там есть опция записи iso-образов, ее и используйте). Теперь необходимо куда-то записать файлы с системой. Впрочем, можно все поименованные файлы (а также исходники системы — но о них ниже, давайте хоть это пока установим) записать на CD-ROM, сделать его загрузочным и в дальнейшем не ломать себе голову. Я не хотел особо утруждать себя — просто создал загрузочную дискету, а все остальное записал на отдельный CD-RW диск; при этом, чтобы затем меньше приходилось набирать в командной строке (лентяй я, что поделаешь), tgz- и bsd*-файлы я поместил в каталог /3.3/i386. После этих манипуляций — 5 минут релаксации (на всякий случай — нервы могут понадобиться), выставляем BIOS и загружаемся с дискеты (CD-ROM'a). Неважно, с помощью чего вы загружались — система ведет себя одинаково.

После появления приглашения >boot просто нажмите Enter (или help) — в память загружаются ядро и программы, необходимые во время инсталляции и спасательных работ (в т.ч. rescue). При этом будут выдаваться сообщения о найденном оборудовании (белые на синем фоне, dmesg) — постарайтесь проследить за ними, обращая внимание на failed и тому подобное; после остановки их можно полистать при помощи Shift+PgUp, а в дальнейшем просмотреть в /var/run/dmesg.boot. После система остановится, и появится такое сообщение:

rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell? I

Нам предлагают на выбор три варианта:

• I — установка; при этом на указанных разделах будут уничтожены все данные;

• U — апгрейд версии, при этом не будут запрошены файлы из etc33.tgz, которые можно затем обновить вручную, также данный тип инсталляции не предполагает пропуск релизов. Поэтому версию 3.1 сначала нужно проапгрейдить до 3.2, а затем уже до 3.3;

• S — войти в командную оболочку для подготовительных или спасательных работ.

Еще хочу пару слов сказать о сложности установки — это то, чем обычно пугают пользователя. Да, хотя установка OpenBSD не блещет графическими красотами и от начала до конца проходит в командной строке, если делать все внимательно, никаких особых сложностей возникать не должно (вот настроить ее потом, это да — придется немножечко… почитать). К тому же система выдает вполне внятные подсказки. У меня на моем трехсотом Целероне на это уходит от 10 до 15 минут времени, в зависимости от настроения. При этом установку можно прервать в любом месте, нажав Ctrl+C, и начать заново, набрав install. После выбора варианта установки система поприветствует вас, чтобы приободрить:

Welcome to the OpenBSD/i386 3.3 install program.

И дальше будет задавать каверзные вопросы. При этом иногда выдается подсказка для дальнейших действий; набрав !, можно выйти в shell, а !command позволяет выполнить любую команду оболочки, не прерывая хода инсталляции. Ответы по умолчанию (подходящие в большинстве случаев) заключены в квадратные скобки — [done]. Предметом следующего вопроса будет используемый тип терминала:

Specify terminal type: [vt220] Enter

Мы работаем за персональным компьютером, никаких излишеств, поэтому просто выбираем то, что нам подсовывают (жмем Enter). Следующим будет клавиатурный вопрос:

Do you wish to select a keyboard encoding table? [n] y

Если предлагают выбрать другую кодировку для клавиатуры, почему бы и не попробовать? Далее предлагают выбрать тип используемой клавиатуры:

Select keyboard type (P)C-AT/XT, (U)SB or done [P] U

последний вариант для тех, у кого USB’шный маус.

Затем следует вопрос об имени таблицы; в предлагаемых вариантах есть и ru с ua:

Table name? [us] ru

Подготовительный этап можно считать законченным. Далее следует разбиение диска — самая трудная (скорее, непривычная) часть, здесь нужно быть внимательным.

Когда система нас вдоволь попугает вопросами о необходимости сохранения данных на диске где-нибудь подальше (куда не доберется программа-инсталлятор), последует вопрос о продолжении инсталляции. Если еще не испугались (данные мы, конечно же, сохранили, и потому можем кромсать диск нещадно), отвечаем y (ответ по умолчанию остановит процесс):

Proceed with install? [n] y

Подготовка дисковых разделов в OpenBSD производится в два этапа.

Первым делом диск разбивается на slice при помощи fdisk, затем уже в slice определяются разделы с помощью disklabel. Терминология и обозначение разделов (а также их рекомендуемое количество) во FreeFSD и OpenBSD ничем не отличаются, поэтому, если чего будет неясно, посмотрите подробности в статье об установке FreeFSD — повторяться неохота.

Чтобы совсем уж нам не унывать, система опять подбадривает пользователя, готового нажать заветную комбинацию:

Cool! Let's get to it...

И далее сообщает о найденных дисках и спрашивает, какой из них будет корневой, т.е. основной. С корневого диска система будет загружаться, также на нем обычно размещается файл подкачки. Если OpenBSD будет единственной системой, то достаточно использовать вариант по умолчанию, в ином случае необходимо будет установить загрузчик. Чтобы иметь возможность запустить OpenBSD, в некоторых BIOS имеется возможность загрузки со второго диска — поначалу можно использовать и этот вариант. Выглядит все это так:

Available disks are: wd0 wd1.
Which one is the root disk? (or done) [wd0] Enter или wd1 или done

Думаю, ясно, что wd0 — первый диск в системе, wd1 — второй; SCSI-диски и устройства RAID будут обозначены как sd0, sd1 и далее. Если система не обнаружила какие-то диски, то скорее всего, они не поддерживаются (я, признаться, пока не сталкивался с такой ситуацией). Теперь, когда с диском определились, программа установки предлагает использовать весь диск как один слайс. Если больше не планируется систем на этом диске, или если данный компьютер — сервер, то такой вариант вполне подходит (отвечаем y). В остальных случаях выбираем предлагаемый по умолчанию вариант и готовимся резать вручную: сама система с дополнительными программами места больше 1 Гб вряд ли потянет — по сегодняшним меркам это не так уж и много, — а на соседнем слайсе можно приютить и FreeBSD. Что ж, жмем Enter.

Do you want to use *all* of wd1 for OpenBSD? [no] Enter

После чего будет выведена текущая геометрия диска, и появится приглашение к вводу дальнейших команд. Для справки о назначении тех или иных параметров вводим help:

fdisk: 1> help
help Command help list
manual Show entire OpenBSD man page for fdisk
reinit Re-initialize loaded MBR (to defaults)
setpid Set the identifier of a given table entry
disk Edit current drive stats
edit Edit given table entry
flag Flag given table entry as bootable
update Update machine code in loaded MBR
select Select extended partition table entry MBR
print Print loaded MBR partition table
write Write loaded MBR to disk
exit Exit edit of current MBR, without saving changes
quit Quit edit of current MBR, saving current changes
abort Abort program without saving current changes

Из всего этого списка особого внимания требуют следующие:

• r или reinit — очищает существующую таблицу разделов, создает один большой OpenBSD-раздел и отмечает его как активный. Аналогично ответу yes на вопрос use *all* of ...

•p или print — показывает текущую таблицу в секторах: если ввести p m, то в мегабайтах, p g — в гигабайтах;

• e или edit — редактирование или изменение записи таблицы;

• f или flag — отмечает раздел как загрузочный, то есть тот, с которого будет производиться загрузка;

А также exit или quit. Заметим попутно, что последние имеют совершенно противоположное действие. Если exit позволяет выйти, не внося никаких изменений, в таблицу разделов (очень полезная опция, если хочется начать разбиение сначала), то quit перед выходом все изменения запишет.

Для редактирования вводим е со следующим свободным номером раздела:

fdisk: 1> e 1

После чего выведется таблица, содержащая не используемые unused-разделы. Следующим шагом будет вопрос об идентификаторе; для разделов OpenBSD используется a6:

Partition id ('0' to disable) [0 — FF]: [0] (? for help) a6

Редактировать текущую таблицу можно в виде Cylinder/Heads/Sectors или напрямую в секторах. Какой вариант использовать — ваше дело; иногда наиболее удобный способ подсказывает информация о разделах (ничего, после пары exit'ов уже появятся навыки :-)):

Do you wish to edit in CHS mode? [n] y

Дальше необходимо вводить информацию о начальных и конечных значениях секторов, цилиндров — все, о чем спросят. Например, если до этого таблица разделов выглядела так:

Starting Ending LBA Info:
#: id C H S — C H S [ start: size ]
------------------------------------------------------------------------
*0: 06 0 1 1 — 202 239 63 [ 63: 3069297 ] DOS > 32MB
1: 00 0 0 0 — 0 0 0 [ 0: 0 ] unused

то ответы будут такими:

BIOS Starting cylinder [0 — 2585]: [0] 203
BIOS Starting head [0 — 239]: [0] Enter
BIOS Starting sector [1 — 63]: [0] 1
BIOS Ending cylinder [0 — 2585]: [0] 2585
BIOS Ending head [0 — 239]: [0] 239
BIOS Ending sector [1 — 63]: [0] 63

Теперь проверяем при помощи p или лучше p m , что мы там такое натворили:

fdisk:*1> p m

И проверяем, чтобы вновь образованный slice не залез на раздел с данными. А если что, делаем маленький exit и тренируемся. Обратите внимание — в приглашении появился знак *, указывающий на несохраненные данные. Если OpenBSD будет единственной системой, то нужно проверить наличие знака активности раздела — это опять же * возле его номера. При необходимости этот знак можно установить, использовав опцию f с указанием номера раздела:

fdisk:*1> f 1
Partition 1 marked active.

Опять проверяем таблицу, и если все нормально, выходим:

fdisk:*1> w
Writing MBR at offset 0.
wd1: no disk label
fdisk: 1> q

Все, теперь на диске появился слайс OpenBSD. Далее необходимо нарезать на нем нужное количество разделов при помощи disklabel, которая запустится автоматически после выхода из fdisk.

Initial label editor (enter '?' for help at any prompt)
> ?

Из всех выведенных опций нас интересует всего пять:

• a [part] — добавление нового раздела;

• d [part] — удаление раздела;

• p — печать текущих разделов на экран (можно использовать модификаторы k, m или g для килобайт, мегабайт или гигабайт);

• D — очищает все имеющиеся отметки и устанавливает отметку по умолчанию, которая затрагивает только текущий раздел;

• m [part] — изменяет существующий раздел.

(Продолжение следует)




Открывай ворота!

Сергей А.ЯРЕМЧУК
N 42 (265) 20.10.2003



Продолжение, начало см. в МК № 41 (264).

Для OpenBSD должны быть созданы как минимум два раздела — корневой а (/) и раздел подкачки b (буква с означает весь жесткий диск — даже не пытайтесь использовать или изменить его).

Для начала смотрим имеющиеся разделы.

> p m

После вывода информации о геометрии диска получаем что-то вроде

# size offset fstype [fsize bsize cpg]
a: 17593.2M 1498.7M unused 0 0
c: 19092.9M 0.0M unused 0 0
i: 1498.7M 0.0M MSDOS

Здесь показано, что на диске объемом 19092.9 Mб (буква с), находятся два раздела MSDOS размером 1498.7 Mб, а также неиспользуемая область размером 17593.2 Mб (смещение offset 1498.7 Mб от начала).

Для начала удаляем все, что есть в unused-разделе а:

> d a

И создаем первый раздел в слайсе — это будет корневой, т.е. а; обратите внимание — размер можно указывать в мегабайтах, при этом он автоматически будет подогнан к ближайшему цилиндру.

> a a
offset: [3069360] Enter
size: [36030960] 150M
Rounding to nearest cylinder: 307440
FS type: [4.2BSD] Enter
mount point: [none] /

Затем своп — буква b (при этом FS type swap будет предложен автоматически). Хочу отметить, что все BSD-системы используют своп немного иначе, чем Linux. Если Linux начинает сбрасывать туда данные только тогда, когда оперативная память практически заполнена (по наблюдениям, остается что-то около 10% свободной), то в *BSD условием сброса приложения в своп является отсутствие обращения к странице памяти в течение определенного времени, при этом ОЗУ может быть практически свободным. Поэтому, если есть место, то выделите под своп побольше (в разумных, конечно, пределах):

> a b
offset: [3376800] Enter
size: [35723520] 300M
Rounding to nearest cylinder: 614880
FS type: [swap] Enter

И далее, используя оставшиеся буквы, разбиваем на нужное количество разделов:

> a d
> a e

Покончив с разметкой, проверяем снова, что там получилось:

> p m

Если результат удовлетворяет, записываем изменения и выходим:

> q
Write new label?: [y] Enter

Но это еще не все. Чтобы иметь возможность исправить ошибки, программа установки на всякий случай запросит подтверждение точек монтирования, указывая при этом размер и название раздела — для всех, кроме корневого и свопа. Если все нормально, жмем Enter:

Mount point for wd0d (size=122976k), none or done? [/tmp] Enter

Далее опять явно подтверждаем свое желание искромсать диск:

The next step creates a filesystem on each partition, ERASING existing data.
Are you really sure that you're ready to proceed? [n] y

Уф! После этого можно спокойно вздохнуть — все разделы будут отформатированы, и в случае ошибки все равно уже ничего нельзя будет восстановить.

Самое трудное осталось позади. Далее идут привычные вопросы об имени хоста (сохранится в файле /etc/myname), каковое будет использовано при генерации криптографических ключей для системы в процессе первой загрузки системы. Причем, эта операция будет произведена вне зависимости от того, были ли сконфигурированы сетевые параметры или нет:

Enter system hostname (short form, e.g. 'foo'): grinder

Затем система попросит настроить сеть; если установка будет производиться при помощи ftp или NFS, то необходимо правильно ввести все параметры — от этого зависит успех дальнейших действий.

Configure the network? [y] Enter

После чего система сама определит имеющиеся сетевые интерфейсы и по каждому задаст вопросы об IP-адресе (для модема подойдет в большинстве случаев dhcp), сетевой маске, DNS-имени и IP-адресе DNS-сервера, а также сетевой маршрут, используемый по умолчанию (IP-адрес провайдера). После чего представится возможность ручного редактирования файла /etc/hosts при помощи ed. Я обычно заношу в него наиболее посещаемые ресурсы с алиасами (для ускорения набора), а также ложные IP-адреса для баннерных сетей, что позволяет избавиться от последних без особых усилий, не прибегая к squid, firewall и т.п. Для этого в файл заношу такие строки (имена узла подставьте сами):

127.0.0.1 banerov.net
127.0.0.1 banerov.snova.net и т.д.

Файл /etc/resolv.conf, в котором описывается порядок поиска имен хостов, привожу к следующему виду (в результате данные сначала разыскиваются в локальном файле):

domain mydomain.com
lookup file bind

И в довершение вводим пароль root'a. После этих процедур все диски будут смонтированы и готовы к установке. Следующим этапом будет выбор носителя, с которого будет производиться инсталляция:

Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server.

Если вы помните, все необходимые для установки файлы были записаны на СD-ROM, поэтому выбираем этот вариант. А так как все файлы находятся в каталоге 3.3/i386, выбираем папку по умолчанию. Приблизительно так.

Where are the install sets? c
Available CD-ROMs are: cd0.
Which one contains the install media? (or 'done') [cd0] Enter
Pathname to the sets? (or 'done') [3.3/i386] Enter

И наконец пришел час выбора пакетов для инсталляции. Сначала система выдаст вариант по умолчанию и затем предложит убрать или добавить. Чтобы установить все, достаточно просто набрать all; если пакет не нужен, то в предлагаемом варианте ставим -имя_пакета (например, -x* удалит все пакеты X-Window).

[X] bsd
[ ] bsd.rd
[X] base33.tgz
[X] etc33.tgz
[X] misc33.tgz
[X] comp33.tgz
[X] man33.tgz
[X] game33.tgz
[ ] xbase33.tgz
[ ] xshare33.tgz
[ ] xfont33.tgz
[ ] xserv33.tgz
File Name? (or 'done') [bsd.rd] all

Теперь вас опять попросят подтвердить свой выбор, после чего начнется собственно инсталляция. Чтобы в дальнейшем иметь возможность запускать Х-Window, ответьте утвердительно на вопрос (если, конечно, вам это нужно).

Do you expect to run the X Window System? [y] y

Это чтобы занести строку machdep.allowaperture=1 в файл /etc/sysctl.conf.

И теперь выбор временной зоны — для подсказки можно ввести знак вопроса: ?

What timezone are you in? ('?' for list) [US/Pacific] Europe/Kiev

Все. Установку системы можно считать законченной. После перезагрузки можно начинать эксплуатировать. Первым делом, чтобы знать, за что хвататься, советую прочитать man afterboot, где даны некоторые советы по первоначальной настройке системы. Хотя я и считаю, что компьютер с этой системой после настройки запихивается ногой под стол и дальнейшее конфигурирование осуществляется удаленно при помощи Secure SНell, поэтому необходимости в установке и настройке X-Window нет, а на домашнем компьютере BSD устанавливается скорее для души, которую не хочется омрачать графикой, — но почему бы и нет? Правда, перед запуском ее необходимо поначалу настроить — об этом я уже писал в отдельной статье, где все очень подробно изложил, так что особых проблем, думаю, быть не должно. Кстати, графическую утилиту настройки xf86cfg мне приходилось видеть работающей только в *BSD-системах — ни в одном Linux'e она почему-то нормально ни разу не запустилась. Интересно, что в версию 3.3 i386 включены сразу аж два XFree86 — 4.2.1 и 3.3.6, что обеспечивает поддержку любого набора микросхем.

Вдоволь наигравшись базовым набором утилит (разработчики задумали сделать систему маленькой, но безопасной, а потому многие инструменты в нее не включены по умолчанию), принимайтесь за установку системы портов (то, о чем речь пойдет ниже, в той или иной мере касается и всех остальных *BSD), все файлы которой доступны в архиве ports.tar.gz, который можно найти на ftp ( ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/ports.tar.gz, 5.81 Мб). Этот архив обновляется каждую ночь.

Теперь для установки выполняем следующие команды:

# cd /usr
# tar xvfz /path/to/ports/ports.tar.gz

Еще можно получить наиболее свежую версию портов при помощи системы контроля версий CVS (concurrent versions system):

# cd /usr/ports /; cvs -q -d anoncvs@cvsup.uk.openbsd.org:/cvs up -r OPENBSD_3_3 -Pd

Или с любого другого сервера, список которых дан в документации на сайте. Причем, если вам удалось достать СD-ROM с OpenBSD, на нем можно найти дерево CVS — оно, конечно, старовато, но установив его, можно впредь скачивать только обновления, а не тянуть все заново. Теперь появилась возможность устанавливать недостающие программы аж двумя способами — при помощи системы портов и в виде пакаджей. Но важно помнить, что безопасен только базовый набор программ, который проходит полную ревизию защиты; все, что устанавливается дополнительно, уже может иметь баги (хотя разработчики и стараются из всех сил этого избежать), которые могут повлиять на общую стабильность системы. Так что если сисадмину стало известно о проблемах в какой либо программе, не стоит лелеять себя надеждой, что это не про нас — мол, OpenBSD security forever, — лучше тут же обновить ее, не дожидаясь неприятностей.

Пакаджами (которые являются некоторым аналогом rpm-пакетов из мира RedHat и выглядят как простые архивы .tgz) пользоваться проще всего. Достаточно указать утилите pkg_add путь, и пакет будет тут же установлен (например, чтобы не умереть со скуки во время изучения системы):

# setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/3.3/packages/i386/
# pkg_add ${PKG_PATH}mpg123-0.59r.tar.gz

После чего можно спокойно слушать музыку.

Удалить пакет также просто: pkg_del имя_пакета; получить информацию об установленном пакете — pkg_info. Как видите, вместо непонятных с трудом запоминаемых ключей используются простые команды.

Использование портов также не представляет большой сложности. Чтобы установить выбранную программу, переходим в каталог с ее портом:

# cd /usr/ports/net/nmap/
# su
# make
# make install
# exit

При этом программа забирается с сайта разработчика, проверяется на правильность закачки и контрольную сумму, архив распаковывается, добавляются патчи, приложение конфигурируется и компилируется, после чего создается пакадж, который затем устанавливается. Пользователь может при желании менять под свои нужды Makefile или устанавливать необходимые переменные в файле /etc/mk.conf (в качестве примера взяв /usr/share/mk/bsd.own.mk).

Обновлено: 13.03.2015