В главе двенадцатой, заключительной, я собрал всякого рода рецепты или шпаргалки для решения отдельных частных вопросов, возникающих при настройке и применении разных редакций Salix'а, и при установке в них дополонительных пакетов. Рецепты эти имеют силу и для сына его, Slackel'а. А некоторые могут быть использованы и в родительской Slackware. Порядок их в значительной степени случайный, определяется тем, в какой последовательности мне эти рецепты потребовались или вспомнились.
В случае выбора русской локализации Salix'а и Slackel'а в домашнем каталоге пользователя, в соответствие со стандартом freedesktop.org, самопроизвольно возникают подкаталоги с кириллическими именами – Загрузки, Документы, Видео, и так далее. Тем, кто активно пользуется CLI для всякого рода файловых операций и тому подобных действий, это доставляет немало неудобств, заставляя в иксовых эмуляторах треминала постоянно переключать раскладку клавиатуры. А в «голой» консоли есть риск поначалу вообще увидеть квадратики вместо русских букв.
Так что искоренение каталогов с русскими именами – не проявление русофобии, а для многих – практическая необходимость. Благо делается это очень просто – одной командой:
$ LANG=C xdg-user-dirs-update --force
Вместо
LANG=C
можно указать LANG=POSIX
или LANG=en_US
, это одно и то же. Причём желательно дать эту команду сразу после инсталляции системы, пока в кириллические каталоги не попали какие-либо файлы, например, скачанные из сети материалы (в браузерах по умолчанию обычно установлено сохранение загрузок в каталоге ~/Загрузки) или скриншоты (экранные снимки, сделанные нажатием клавиши PrintScreen, без дополнительных настроек попадают в каталог ~/Изображения). Потому что приведённая команда не переименовывает каталоги, а создаёт параллельно кириллическим их аналоги латиницей – ~/Desktop, ~/Documents, ~/Images, и так далее. Так что русскоязычные каталоги проще удалить пустыми, нежели думать о копировании их содержимого.
После этого следует завершить сеанс текущего десктопа и авторизоваться заново (через используемый дисплейный менеджер – любой). Последует предложение переименовать каталоги в соответствие с текущей общесистемной локалью – то есть русской. От этого надо категорически отказаться, не забыв пометить птицей пункт – больше не задавать дурацких вопросов.
В Salix'е по умолчанию не включена служба консольной мыши –
gpm
, хотя сам по себе одноимённый пакет присутствует во всех вариантах установки всех редакций Salix'а. А поскольку без мыши в консоли жить очень скучно, службу эту нужно активизировать. Для чего получаем перманентные права root'а – они будут нужны всё время:
$ sudo -i
Переходим в каталог
/etc/rc.d
/ (не обязательно, но потом потребует меньше телодвижений), создаём в нём файл
# touch rc.gpm
и делаем его исполняемым:
# chmod a+x rc.gpm
А затем в любимом текстовом редакторе (например, в
nano
) вписываем в него такие строки:
#!/bin/sh # Start/stop/restart the GPM mouse server: export TEXTDOMAIN=slackware . gettext.sh
if [ «$1» = «stop» ]; then gettext «Stopping gpm..." echo /usr/sbin/gpm -k elif [ «$1» = «restart» ]; then gettext «Restarting gpm..." echo /usr/sbin/gpm -k sleep 1 /usr/sbin/gpm -m /dev/mouse -t imps2 else # assume $1 = start: gettext «Starting gpm:" echo «/usr/sbin/gpm -m /dev/mouse -t imps2" /usr/sbin/gpm -m /dev/mouse -t imps2 fi
Строки эти были нагло потибрены из соответствующего файла оригинальной Slackware – там, если соглашаться с умолчаниями инсталлятора, служба
gpm
включается автоматически. И тут впору пожалеть, что в Salix'е она ещё не работает – иначе эти строки были бы просто выбелены мышью и вставлены в текст щелчком средней кнопки.
Опция -t описывает протокол работы мыши – и, насколько я знаю, подходит для всех ныне существующих устройств этого класса, кроме, возможно, каких-то трекболов и трекпойнтов. Теперь после рестарта машины курсор мыши в виде прямоугольника появится во всех виртуальных консолях (а в Salix'е их всего три). Однако можно не дожидаться перезагрузки, а запустить службу
gpm
немедленно, командой
# /etc/rc.d/rc.gpm
После этого можно начать доведение до ума консольного режима, имея в руках такое мощное оружие, как мышиный copy and paste.
Сразу после установки Salix'а символов кириллицы в консоли не увидеть, хотя на стадии инсталляции была установлена русскую локаль, что можно проверить так:
$ localeLANG=ru_RU.utf8 LC_CTYPE="ru_RU.utf8"LC_NUMERIC="ru_RU.utf8" LC_TIME="ru_RU.utf8" LC_COLLATE=C LC_MONETARY="ru_RU.utf8" LC_MESSAGES="ru_RU.utf8" LC_PAPER="ru_RU.utf8" LC_NAME="ru_RU.utf8" LC_ADDRESS="ru_RU.utf8" LC_TELEPHONE="ru_RU.utf8" LC_MEASUREMENT="ru_RU.utf8" LC_IDENTIFICATION="ru_RU.utf8" LC_ALL=
И, следовательно, вывод команд, где это возможно, должен выводиться по русски. Например, на команду
$ date
Должно последовать такое:
Cp мaй 7 17:01:36 MSK 2014
Однако пока вместо русских букв будут одни залитые квадратики. Ибо, хотя система и делает вид, что загружает шрифты с символами кириллицы, делает она это неправильно.
За загрузку консольных шрифтов отвечает файл
rc.font
из того же каталога /etc/rc.d
. Сразу после установки она содержит единственную строку:
unicode_start ter-v16n
Это наследие давних времён зари юникодизации Linux-консоли, и ныне не работает. Так что смело удаляем её, а взамен вписываем такую:
setfont -v ter-v22b
где
-v
– опция, обеспечивающая вывод сообщения о загрузке шрифта, а ter-v22b
– имя шрифтового файла. Все файлы шрифтов содержатся в каталоге /usr/share/kbd/consolefonts
, но не все имеющиеся там шрифты содержат символы кириллицы. Шрифты семейства Terminus – содержат, и к тому же имеются всех мыслимых размеров (от 8x12 до 12x32, так что каждый может подобрать размер по глазам), двух шрифтоначертаний (для LCD-мониторов рекомендуется полужирное – отсюда литера b
в имени файла), да ещё и включают таблицу перекодировки внутреннего 16-битного представления во внешнее 8-битное.
Сделанного достаточно, в чём легко убедиться, запустив
rc.font
на исполнение, которое, благодаря опции -v
, выведет на экран такое сообщение:
3aгpyжaeтcя 512-cимвoл шpифтa 11x22 из фaйлa /usr/share/kbd/consolefonts/ter-v22b.psf.gz3aгpyжaeтcя юниĸoднaя тaблицa oтoбpaжeния...
Впрочем, изменение шрифта можно будет уловить органолептически, без всяких сообщений. Ну а особо недоверчивые могут ещё и выполнить затем команду
date
, которая русским по чёрному сообщит о текущем дне неделе и месяце.
Ещё раз повторяю: никаких дополнительных телодвижений, которые можно встретить в сетевых описаниях, типа старта/стопа режима
unicode
, загрузки карты соответствия и вывода на все консоли так называемой «магической последовательности», ныне не нужно. Разве что что при использовании старых шрифтов, без собственной карты – но нынче в них нет ни малейшей необходимости: шрифты семейства Terminus
покрывают почти все потребности применителей. Ну а тем, которые с претензиями, остаются ещё и шрифты типа LatArCyrHeb
, LatGrkCyr
и LatKaCyrHeb
(между нами говоря, вполне уродливые, но зато содержащие символы не только латиницы и кириллицы, но и некоторых более иных алфавитов).
Теперь для полноты счастья остаётся только обеспечивать и ввод символов кириллицы – например, чтобы комментировать свои конфиги и скрипты на языке родных осин. Этим делом ведает файл
/etc/rc.d/rc.keymap
, который по умолчанию выглядит так:
#!/bin/sh# Load the keyboard map. More maps are in /usr/share/kbd/keymaps. if [ -x /usr/bin/loadkeys ]; then /usr/bin/loadkeys -u us fi
Здесь достаточно заменить английско-американскую раскладку
us
на любую подходящую кириллическую, список которых можно просмотреть так:
$ ls ls /usr/share/kbd/keymaps/i386/qwerty/ru*
Например, на такую:
if [ -x /usr/bin/loadkeys ]; then /usr/bin/loadkeys -u ruwin_cplk-UTF-8
Это русская раскладка для кодировки UTF-8, соответствующая варианту winkeys из Иксов, с переключением латиница/кириллица клавишей CapsLock. Тем же, кто когда-то учился печатать на пишущей машинке, и так и не смог привыкнуть к маразму под названием «вариант winkeys», могу предложить мою раскладку, соответствующую иксовому варианту Typewrite Legacy –
ru-type-legacy_cplk-UTF-8
. Соответственно, вторая строка в rc.keymap
приобретут такой вид:
/usr/bin/loadkeys -u ru-type-legacy_cplk-UTF-8
Впрочем, ностальгия по временам, когда «Эрика даёт четыре копиии» – не единственная причина для применения применения этой «старомодной» раскладки: знаки препинания на нижнем регистре (инвертированно с цифрами) зело способствуют скорости печати. А для массового ввода цифири NumPad ещё не запретили.
Описанная ниже проблемка возникает, вероятно, только при базовой установке Salix'а – в установке FULL всё необходимое имеется по умолчанию.
Чтобы просматривать, распаковывать и создавать архивы через файловый менеджер Thunat требуется, во-первых, плагин к нему –
thunar-archive-plugin
. По умолчанию он не устанавливается, так что:
$ sudo slapt-get -i thunar-media-tags-plugin
После этого к контекстному меню Thunar'а добавляются пункты Создать архив, Извлечь сюда и Извлечь в... Однако, к моему удивлению, они не работали, вызывая панель выбора приложений. Более того, архив даже нельзя было просмотреть щелчком на его имени – следовало сообщение, что подходящего менеджера рахивов не обнаружено.
Просмотр каталога
/usr/libexec/thunar-archive-plugin
показал, что подходящим менеджером архивов может быть Ark, Engrampa или File-roller. Последнего в репозитории не обнаружилось, Ark – менеджер архивов для KDE и здесь явно не к месту, так что оставался один вариант – Engrampa, менеджер архивов для MATE. Каковой я и установил:
$ sudo slapt-get -i engrampa
После чего содержимое архивов через Thunar стало просматриваться, а указанные выше пункты контекстного меню заработали. Разумеется, для тех типов архивов, для которых установлены утилиты управления. Правда, по умолчанию имеются почти все необходимые –
tar
, xz
(это формат сжатия пакетов Slackware), gzip
, bzip2
, cpio
, zip,
unrar
и ещё какие-то. На всякий пожарный я доустановил только p7zip
. Пакета для создания rar-архивов не обнаружилось, но при необходимости его можно создать из slackbuilds
– slapt-src
показывает его наличие. У меня, впрочем, такой необходимости пока не возникло ни разу (за последние десять или пятнадцать лет).
При просмотре файловой иерархии обычным пользователем подчас неожиданно возникает необходимость открыть каталог, для него закрытый, или даже отредактировать какой-нибудь из общесистемных конфигов. И то, и другое требует прав администратора. Разумеется, всё это можно сделать через пункт Открыть терминал и команду
sudo
. Однако было бы удобно обеспечить такую возможность непосредственно в файловом менеджере, которым в нашем случае по умолчанию выступает Thunar.
Благо, сделать это в Thunar'е не просто, а очень просто, без установки каких-либо дополнительных плагинов – достаточно обратиться к пункту его главного меню Правка -> Особые действия, отвечающему за дополнительные пункты меню контекстного, вызываемого щелчком правой кнопки мыши. По умолчанию в этом меню всего один дополнительный пункт – Открыть терминал:
Рисунок 12-1. Thunar: особые действия
И одну запись можно видеть в панели настройки особых действий:
Рисунок 12-2. Пример особого действия: открыть терминал
Однако имеющийся на ней зелёный плюсик, как легко догадаться, позволяет добавлять собственные особые действия произвольного назначения и количества. Ибо вызывает ещё одну панель с двумя вкладками. В поля первой заносятся имя действия, его описание и соответствующая команда:
Рисунок 12-3. Создание нового действия
Во второй вкладке отмечаются типы файлов, при обращении к которым должны появляться дополнительные пункты контекстного меню:
Рисунок 12-4. Условия особого действия
Всё это достаточно очевидно, и проще всего может быть проиллюстрировано примерами. Для начала обеспечиваем возможность редактирования «чужих» (в том числе общесистемных) текстовых файлов, заполнив первую вкладку таким образом:
Рисунок 12-5. Пример особого действия: редактирование файла от root'а
Пиктограмму для действия можно подобрать из имеющихся – более-менее подходящий по смыслу:
Рисунок 12-6. Выбор пиктограммы для нового действия
Во второй же вкладке сохраняем шаблон и отметку на текстовых файлах, как оно было по умолчанию.
Далее создаём пункт открытия каталога в Thunar'е от лица суперпользователя. Здесь всё столь же очевидно:
Рисунок 12-7. Редактирование действия: название, описание, команда
Только во второй вкладке отметку условия появления переносим на каталоги:
Рисунок 12-8. Редактирование действия: в контекстном меню для каталогов
И последнее – это открытие root'ового терминала:
Рисунок 12-9. Терминал с правами root'а
Здесь условием появления также будет каталог.
После этого контекстное меню при фиксации на имени файла приобретёт такой вид:
Рисунок 12-10. Контекстное меню для файла
А при фиксации на каталоге будет выглядеть так:
Рисунок 12-11. Контекстное меню для каталога
В любом случае после выбора одного из этих пунктов появится панель
gksu
для ввода пользовательского пароля:
Рисунок 12-12. Панель авторизации
gksu
После чего соответствующая программа (Thunar, текстовый редактор или терминал) будут открыты с правами администратора.
Как видите, в Thunar'е, в отличие от некоторых других файловых менеджеров (на которые не будем указывать пальцем) обеспечить доступ суперпользователя к файлам и каталогам гораздо быстрее, чем об этом рассказать.
И по секрету добавлю, что того же результата можно добиться прямым редактированием файла
~/.config/Thunar/uca.xml
, во-первых. А во-вторых, список особых действий не сводится к перечисленным, а ограничен только потребностями и фантазией применителя.
Как ни странно, в Thunar'е штатно нет такой, казалось бы, неотъемлемой функции файлового менеджера, как поиск файлов, да плагинов соответствующего назначения не обнаруживается. Однако это можно исправить минимум двумя сторонними средствами.
Первое из таких средств – утилита Catfish, которая обнаруживается в системе после полной инсталляции Salix'а. А при выборе базовой установки её легко добавить посредством
$ sudo slapt-get -i catfish
Утилита Catfish – нечто вроде интегратора таких команд, как find (задействована по умолчанию), locate, slocate и любых других «искателей». Как её можно прикрутить к Thunar'у? С помощью всё того же волшебного пункта Правка -> Особые действия, добавив её вызов в контекстное меню. Для чего заполняется такая форма:
Рисунок 12-13. Редактированиедействия: Поиск
В качестве условия появления отмечается боксик Каталоги.
Утилита Catfish – средство достаточно гибкое и мощное, но несколько громоздкое для поиска «на скорую руку», когда необходимость отыскать некий файл неожиданно возникает при просмотре файловой иерархии. Кроме того, в ней не предусмотрено поиска по содержимому файлов. Поэтому в ряде случаев удобнее воспользоваться утилитой
mate-search-tool
из пакета mate-utils
. Правда, он потянет за собой ряд компонентов декстопа MATE (включая даже mate-desktop
). Но от фанатичного пуризма мы ведь давно избавились, не так ли? Если избавились – устанавливаем именованный пакет:
$ sudo slapt-get -i mate-utils
А затем встраиваем
mate-search-tool
в контекстное меню Thunar'а:
Рисунок 12-14. MATE Search меню Thunar'а
После чего отыскиваем в текущем каталоге нужный файл по его имени или маске:
Рисунок 12-15. MATE Search: поиск по маске имени
А дополнительно – и по входящему в него фрагменту текста:
Рисунок 12-16. MATE Search: поиск по тексту
Хотя, если честно, мне обычно в большинстве случаев проще воспользоваться пунктов Открыть терминал из контекстного меню, а далее – утилита
find
в руки. Или, при необходимости, grep
– особенно в сочетании со встроенными средствами поиска оболочки zsh
и её глобальными псевдонимами, Но это – совсем другая история, в которой Thunar'а можно совсем не давать...
Клиент Яндекс.Диска для Linux существует, насколько я знаю, только в rpm- и deb-виде, то есть в формат Salix'а не вписывается. Конечно, есть подозрение, что с помощью утилиты
rpm2tgz
первый можно привести к виду, пригодному для установки в Slackware и её дериватах, и что, будучи установленным, он ещё и заработает. Однако подозрение не есть уверенность, да и не стоит этот клиент возни, ибо показался мне неудобным. Так что проще получить доступ к Яндекс.Диску через стандартный WebDAV, благо такая возможность имеется.
Делается это действительно просто: запускается Thunar, через закладку боковой панели открывается Обзор сети и в адресной строке вместо нечленораздельного
network:///
вписывается вот это:
davs://username@webdav.yandex.ru/
После этого следует запрос пароля на доступ к сервисам Яндекса – и всё: с Яндекс.Диском можно работать через Thunar как с обычным локальным носителем. Только немного медленней. В частности, он обещал вознести мои четыре «земных» гигабайта на яндексовое облако часов за десять-двенадцать. И обещание выполнил и перевыполнил...
В Salix'в качестве штатного вьювера графических файлов применяется Viewnior (а не Risretto, как я почему-то думал раньше), которую можно обнаружить в пункте Графика главного меню Xfce после полной инсталляции. Это замечательно простая и быстрая программа, имеющая даже некоторые функции редактирования – в частности, кадрирования изображений. Кроме того, она позволяет подключать и внешний графический редактор для более тяжёлых работ (по умолчанию – GIMP). Однако у неё нет таких важных для любого линуксописателя функций, как коррекция яркости/контрастности, а главное – масштабирования изображений. Согласитесь, что применять для этих целей GIMP несколько неоправданно.
Я с давних пор привык использовать во всех Gtk-системах программу gThumb. Она тоже в первую очередь предназначена для просмотра изображений, однако наделена теми самыми функциями, которых не хватает Viewnior'у. И потому сразу после первой установки Salix'а занялся её поисками. В репозитории бинарников gThumb не обнаружился, зато легко нашёлся в списке штатных слакбилдов:
$ slapt-src --search gthumb gthumb:3.2.4 - gThumb ( An image viewer )
Однако собрать этот пакет сразу командой
slapt-src
не получится – она пожалуется на отсутствие пакета itstool
, каковой, напротив имеет своим местопребыванием репозиторий бинарников:
$ slapt-get --search itstool itstool-1.2.0-x86_64-1 [inst=нет]: itstool (Translate XML documents with PO files) itstool-2.0.2-noarch-1gv [inst=нет]: itstool (Translate XML documents with PO files)
Размышлять, какое из двух предложений должно быть принято, не нужно. Достаточно дать команду
$ sudo slapt-get -i itstool
После которой управитель пакетов разберётся сам (по секрету скажу, что он установит
itstool-2.0.2-noarch-1gv
). И теперь команда
$ sudo slapt-src --search gthumb
соберёт вожделенный вьювер-редактор без всяких проблем – по завершении процедуры он обнаружится в пункте Графика главного меню Xfce.
В жизни каждого линуксописателя наступает момент, когда он сталкивается с необходимостью переименования большого количества файлов по какой-то определённой модели. Особенно актуально это при массовом изготовлении скриншотов для иллюстрирования очередной статьи. Ибо традиционные скриншоттеры часто дают своим файлам имена вроде
Снимок экрана - 25.04.2014 - 15:39:52.png
. Которые хорошо бы превратить в что-то типа [название статьи]-[номер рисунка].png
.
Разумеется, истинный true-линуксоид немедленно будет сочинять скрипт, призванный автоматизировать эту задачу. И примеров таких скриптов в сети можно найти много. Только вот беда – они рассчитаны на некие конкретные ситуации, при изменении которых требуют правки или пересочинения. А поскольку в практике линуксописательства модели именования и входных, и выходных файлов постоянно меняются, целесообразней прибегнуть к специализированным утилитам данного назначения.
Одна из таких утилит,
thunar-bulk-rename
, представляет собой дополнение к одноимённому файловому менеджеру (в «головном» Salix'е оно установлено по умолчанию). Она проста в использовании и для указанных задач вполне эффективна. Однако в других редакциях дистрибутива её нет – и там целесообразно использовать утилиту GPRename: она не привязана к среде Xfce, да и возможностей к неё несколько больше, хотя применение – несколько сложнее.
В штатном репозитории Salix'а пакета с таким именем нет. Зато он обнаруживается среди его слакбилдов:
$=> slapt-src --search gprename gprename:5 - GPRename (A GTK2 batch renamer for files and directories)
Так что дело за малым – собрать его:
$=> sudo slapt-src -i gprename Следующие пакеты будут установлены: gprename Следующие зависимые слакбилды будут собраны и установлены: perl-libintl Продолжить? [y/N]
Приятно, что в данном случае зависимости пакета не приходится выискивать – они предлагаются к установке автоматом. И с этим предложением нужно просто согласиться. После чего программу можно вызвать из главного меню: Инструменты -> GPRename.
Единственным штатным браузером, устанавливаемых в ходе развёртывания системы, в Salix'е является Midori, медленный, мало функциональный и работающий часто, мягко говоря, не без нареканий. Правда, пользоваться им никто не неволит – в репозитории дистрибутива имеется FireFox, который без проблем устанавливается стандартным образом.
А вот Chromium'а нет ни в официальном репозитории бинарников, ни в списке штатных слакбилдов. Однако из этой ситуации есть два выхода: сложный и простой. Первый – зайти на величайший в мире слакбилдник SlackBuilds.org, где он легко находится поиском, а затем:
• скачать архив слакбилда
chromium.tar.gz
в подходящий каталог, типа /tmp
или куда-нибудь в свой домашний;
• распаковать архив – после этого там образуется подкаталог
path2/chromium
;
• скачать в этот подкаталог архив исходников – в данном случае
chromium-31.0.1650.57.tar.xz
;
• присвоить файлу
path2/chromium/chromium.SlackBuild
бит исполнения:
$ sudo chmod a+x chromium.SlackBuild
• проверить, установлен ли пакет
yasm
и если нет (а по умолчанию его нет) – установить из репозитория:
$ sudo slapt-get -i yasm
• запустить слакбилд на исполнение:
$ sudo ./chromium.SlackBuild
• найти себе занятие на ближайшие час-полтора, потому что собираться пакет будет весьма долго.
Завершится сборка сообщением, что
Slackware package /tmp/chromium-31.0.1650.57-x86_64-1_SBo.tgz created.
После чего образовавшийся бинарный пакет остаётся только установить обычным образом:
$ sudo installpkg chromium-31.0.1650.57-x86_64-1_SBo.tgz
А затем новый браузер можно запустить из главного меню Xfce через Интернет -> Chromium.
Однако если избытка времени или терпения ждать нет, можно прибегнуть к простому способу: зайти на блог Эрика Хамелирса (Eric Hameleers), не менее известного как AlienBOB, или открыть его репозиторий. Где имеются регулярно обновляемые бинарнки Chromium'а, а также ещё много чего полезного, в частности, сборки LibreOffice и собственные разработки автора.
Рецепт этой шпаргалки потребуется при установке Salix'а в варианте BASIC – в варианте FULL необходимости в большинстве описанных ниже действий не возникнет.
Для начала надо заметить, что ни малейшего Pulseaudio в Salix'е нет – управление звуком осуществляется через Alsa, и все необходимые для того пакеты в базовой установке присутствуют по умолчанию, остаётся только установить микшер:
$ sudo slapt-get -i xfce4-mixer
После этого я установил
mplayer2
, поскольку он, по сравнению со своим предком, просто mplayer
'ом, развивается более активно:
$ sudo slapt-get -i mplayer2
В качестве зависимостей он вытянул за собой все необходимые кодеки – и я смог слушать музыку и смотреть кино, запуская его из командой строки:
$ mplayer parh2/filename
или даже
$ mplayer parh2/*.mp3|*.flac
При желании к нему можно подобрать в официальном репозитории графический фронт-энд –
gnome-mplayer
или smplayer
. Первый показался мне более уместным в Gtk-системе, нежели второй, основанный на Qt. А с точки зрения функционала, при моих скоромных потребностях в этом плане, разница между ними не заметна.
Некогда, с подачи Сергея Голубева, проникся я идеей выпадающих (drop-down) терминалов – тогда в виде Yakuake, ибо работал преимущественно в среде KDE. Проникся настолько, что почти перестал применять обычный эмулятор терминала: практически во всех случаях удобней оказывалось прибегнуть либо к терминальному окну, встроенному в файловый менеджер или текстовый редактор, либо вызвать терминал выпадающий.
Переключившись на рабочие среды, основанные на Gtk (Xfce, Unity, Cinnamon), я начал подыскивать аналогичные средства эмуляции терминального режима. Увы, с терминалами, встроенными в файловые менеджеры, оказалось плохо: плагины для Nautilus'а и Nemo или не работали, или выглядели отвратительно, а для Thunar'а таковых не имелось вообще. Зато с выпадающими терминалами выбор имелся – я опробовал Terra и Guake, в конце концов остановившись на последнем.
Начиная «погружение в Salix» с его средой Xfce по умолчанию, я был уверен, что в шесть секунд найду какой-нибудь «выпадающий» аналог. Не тут-то было: в репозиториях бинарных пакетов не обнаружилось ни одного знакомого имени, а среди слакбилдов имелись Yakuake (который, принадлежа среде KDE, совсем не гармонировал с «головной редакцией» дистрибутива) и YeahConsole, который сам по себе не столько терминал, сколько оболочка для таких программ, как XTerm, rxvt и так далее.
И тогда я вспомнил, что в одном из обсуждений темы выпадающих терминалов на Джуйке упоминался drop-down терминал Tilda, до которого у меня тогда руки так и не дошли. Наудачу набрав его имя в команде
$ slapt-src -s tilda
я с радостью обнаружил наличие его слакбидла:
tilda:0.9.6 - tilda (an FPS-style terminal)
Каковой и был немедленно установлен:
$ sudo slapt-src -i tilda
При первом запуске из главного меню Xfce (он попал в раздел Инструменты) появилась панель его конфигурирования:
Рисунок 12-17. Tilda: основные нсатройки
Правда, на скриншоте дан вид с уже сделанными мной настройками, но смысл их, я думаю, понятен без комментариев – как и настроек в остальных вкладках панели. Остановлюсь только на двух моментах.
Во вкладке Внешний вид можно не только задать размеры терминального окна, но и его центирирование – не только по горизонтали, но и по вертикали. Если при этом ещё и включить анимацию, выпадающий терминал превращается в терминал «всплавающий» посреди экрана:
Рисунок 12-18. Tilda: настройка внешности
А во вкладке Сочетание клавиш устанавливается способ вызова терминала – по умолчанию почему-то это клавиша F1. Что я немедленно заменил на стандартную для программ такого рода клавишу F12:
Рисунок 12-19. Настройка вызова
После выполнения всех настроек Tilda наконец запускается в примерно таком виде:
Рисунок 12-20. Tilda: вид после запуска
Теперь остаётся только обеспечить её автозапуск, например, через главное меню: Настройки -> Сеансы и запуск -> Автозапуск приложений:
Рисунок 12-21. Tilda: внесение в автозапуск
И впредь при необходимости вызывать её по клавише F12, убирая повторным её нажатием.
Никаких других комбинаций клавиш, кроме вызова Tilda, установить нельзя. Но в её окне работают все стандартные для большинства терминальных программ хоткеи:
• Shift+Control+T – создание новой вкладки;
• Shift+Control+W – закрытие текущей вкладки;
• Control+PageUp – переход на предыдущую вкладку;
• Control+PageDown – переход на следующую вкладку;
• Shift+Control+C – копирование выеделнного фрагмента в буфер;
• Shift+Control+V – вставка содержимого буфера позицию курсора;
• Shift+Control+Q – выход из Tilda.
На этом функционал программы исчерпывается. Нельзя ни перемещать вкладки, ни давать им произвольные имена (например, нумеровать), нет возможности расщепления терминального окна. Однако свои основные функции – представить интерфейс командной строки в нужном месте и в нужное время, Tilda выполняет исправно и к тому же быстро.
Виртуальная машина входит для меня в категорию «необходимого и достаточного». С давних пор я привык использовать в этом качестве VirtualBox. Однако в официальном репозитории Salix'а его не обнаружилось, а версия из его же слакбилдов рассчитана только на 32-битные системы. Так что остаётся официальный сайт проекта, где и версия его обычно более новая. Правда, среди Linux-хостов среди представленных дистрибутивов пакета именно для Slackware не оказалось. Тем не менее, я решил, что в этом качестве должен сгодиться All distributions, версию которого для 64-битной архитектуры и скачал.
Дальше – всё как всегда, и как всегда очень просто. Сначала скачанному файлу надо придать бит исполняемости:
$ chmod a+x VirtualBox-4.3.10-93012-Linux_amd64.run
А затем эту исполняемость претворить в действительность:
$ sudo ./VirtualBox-4.3.10-93012-Linux_amd64.run
Обращая внимание на форму аргумента – в Salix'е по традиции текущий каталог не числится в умолчаниях значений переменной
PATH
ни пользователя, ни root'а.
Всё, можно запускать VirtualBox и создавать виртуальные машины. Нужно только проследить, чтобы имелась группа
vboxusers
, а запускающий его пользователь состоял её членом – обычно и создание группы, и включение в неё инсталлирующего пользователя происходит автоматически.
Интерфейс Virtualbox'а основывается на библиотеке Qt, поэтому при первом запуске в среде Xfce он выглядит вполне отвратительно. Что исправимо легко: Главное меню -> Настройки -> Qt4 config, где для Qt-приложений устанавливается стиль, соответствующий настройкам рабочего стола Xfce. После чего Virtualbox выглядит так же, как и все остальные программы для этой среды.
Полюбив с недавних пор Komodo Editor (далее – KE), применяемый в Mint'е, я озаботился его установкой и в Salix'е.Поиск готового пакета в репозиториях Salix'а и среди его Slackbuild'ов успехом не увенчался. Не обнаружился KE и ни в одном из дополнительных репозиториев для Slackware и её клонов (их список – в приложении). Однако оставался вариант установки бинарного пакета с официального сайта. Благо процесс этот прост и включает получение архива, распаковку его в любой временный каталог и запуск установочного сценария от имени пользователя или, как сделал я, администратора:
$ sudo ./install.sh
Благодаря последнему моменту при выборе каталога для установки KE есть возможность поместить его в
/opt/Komodo-Edit-8.5.4/
. Затем находится его исполняемый файл – /opt/Komodo-Edit-8.5.4/lib/mozilla/komodo
(/usr/local/bin/komodo
– символическая ссылка на него). И создаётся ещё один симлинк на него:
$ sudo ln -s /opt/Komodo-Edit-8.5.4/lib/mozilla/komodo /usr/local/bin/komodo
После этого KE под именем Editor самопроизвольно появяется в секции Разработка главного меню Xfce, откуда и запускается в последующем.
Для запущенного KE можно первым делом выполнить его русификацию его интерфейса. Пакет русификации усилиями Labogrado собран в виде расширения для KE — файла
localru-*-ko.xpi
, который и следует скачать с сайта автора – нужно только проследить, чтобы версия пакета соответствовала версии KE.
Установка русификатора выполняется через меню KE: Tools -> Add-ons, что вызывает такую панель:
Рисунок 12-22. Komodo Editor: панель дополнений
Слева от поля для поискового запроса можно видеть кнопку весьма бледного вида, которая вызывает каскадное меню – в нём нужно выбрать пункт Установить дополнение из файла:
Рисунок 12-23. Komodo Editor: выбор источника дополнений
А по выборе нужного файла в следующей панели нажимается кнопка Install Now:
Рисунок 12-24. Komodo Editor: установка дополнения
После чего остаётся только перезагрузить KE. Кстати, эта заметка сочинялась KE после его русификации, и потому на всех скриншотах можно видеть русские буковки в интерфейсе.
В незапамятные времена, когда Konqueror был ещё чисто файловым менеджером, и на лавры браузера даже не замахивался, появилась в нём такая опция в контекстном меню – Edit as root для единимчного файла и Open as root для каталога. Было это, повторяю, очень давно, когда во всяких Nautilus'ах и Thunat'ах ничего продобного и в плагинах не было, не то что штатно. Хотя очень хотелось – отсюда в итоге и пошли всякие Nemo с Marlin'ами, да и особые действия в Thunar'е. А вот в самом Nautilus'е – тоже, конечно, хотелось, да кололось, потому там объявили эту фичу ненужной и народу зело вредящей.
Надо сказать, что в смутное время перехода KDE на 4-ю ветку, и замену Konqueror'а (который из лучшего файлового менеджера того времени превратился в посредственный браузер, а потом и вовсе вышел в тираж) Dolphin'ом фича запуска файлового менеджера, терминала или текстового редактора с правами root'а то исчезала, то вновь появлялась. Пока как штатная функция не пропала вовсе.
Но не пропало её дело. Оно воплотилось в плагине под названием Simple Root Actions Menu.Каковой и призван выполнять все указанные выше действия от имени и по поручению локальной администрации. А, как будет сказано ниже, ещё и некоторые другие.
Обрести этот плагин, казалось бы, просто. Для этого достаточно зайти в настройки Dolphin'а, перейти там в пункт Действия, нажать на длинную педаль Загрузить новые действия, отыскать среди кандидатов на загрузку вышеупомянутый SRAM (не подумайте плохого – это аббревиатура от названия плагина) и нажать на кнопку Установить:
Рисунок 12-25. Dophin: установка дополнений
На скриншоте, как легко догадаться, она находилась бы на месте кнопки Удалить – потому как установить этот плагин я успел до того, как взялся сочинять эту шпаргалку.
Однако это не важно – важно то, что попытка решить эту задачу «малой кровью, на чужой земле», в очередной раз продемонстрирует свою несостоятельность: никаких новых пунктов в контекстном меню Dolphin'а после этого не появится. Как и вообще каких-либо следов нового плагина.
Казалось бы, SRAM'ота, да и только? Отнюдь, если прочитать то, что пишет по этому поводу автор (там же, по кнопке Сведения). А пишет он, что его плагин (aka плазмоид) надо, кто бы мог подумать, инсталировать.
Так что вопрос придётся решать большей кровью, и на земле своей. То есть отправляться на kde-apps.org, отыскивать там плагин по ключевым словам
simple root actions menu
, скачивать, разворачивать архив и запускать из него установочный скрипт:
$ ./sram_install -s
Да ещё и прочитавши предварительно
README
, как предлагает наивный автор.
Правда, в чтении
README
действительно большой необходимости нет – достаточно только не забыть про опцию -s
(об этом сценарий напомнит) просто следовать логике установщика:
Рисунок 12-26. Dophin: установка Simple Root Actions
Она абсолютно прозрачна. Замечу только, что по умолчанию предлагается подключить SRAM к файловым менеджерам Konqueror'у и Dolphin'у, а для редактирования задействовать KWrite и Kate. Но можно ограничиться в первом случае Dolphin'ом (тем более, что при базовой установке Salix'а с KDE Konqueror'а просто нет), а во втором – KWrite, поскольку Kate обычно используется для более серьёзных целей.
Так или иначе, но по завершении установки плагина в контекстном меню Dolphin'а действительно появится пункт Как root, а в нём – несколько подпунктов:
Рисунок 12-27. Dophin: вид меню после установки плагина
Которые позволяют не только открывать каталог или файл с правами администратора, но и поменять атрибуты принадлежности и доступа. И вообще – делают гораздо больше, чем это было когда-то в древнем Konqueror'е. Не в этом ли заключается реальный прогресс?
На этой странице речь пойдёт о поддержке в Salix'е двух файловых систем, специально предназначенных для твердотельных накопителей – nilfs2 и f2fs. Хотя обе они официально включены в ядро Linux достаточно давно (первая – с 2009 года, вторая – с 2012), ни та, ни другая пока не получили широкого распространения. И, насколько мне известно, штатно не поддерживаются инсталлятором ни одного из современных дистрибутивов, в том числе и инсталлятором Salix. И скоро станет понятно, почему. Однако, как будет видно из дальнейшего, включить их поддержку в нём можно.
Для начала легко убедиться в том, что ядро текущей версии Salix'а собрано с модульной поддержкой обеих интересующих нас файловых систем:
$ ls /lib/modules/3.10.17/kernel/fs/{nilfs2,f2fs} /lib/modules/3.10.17/kernel/fs/f2fs: f2fs.ko
/lib/modules/3.10.17/kernel/fs/nilfs2: nilfs2.ko
После этого соответствующие модули следует загрузить:
$ sudo modprobe nilfs2 $ sudo modprobe f2fs
И удостовериться в успехе этой операции:
$ lsmod | grep nilfs2 nilfs2 147232 0 $ lsmod | grep f2fs f2fs 141479 0
Для работы с любой файловой системой (создания, монтирования etc.) необходим соответствующий инструментарий, и героини моего сегодняшнего рассказа – не исключение. Для f2fs он в виде пакета легко находится в штатном репозитории:
$ slapt-get --search f2fs f2fs_tools-1.2.0-x86_64-1_SBo [inst=нет]: f2fs_tools (Userland tools for the f2fs filesystem)
И столь же непринуждённо устанавливается:
$ slapt-get --install f2fs_tools
А вот за инструментами для nilfs2 придётся лезть в слакбилды:
$ slapt-src --search nilfs nilfs-utils:2.1.5 - nilfs-utils (Utilities for NILFS)
Впрочем, и этот пакет собирается без всяких проблем:
$ sudo slapt-src -i nilfs-utils
Теперь с обеими файловыми системами можно работать – например, я отвёл под каждую из них по флешке объёмом 4 ГБ (больше свободных не было) на предмет последующего сравнения их быстродействия:
$ sudo /mkfs.nilfs2 -f -K /dev/sdf1 $ sudo /mkfs.f2fs -t 0 /dev/sdg1
В первой команде опция
-f
означает принудительное форматирование – иначе на флешке с существующей файловой системой оно не пойдёт. А опция -K
отключает поддержку TRIM, каковая на флешках бесполезна. Аналогичный смысл опции -t 0
во второй команде. У обоих команд есть ещё несколько опций, с которыми можно ознакомиться на соответствующих man-страницах, но мне они показались (пока) не актуальными.
К слову – после включения поддержки наших героинь и установки надлежащего инструментария они появляются и в списке доступных для создания через Gparted:
Рисунок 12-28. Файловые системы f2fs и nilfs2 в меню GParted
Всё это прекрасно, но работает до первой перезагрузки – при старте машины модули поддержки обеих файловых систем сами собой не подгружаются. И обычно практиковавшийся мной в таком случае метод – создание в каталоге
/etc/modprobe.d/
соответствующих конфигов, nilfs2.conf
и f2fs.conf
– не прокатил.
Однако задача, тем не менее, решилась. Ибо в Slackwate для обеспечения загрузки модулей существует специальный файл,
/etc/rc.d/rc.modules
– симлинк на соответствующий конфиг для текущей версии ядра, в данном случае – /etc/rc.d/rc.modules-3.10.17
. В его секцию
### Filesystem support ###
достаточно вписать такие строки:
/sbin/modprobe f2fs /sbin/modprobe nilfs2
чтобы всё стало замечательно.
Теперь, после рестарта машины, при подключении флешки с nilfs2 соответствующее ей устройство появляется в списке устройств файлового менеджера Thunar. То есть, казалось бы, может быть смонтировано обычным пользователем, верно?
А не тут-то было. При выборе из контекстного меню пункта Подключить том устройство действительно делает вид, что подключается. Но для записи обычным пользователем оно недоступно, пока не переопределишь (от root'а) атрибуты принадлежности и доступа к точке монтирования.
Впрочем, такое поведение nilfs2 можно считать прогрессом. Когда я с этой файловой системой, она вообще не поддерживала монтирование обычным пользователем.
А с f2fs получается другая история: она вообще не желает монтироваться от лица обычного пользователя, если не вписать в файл
/etc/fstab
строку воде такой:
/dev/sdf1 /mount_point f2fs noauto,users,rw 0 0
Где
/dev/sdf1
– первое устройство после подключённых постоянно. А точке монтирования нужно задать атрибуты принадлежности нужного пользователя. Причём сделать это обязательно после первого подключения устройства – в этот момент оно самопроизвольно становится принадлежащим root'у. Хотя установленная потом принадлежность пользователю в дальнейшем сохраняется. Об этом глюке я некогда писал. Судя по тому, что с тех пор прошёл год, бага приобрела статус фичи.
Тем не менее, после всего проделанного с устройством, несущим f2fs, можно работать почти нормально. Почти – потому что нет никакой гарантии, что оно будет найдено системой после отключения и повторного включения в том же сеансе. Это относится, кстати, и к nilfs2.
И ещё: при совместном использовании устройств с f2fs и nilfs нужно следить, чтобы первое было включено раньше второго, иначе, ясное дело, «буковки» не совпадут.
Резюмирую базар: в настоящее время и nilfs2, и f2fs представляют чисто академический интерес. Использование каждой из них по отдельности достаточно неудобно, а обе-две вместе вообще уживаются с напрягом. В чём, надо полагать, и заключается причина слабой, мягко говоря, их распространённости.
Поэтому всё сказанное выше – ни в малейшей степени не руководство к действию, а просто узелок на память: кто знает, может, триумфальное шествие SSD-накопителей по пользовательским десктопам побудит довести до ума не одну, так другую. И они будут поддерживаться дистрибутивами уже не для «галочки», а для реальной работы.
Включение поддержки ZFS было одним из первых моих деяний после установки Salix'а – все мои рабочие данные расположены на
zpool
'е, который должен быть доступен для всех установленных систем. Иначе они годились бы только «на посмотреть». Правда, я был уверен в успехе решения этой задачи, поскольку из сетевых материалов знал, что в Slackware поддержка ZFS on Linux в принципе существует, а Slackware и Salix – братья навек. Однако всё оказалось гораздо проще, и необходимые пакеты нашлись, не выходя из границ родных репозиториев.
Как и следовало ожидать, поиск по ключевому слову
zfs
в официальном репозитории результата не дал: бинарные модули для поддержки этой файловой системы имеют мали смысла, так как привязаны к версии ядра. Но зато среди слакбилдов легко обнаружился и zfs-on-linux.SlackBuild
, и spl-solaris.SlackBuild
. Кроме них, требуется также пакет kernel-headers
(был установлен по умолчанию при начальной инсталляции) и исходники ядра той же версии, которая используется в системе. Так что для начала я определил таковую командой
$ uname -a
Linux salix 3.10.17 #2 SMP ...
После чего присвоил себе перманентные права администратора (далее они будут нужны постоянно)
$ sudo -i
и установил соответствующий пакет:
# slapt-get --i kernel-source-3.10.17-noarch-2
Обращаю внимание, что требуется именно
uname -a
, потому что uname -r
не даёт номера сборки, который не менее важен.
Далее последовательно были собраны требуемые слакбилды – сначала:
# slapt-src -i spl-solaris
а затем
# slapt-src -i zfs-on-linux
Делать это нужно именно в указанном порядке, иначе последует сообщение об ошибке.
Следующий шаг – подключение соответствующих модулей
# sudo modprobe zfs
и проверка результатов этого деяния:
# lsmod |grep zfs zfs 997378 5 zunicode 320867 1 zfs zavl 4875 1 zfs zcommon 32148 1 zfs znvpair 49518 2 zfs,zcommon spl 123549 5 zfs,zavl,zunicode,zcommon,znvpair
Перед импортом существующего пула я не забыл создать каталог – точку монтирования его datasets
# mkdir /home/data
и назначить для него «правильного хозяина»:
# chown -R alv:users data
Обращаю внимание: во всех используемых мной Linux-системах первый пользователь, то есть я, любимый, имеет UID 1000. Если в системах моего читателя это не так (например, есть дистрибутивы, присваивающие первому юзеру UID 500, возможно, существуют и другие варианты), то «право принадлежности» надо указывать в численном выражении. Что же до принадлежности группе и её GID, то в данном (моём) случае это рояля не играет: GID основной группы первого пользователя, как бы она ни называлась словами (
users
или username
) во всех поих случаях равен 1000. Если это важно для читателя – следует учесть и этот фактор.
Это с одной стороны. А с другой – есть подозрение, что при монтировании дейтасетов импортируемого пула все они автоматом получают те права принадлежности и доступа, которые были у них в исходной системе. Каюсь, вот уже за пару лет применения одних и тех же пулов в разных дистрибутивах я не то что прочитать – даже проверить это не удосужился.
Теперь – самый ответственный момент, импорт существующего пула:
# zpool import -f data
Проверка показывает, что он прошёл успешно:
# zpool status pool: data state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM data ONLINE 0 0 0 sda3 ONLINE 0 0 0 sdb3 ONLINE 0 0 0
errors: No known data errors
Да ещё и все дейтасеты, входящие в пул, сами собой смонтировалсь куда надо:
# zfs mount data /home/data data/media /home/data/media data/other /home/data/other data/proj /home/data/proj data/vbox /home/data/vbox
Так что мой пул данных полностью пригоден к работе...
... увы, до перезагрузки системы. После которой ни малейших следов смонтированных файловых систем
zpool
'а мы не обнаруживаем. Хотя сам пул задействован, и команда zpool status
возвращает правильный ответ, такой же, как раньше. Согласно ZFS on Linux FAQ, это ситуация достаточно обычная (в частности, с ней же я сталкивался в тестовых вариантах Ubuntu Trusty). И тот же документ (в том числе и в русском переводе) предлагает в каждом дистрибутиве, не входящем в его «белый список» (а Slackware в него не входит) решать её силами рук самих утопающих.
Будучи одним из представителей последних, я, конечно, легко решил её командой
$ sudo zfs mount -a
после которой все файловые системы в
/home/data
оказываются на своих местах. Однако это не дело – заниматься таким безобразием каждый раз после рестарта системы.
Процесс следует автоматизировать. Как? Теоретически рассуждая, разными способами. Я для начала избрал самый грубый, но простой, вспомнив о палочке-выручалочке каждого нерадивого слакварщика – файле
/etc/rc.d/rc.local
, в который можно запихать всё невпихуемое в другие места. По умолчанию он пуст, но я это быстро исправил, вписав туда строку
zfs mount -a
обеспечивающую монтирование всех файловых систем подключённого пула ZFS при старте системы. А для симметрии добавил в
/etc/rc.d/rc.local_shutdown
строку
zfs unmount -a
выполняющую обратную процедуру при выходе.
После этого проблем с доступом к файловым системам ZFS больше не наблюдалось. Правда, как легко догадается читатель, до обновления ядра – благо, автоматически оно обновляться не будет, так как входит в состав исключений. Однако если необходимость в пересборке или апгрейде ядра всё-таки возникнет – придётся также пересобрать модули
zfs-on-linux
и spl-solaris
, сами собой они не соберутся.