OpenSolaris 2008.11 Release Продолжение банкета

Алексей Федорчук
10 декабря 2008 г

Прошлая заметка об OpenSolaris закончилась на полуминорной ноте — на невозможности настроить сетевое соединение. Однако в своем пессимизме я был посрамлен очень быстро: буквально на следующий же день, при помощи минного тральщика имени товарища Гугля, искомый драйвер для сетевой карты был обнаружен. Правда, не на каком-то из официальных ресурсов, имеющих отношение к проекту OpenSolaris, а вот здесь. И не вполне в виде, пригодном для немедленного использования, а скорее в чем-то вроде исходников, хотя, как мы увидим ниже, и не совсем. Все это, однако, не делало его хуже — несмотря на намек в одном из форумов, что он вроде как бы не совсем работает.

Немало не смутившись этим обстоятельством, я его скачал (из FreeBSD, где, повторяю, моя сетевушка никаких осложнений не создавала), перетащил в Solaris (с помощью столь хорошо монтирующейся там флэшки — несмотря на одинаковые файловые системы, взаимообмен данными между этими ОС так просто, с кандачка, не получился, вследствие разных схем разметки дисков, вероятно), распаковал и занялся чтением прилагаемого файла README.txt. В котором процедура сборки и установки драйвера была описана вполне внятно.

Так что описывать процедуру не буду — она интересна только обладателям сетевых карт с аналогичным чипом. Скажу только, что сборка, инсталляция и «пристегивание» драйвера завершились благополучно, после чего оставалось только перезагрузить систему, убедиться в наличии нужного сетевого интерфейса (atge0 — подобно FreeBSD, они именуются здесь по имени чипа сетевой карты, а не абстрактными eth#, как в Linux) и через графическое средство настройки сети его активировать.

Получив, наконец, вожделенный доступ к сети, я смог спокойно продолжить знакомство с системой. Каковое сводится к изучению десктопных ее свойств; во внутренности системы я лазал только при крайней необходимости и только в том объеме, который не требовал чтения иной документации, нежели man-страницы. Да, на сайте проекта документации много, и она, по первой прикидке, весьма подробна. Вот только целесообразность ее изучения оставалась для меня под вопросом (забегая вперед, остается в этом качестве и до сих пор).

В аспекте десктопности OpenSolaris представляет собой, как я уже говорил, более или менее обычный GNOME. Правда, последний я знаю плохо, и не всегда мог определить, какие из десктопных фич целиком унаследованы от него, а какие — результат деятельности разработчиков OpenSolaris (и Solaris просто). Забегая вперед, скажу, что после некоторых настроечных манипуляций десктоп приобрел следующую форму (рис. 1).

imp02_01Рис. 1. Десктоп GNOME в OpenSolaris

Однако первое, на чем останавливается взгляд, это переключатель клавиатурных раскладок. Из обсуждений на форумах я давно уяснил, что в GNOME он такой весь из себя хороший и правильный, и всегда работает как надо (знаю-знаю все обсуждения по поводу того, что большинство многолетних пользователей KDE просто не умеют его готовить). Разобраться же с тутошним оказалось не так просто (рис. 2).

imp02_02Рис. 2. Управление клавиатурными раскладками

Во-первых, судя по копирайтам и постоянным оговоркам об его использовании в CDE, это — именно Solaris’овое изобретение, хотя и снабженное логотипом GNOME. Во-вторых, используемая при его настройке терминология, мягко говоря, достаточно своеобразна — как в английском оригинале, так и в русском переводе. В-третьих, если эту терминологию все-таки победить (а победить ее можно с помощью довольно подробного и переведенного на русский язык хелпа), выясняется, что, скажем, изменить переключатель раскладок с умолчального LControl+LShift можно, но отнюдь не произвольным образом. Например. если задать переключение по CapsLock, столь милому сердцу юниксоидов второго призыва, то в результате мы получаем циклическое переключение между кириллицей, латиницей, верхним и нижним регистрами, причем в несколько неожиданном порядке. Правда, для благой цели переключения можно приспособить любую из Win-клавиш, что в принципе не хуже ( а заодно греет душу тем, что клавиша такая не пропадает зазря).

Однако в результате мы переключаемся с латиницы на традиционную кириллическую раскладку DOS-типа — ту самую, где точка и запятая идут на верхнем регистре цифр 7 и 6, соответственно. Не то чтобы это существенно хуже современной Win-раскладки (супротив древней typewriter они все равно не канают), но ведь за годы господства фабричной Win-маркировки клавиатур мы от этого напрочь отвыкли). А вот сменить вариант раскладки — такого средства в GUI-настройках переключателя я не нашел.

Что за беда — скажите вы мне: открой файл xorg.conf и внеси в него строку со значением опции XkbVariant, равным winkeys. С удовольствием бы, отвечу я вам. Только вот традиционный файл /etc/X11/xorg.conf в этой системе не обнаруживается. И вообще, grep’ание соответствующих слов в мало-мальски подозрительных каталогах не выявило файла, в котором явным образом определялись бы параметры XkbLayout и XkbVariant.

Вероятно, проблема со сменой варианта раскладки как-то решаема — но простого способа для этого я не нашел (и вряд ли буду искать более тщательно). Кстати сказать, буквы «йо» в умолчальной раскладке тоже не обнаруживается, что для автоматически определяемой при установке локали ru_RU.UTF-8 довольно странно. Эти строки я пишу аккурат в описываемой системе — так что не удивляйтесь отсутствию вышеозначенной буквы, к которой я за последнее время начал уже привыкать.

В общем-то, проблема с вариантами раскладки — мелочь, но досадная (а в контексте дальнейшего не такая уж и мелкая). Однако вернемся к пользовательскому окружению. Точнее, к входящим в его состав приложениям — о самом окружении от меня хороших слов все равно не дождаться. Разве что можно отметить качественную русификацию интерфейса — но это, видимо, заслуга команды по интернационализации проекта GNOME.

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

imp02_03Рис. 3. Файловый менеджер. Слева внизу — русскоязычные подкаталоги в домашнем каталоге пользователя

Приложений в комплекте не так и много, но подобраны они по уму, и почти перекрывают первоначальные потребности среднестатистического пользователя. Разумеется, наличествует терминал, файловый менеджер и текстовый редактор — штатные для GNOME Terminal, Nautilus (см. рис. 3) и Gedit соответственно. Из консольных реакторов — только vim, но зато в полноценной своей инкарнации. Да, в качестве командной оболочки по умолчанию выступает обычный bash, хотя и плохо (на мой взгляд) настроенный по умолчанию. А вот все системные конфиги, как наследие тяжелого прошлого, несут sha-bang

#!/sbin/sh

или

#!/bin/ksh

Из приложений. имеющих отношение к Сети, обнаруживаются FireFox, Pidgin, Evolution и Thunderbird (имхо, последние оба-два вместе — некоторый перебор для базового комплекта). Из графики — скриншотер, вьювер изображений, gtkam для обращения с цифровыми камерами. Есть средство для просмотра PDF’ов и прочих форматов. Имеется калькулятор, фронт-эндный менеджер архивов, таблица символов.

Мультимедия представлена CD-риппером, аудиоплейером Rythmbox и видеоплейером Totem. Правда, ни тот, ни другой почти ничего не воспроизводят, кроме разве что аудио-компактов и, вероятно, ogg-vorbis (у меня таковых файлов под рукой не случилось). Причина все та же, что и в других юридически правоверных системах — отсутствие кодеков. но это совсем отдельная история.

Риппер (рис. 4) без дополнительных кодеков также способен вытаскивать записи с компактов только в открытых форматах типа того же ogg-vorbis и, что для меня оказалось важнее, во flac. Чем я немедленно воспользовался для оцифровки альбома The Best of France, до которого руки никак не доходили — а тут типа как тестировал возможности программы.

imp02_04Рис. 4. CD-риппер

Обращает на себя внимание видимое отсутствие в умолчальном комплекте какого-либо фронт-энда для записи CD- и DVD-дисков (хотя утилиты mkisofs и cdrecord присутствуют). Однако это только кажется. На самом деле функция эта реализована очень удачно. Чтобы записать компакт, достаточно (через пункты главного меню на верхней гномовской панели — Переход -> Создать CD/DVD, или просто через файловый менеджер) перейти в каталог Burn Folder, скопировать туда нужные файлы (на самом деле создаются только симлинки на них) и нажать кнопку Записать на диск. Если в качестве файла-источника выступает iso-образ, будет задан вопрос — хотим ли мы записать его как отдельный файл, или следует развернуть его содержимое. Если в приводе находится записанный RW-диск — поступит предложение стереть его содержимое или отказаться от записи. Ни в одном случае проблем не возникает ни с CD, ни с DVD.

imp02_05Рис. 5. Запись CD/DVD

Очень интересна подборка системных графических утилит — анализатор использования диска (правда, у меня особенно анализировать нечего), программа мониторинга производительности, утилита определения драйверов устройств. При мониторинге производительности наглядно видно, как задействуются оба процессорных ядра — и при этом всегда почти одинаково (рис. 6). А ведь и в Linux’е, и во FreeBSD загрузка ядер обычно скачет. Так что существующее мнение о том, что параллелизм задач в Solaris’е реализован лучше, вероятно, имеет под собой основания.

imp02_06Рис. 6. Мониторинг производительности при риппаньи французских шансонье

Настройки сконцентрированы в двух пунктах меню Система — Параметры и Администрирование. Первый, насколько я могу судить, целиком (или почти целиком) относится к GNOME — через него настраивается его интерфейс, поведение и тому подобные вещи. Хотя здесь же расположена и настройка видеодрайвера Nvidia, которого у меня нет. И вообще, не зная в достаточной мере GNOME, я ограничился реорганизацией панелей, а также изменением шрифтов интерфейса и приложений на приемлемые для моего зрения (см. рис. 1). Правда. для этого пришлось предварительно доустановить из репозитория шрифты Bitstream Vera — штатные шрифты эстетическим совершенством не блистали.

Кстати, и разрешение экрана выставляется через соответствующий пункт меню Параметры. У меня с моим стандартным встроенным G35 проблем не возникло: соответствующий драйвер (i915) подключился при инсталляции, в результате чего разрешение и глубина цвета установились, как надо. Однако в случае сбоя автоматики, возможно, разрешение придется устанавливать через эту утилиту, и не факт, что без осложнений — а ведь файла xorg.conf нет, и где вообще хранятся параметры настройки Иксов, для меня так и осталось неясным. Подозреваю, что можно вручную создать /etc/X11/xorg.conf и вписать в него все нужные параметры (в, частности, и, не к ночи будь он помянут, вариант раскладки клавиатуры), однако это явно противоречит идеологии системы. И, опять-таки, нет гарантии, что «рукоблудие» будет корректно сочетаться с автоматическими настройками.

imp02_07Рис. 7. Изменение разрешения экрана

Как видно из рис. 7, кроме разрешения экрана, здесь же можно изменить ориентировку монитора (для тех, которые это позволяют) и настроить двухмониторную конструкцию.

А в Администрировании собраны собственно общесистемные настройки — сети, печати, управление стартовыми сервисами, пользовательскими аккаунтами, диспетчер обновления и диспетчер пакетов. Все они выполнены просто, но со вкусом, и их использование не вызывает никаких затруднений.

Отдельно скажу об утилите Time Slider, в адрес которой был высказан такой восторг в комментариях к предыдущей заметке. Правда, проведенная там аналогия с Time Machine из Mac’овского Leopard’а (раньше ее, вроде бы, в MacOS не было?) не представляется мне удачной. Это — не более чем графический фронт-энд для создания снапшотов файловой системы ZFS. Выполнен он, как и все остальные системные утилиты, просто и понятно. Можно задать «изготовление» снапшотов для всех ветвей файлового древа (принимается по умолчанию после включения самой этой функции) или для отдельных его ветвей (рис. 8). Никаких побочных вредных последствий от его использования, в отличие от тех, что можно предположить для Time Machine, исходя из общих соображений, я не углядел.

imp02_08Рис. 8. Time Slider

Заслуживает отдельных слов и диспетчер пакетов. Как легко догадаться, это графический интерфейс для системы управления пакетами IPS (Image Packaging System), функционально сходной со средствами пакетного менеджмента deb-based дистрибутивов Linux. Хотя сама по себе система пакетов OpenSolaris внутри ощутимо сложнее и интуитивно, без чтения соответствующей документации, совершенно не понятна, этот графический интерфейс (несколько напоминающий Synaptic) делает ее совершенно прозрачной для пользователя. Для установки недостающего пакета (если таковой имеется в репозитории) достаточно отыскать его в списке — визуально, по категории или поиском по ключевой последовательности символов (не обязательно точному имени), при желании посмотреть описание, список зависимостей, сведения о входящих в пакет файлах и даже условия лицензирования (что, правда, доступно не для всех пакетов), отметить галочкой соответствующий чек-бокс и нажать кнопку Установить/обновить (рис. 9).

imp02_09Рис. 9. Диспетчер пакетов

Если пакет связан зависимостями с другим, или оказывает какое-либо влияние на уже установленные компоненты системы (например, требует обновления библиотек), будет выдан соответствующий запрос. Подтверждение его повлечет за собой скачивание пакета из репозитория и его установку. Характерно, что выполняется все это от лица обычного пользователя, пароль администратора не запрашивается. Не блокируется при этом и запуск второй копии диспетчера пакетов. Как это проявится при установке двух пакетов с конфликтующими зависимостями — можно только гадать. Впрочем, похоже, что проблема такая, к счастью или несчастью, пока не возникает. Почему — сейчас увидим.

По умолчанию подключен лишь один репозиторий — opensolaris.org, который, прямо скажем, богатством не блещет. Полное отсутствие каких-либо рабочих сред или оконных менеджеров, кроме GNOME, который и так установлен по умолчанию, еще можно объяснить общей политикой. Но мне не удалось найти там ни одного из постоянно используемых мной приложений, за исключением FireFox и Pidgin — но и они появились при первичной инсталляции. Нет там и пресловутых аудио- и видеокодеков, а также медиаплейеров типа Mplayer или VLC, способных все необходимые кодеки вытащить в качестве своих зависимостей.

Мне попадалось сообщение, что с выходом версии 2008.11 суммарное количество репозиториев возросло до четырех, однако обнаружить удалось пока только два: blastwave.org и sunfreeware.com. Напрямую подключиться к диспетчеру пакетов они категорически отказались. Для этого нужно от лица администратора выполнить следующую процедуру:

# pkg set-authority -O http://blastwave.network.com:10000/ Blastwave
# pkg set-authority -O http://pkg.sunfreeware.com:9000/ Sunfree

После добавления репозиториев диспетчер пакетов следует перезапустить — и новые имена появятся в списке доступных.

Однако нужных мне «по делу» программ (типа Geany, к которой я за последнее время привык так, что без нее чувствую себя как без рук) и там не оказалось. Правда, на blastwave.org обнаружились кое-какие кодеки типа ffmpeg и прочих. Однако при попытке установить их мне был выдан список зависимостей на триста с гаком мегабайт, и я вынужден был отказаться от установки. Не то что мне стало жалко трафика — просмотр зависимостей выявил в их списке ряд библиотек, которые у меня в системе заведомо были (типа gnomelibs), причем в более свежих версиях: большая часть сборок на Blastwave датируется маем уходящего года.

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

Впрочем, жизнь не стоит на месте, новые репозитории будут, я надеюсь, появляться, да и поиски существующих я не оставил. На предмет этого в скорости на этих страницах будет создан соответствующий документ.

Теперь вернемся к вопросу о правах доступа. Все (все!) операции через меню Администрирования выполняются от лица обычного пользователя. По крайней мере, я не помню, чтобы от меня потребовали пароль администратора при настройке сети или тому подобных действиях. Возможно, я что-то пропустил, и в этом повинна система управления брелками (или, как говорят языковые пуристы, брелоками). Хорошо это или плохо — пусть каждый думает сам.

Права администратора в командной строке приобретаются стандартным su. Есть и sudo — однако по умолчанию он настроен так, что не позволяет созданному при инсталляции пользователю выполнить ни одной системной операции.

Впрочем, как уже было сказано, права администратора для работы в командной строке фактически и не требуются — все, что можно, делается через GUI’евые утилиты. А чего нельзя сделать через них — все равно непонятно, как делать, если нет глубоких познаний именно в Solaris’е.

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

В качестве загрузчика в OpenSolaris выступает (почти) самый обычный GRUB. Почему «почти» — становится ясным, если просмотреть каталог /boot/grub: кроме своеобычных файлов типа e2fs_stage1_5, fat_stage1_5 и прочих, там можно увидеть вожделенный файлик zfs_stage1_5, который, собственно, и обеспечивает непосредственную загрузку системы с ZFS без костылей, подобных /bootdir в нынешней FreeBSD (впрочем, есть основания рассчитывать, что лучшие времена наступят и там).

Хотя совсем без подпорок не обойтись и в OpenSolaris. Ибо конфига GRUB (файла с традиционным именем menu.lst) мы там не увидим. А находится он совершенно в другом месте — в каталоге /rpool/boot/grub, лежащем хоть и внутри zpool’а, но вне основной файловой иерархии.

Впрочем, это вопрос совсем отдельный. Пока же важно, что файл /rpool/boot/grub/menu.lst можно просмотреть и, обретя права root’а, отредактировать, например, в том самом полноразмерном vim, который упоминался ранее.

Почему важно? Ответить легко: GRUB, устанавливаемый при первичной инсталляции OpenSolaris, категорически игнорирует наличие на той же машине (например, на других дисках) соплеменных операционок типа Linux или FreeBSD (интересно, а как он относится к чуждой нам Windows?). Хотя в комментариях к menu.lst на наличие соответствующих разделов указывают их идентификаторы в десятичном исчислении (165 для FreeBSD и 131 для Linux), а также имена соответствующих устройств в номенклатуре Sun-разметки (например, /dev/rdsk/c4d0p0) и системе именования GRUB (hd0,0 и так далее). Руководствуясь этими указаниями и общими сведениями о GRUB, о которых столь часто говорил Владимир Попов, добавить соответствующие строки не составит, наверное, особого труда. Если возникнут сомнения — можно сначала попробовать загрузить нужные операционки интерактивно, благо GRUB дает к тому массу возможностей.

Еще один неприятный момент, о котором я забыл сказать в предыдущей заметке — хотя там отметить это было бы самое место. При установке OpenSolaris вопроса о том, следует ли устанавливать новый загрузчик, и если следует, то куда, не задается — он безальтернативно записывается в MBR текущего диска. Так что загрузку с него других операционок, если они там были, придется настраивать заново.

Да и в целом же взаимоотношение с другими операционками на уровне обмена данными находится не на высоте. OpenSolaris безошибочно распознает сменные носители (флешки, USB-диски) с FAT’ами разного рода (возможно, что и с NTFS — за отсутствием соответствующих носителей проверить не мог). Но оказывается бессильным перед точно таким же USB-диском с файловой системой ext2fs (относительно других опять же проверить не смог). Не удалось мне найти и простого способа доступа к ZFS-разделам под FreeBSD. Здесь впрочем, причина понятна: пул ZFS у меня был создан не на raw-устройствах, а на логических разделах в BSD-стиле, которых Solaris, судя по всему, понимать не приучен. Впрочем, этот вопрос нуждается в дальнейшем изучении.

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