Русификация консоли nixos linux

13. Кириллизация дистрибутивов

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

Для настройки кириллицы прежде всего полезно прочитать разделы Кириллизация консоли, Настройка X Window, и только после этого, зная, что вы делаете, обратиться к подразделам этого параграфа.

13.1 SuSE

Настройка текстового режима

Пример русификации консоли koi8. Проверено для версии 6.3

Запустите программу конфигурации и администрирования yast под суперпользователем.

Для выбора консольного шрифта в меню «System administration» следует выбрать пункт «Set the console font». Я рекомендую выбрать какой-либо шрифт из серии «Cyr_a8x» (у меня стоит шрифт Cyr_a8x16.pcfu.gz ) — сделайте этот шрифт «As standart font».

Далее в меню «System administration» выберите пункт «Change configuration file». Среди предложенных для изменения переменных нас интересуют:

CONSOLE_FONT — консольный шрифт (как поменять эту переменную, было описано ранее; можно менять ее и здесь),

CONSOLE_SCREENMAP — установите переменную равной koi2alt,

CONSOLE_MAGIC — установить равной «(K» (кавычки не писать),

KEYTABLE — рекомендую установить равной ru3.map.gz (переключатель правый Alt, раскладка стандартная), или ru4.map.gz (переключатель CapsLock, раскладка для Windows клавиатуры),

RC_LANG — можно установить равной ru_RU.KOI8-R.

Все это можно сделать, подредактировав файл rc.local в /etc/ .

P.S. Если при установке указать, что ваш язык — «русский» (LANGUAGE=russian), то все настроится автоматически (ну, почти).

X window

Делайте так же, как описано в разделе X Window — настройка ничем от стандартной настройки не отличается.

13.2 RedHat 6.2

Кириллизация консоли

Для управления шрифтами и клавиатурой в RedHat 6.2 используется пакет console-tools (Для более тщательной настройки проконсультируйтесь с разделом linux-console-consoletools)

Полная русификация консоли RedHat 6.2:

  • В файл /etc/sysconfig/i18 поместите следущие строчки:
  • В файл /etc/sysconfig/keyboard добавьте:

Переключение по Caps Lock , раскладка Microsoft — для полного счастья в деле настройки следует добыть пакет console-tools-cyrillic (См. раздел linux-console-cyrillic-consoletools).

ВНИМАНИЕ: Очень полезная ссылка — /usr/doc/initscripts-4.xx .

X window

Делайте так же, как описано в разделе X Window — настройка ничем от стандартной настройки не отличается.

13.3 RedHat 5.2

Кириллизация консоли

Из чего же сделана русификация
в RedHat? Как известно, в Linux существуют два
конкурирующих пакета управления шрифтами и
клавиатурой:
kbd
и
consoletools.
В RedHat 5.x
для русификации консоли применялся пакет
kbd. В RedHat 6.x применяется уже другой пакет — (www.multimania.com/ydirson/en/lct/) consoletools. Разницы между ними радикальной нет, но это, увы, делает несовместимым пакет initscripts для версий RedHat 5.x и 6.x.

Русификация (и вообще включение национальных установок) в Linux RedHat 5.2 осуществляется из пакета initscripts. Не будем вдаваться в подробности работы SYSV init, опишем краткий путь. Предполагается, что читатель данного текста умеет пользоваться пакетом RPM, который весьма важен в RedHat.

Клавиатура

Клавиатура в RedHat 5.2 на нижнем уровне управляется утилитой loadkeys из пакета kbd-096a-8 . Пакет стандартный, RedHat лишь добавил туда несколько новых раскладок.

Запускается loadkeys из /etc/rc.d/init.d/keytable , управляющий файл /etc/sysconfig/keyboard . Там прописывается единственная переменная KEYTABLE:

Есть интерактивная утилита смены раскладки: kbdconfig, которая на самом деле лишь прописывает значение в /etc/sysconfig/keyboard .

Файлы клавиатурных раскладок лежат в /usr/lib/kbd/keymaps/ .

Мне нравится раскладка ru_win_ctrl.map.gz от (www.iplabs.ru/Linux) IP Labs. Переключение по правому Ctrl, точка и запятая в русском регистре, как в Windows, т.е. рядом с правой кнопкой Shift. (На моей клавиатуре нарисовано именно так). Надо положить этот файл в /usr/lib/kbd/keymaps/i386/quwerty/ , запустить kbdconfig и выбрать ru_win_ctrl. (Хотя и родная раскладка ru1 тоже ничего — точка и запятая на Shift 6, Shift 7).

Включить новую раскладку на ходу можно, запустив /etc/rc.d/init.d/keytable start

Консоль

Консоль в RedHat 5.2 на нижнем уровне управляется утилитами setfont и mapscrn из пакета kbd-096a-8.

Все, что необходимо сделать, это выполнить следующие команды:

Кроме того, необходимо переключить Charset G1 на вновь загруженный шрифт. Для этого нужно на все виртуальные консоли /dev/vty* вывести «магическую» последовательность ESC (K.

К сожалению, с русификацией консоли в RedHat не все так прозрачно, как с клавиатурой. Отдельной «подсистемы» для управления консолью нет. А если делать все по-RedHat’овски, то возникают проблемы.

RedHat рекомендует использовать «новый» формат, с UNICODE таблицей:

К сожалению, на «новом» формате сползают рамки в mc и других программах. В RedHat 6 применяется другой пакет: (www.multimania.com/ydirson/en/lct/) consoletools, и другая версия initscripts, там все сделано немного по-другому.

Читайте также:  Bios acer войти windows 10

Но попробуем выкрутиться! 😉

Все утилиты запускаются из файла
/sbin/setsysfont (на самом деле это shell-скрипт), параметры для которого живут в /etc/sysconfig/i18n . Не очень понятно, каково отношение между i18n и шрифтами, но тем не менее это так.

Не очень понятно, откуда посылать ESC (K. Можно посылать его, например, из

X window

Делайте так же, как описано в разделе X Window — настройка ничем от стандартной настройки не отличается.

13.4 Debian

Этот раздел посвящен кириллизации Debian 2.2. Если какие-либо действия надо совершить для младших версий этого дистрибутива — это будет отмечено особо.

Настройка русской локали

В файле /etc/environment исправьте LANG=C на LANG=ru_RU.KOI8-R . Если вы хотите, чтобы у root были русские сообщения и он мог вводить русские буквы в X Window, сделайте тоже самое в /root/.bashrc .

Если версия вашего дистрибутива меньше 2.2, то дополнительно выполните команду

с привилегиями пользователя root. Зачем же мы удаляем ru_SU и делаем локаль с таким большим именем? Все потому, что SU — это сокращение страны Судан, а эта локаль предназначена для людей из России, говорящих по-русски. Можно было бы оставить ru_RU, скажете вы. Но ru_RU уже существует, это локаль с кодировкой ISO-8859-5. Поэтому следует поставить ru_RU.KOI8-R.

Русификация текстового режима.

Если в системе все еще инсталлирован пакет kbd , то замените его на console-tools . Вставьте в /etc/console-tools/config :

с привилегиями пользователя root.

Первый вопрос, который возникает — зачем грузить какой-то APP_CHARSET_MAP? Действительно, если загрузить шрифт KOI8-R, то можно будет не грузить карту перекодировки (APP_CHARSET_MAP). В этом случае вместо символов псевдографики будут появляться русские буквы ‘Д’, а иногда даже ‘YO’. Чтобы побороть это, можно сделать свой тип терминала (в debian есть linux-koi8). Но гораздо проще и грамотнее поставить cp866 шрифты и включить таблицу перекодировки. Последний шаг — копирование карты клавиатуры. ru1 рассчитана на 102-кнопочную клавиатуру без MicroSoft’овских клавиш.

Если версия вашего дистрибутива меньше 2.2, то вместо console-tools вам придется воспользоваться пакетом kbd — в этом случае настройки будут следующие:

Вставьте в /etc/kbd/config :

с привилегиями пользователя root.

Русификация X Window System

Установите пакет xfonts-cyrillic со второго CD. Затем выполните команду

Теперь загрузите XF86Setup и скажите, что хотите Russian клавиатуру. Если вы не хотите пользоваться xdm, то в /etc/inittab измените id:2:initdefault: на id:1:initdefault: (Вместо правки /etc/inittab лучше поправить /etc/rc2.d/: переместить из этой директории куда-нибуть в созданную /usr/local/sys-bakup линк на /etc/init.d/xdm (S99xdm)).

Если же вы хотите воспользоваться xdm, то, вам надо будет вставить строчку

в начале инициализационного сценария xdm ( /etc/init.d/xdm ). Затем в файле /etc/X11/xdm/xdm-config в конце вставьте строчку

Зачем создавать символическую ссылку на /usr/X11R6/lib/X11/fonts/cyrillic ? Дело в том, что XF86Setup, если видит каталог /usr/X11R6/lib/X11/fonts/local , то ставит его на первое место в секции «Files» файла /etc/X11/XF86Config .

Зачем делать
такие сложные выкрутасы с xdm? Чтобы xdm воспринял русскую локаль. Если вы хотите установить шрифты Cyr-RFX-charset=utf-8u (См. раздел CyrFontsXCyr-RFX — для кириллицы отличной от русской), то у вас возникнут проблемы с приложениями gtk — как с эти бороться описано в разделе Поддержка кириллицы в программах gtk).

13.5 Slackware 7

Этот раздел является сильно сокращенной версией (только кириллизация) Slackware-7-INSTALL-RUS.HOWTO (с) 1999 Вячеслава Калошина (multik@sw.ru, multik@istu.edu)

Русификация текстового режима.

Для кириллизации следует выполнить следующие действия.

    Переименовать файл /etc/rc.d/rc.font.sample в rc.font и добавить следующее содержание:

таким образом, появятся русские буквы в консоли. Шрифты переключаются правым Ctrl.

Положить файл .inputrc следующего содержания в каталог /etc/skel :

здесь на F10 «повешана» команда exit .

  • В /etc/profile следует добавить:
  • При этом надо положить русскую локаль
    (ее можно взять в других дистрибутивах, или скачать и развернуть отсюда) в /usr/share/locale/ru_RU/ .
  • от root’а выполнить следующие команды:

    символами \\ обозначено продолжение строки — эти строчки надо вводить в одну строку.

  • в том же каталоге следует поправить файл locale.alias — добавить строчку:
  • Все, Slackware на нижнем уровне русифицирована.

    Русификация X Window System

    Делайте так же, как описано в разделе X Window — настройка ничем от стандартной настройки не отличается. Но можно поступить, как советует Вячеслав Калошин (хотя этот способ не очень-то и правильный, но тоже работает):

    Источник

    Для тех, кто думает перейти на NixOS

    Собственно по мотивам ТЫЦ но про NixOS и на основе моего опыта эксплуатации сабжа в течение как минимум одного года восьми месяцев и двух дней или шестьсот двенадцати дней кому как угодно. Ибо именно столько у меня стоит NixOS основной системой тыц.

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

    Читайте также:  Как найти драйвер для звуковой карты windows 10

    Так вот детки. Гента местами хороша… хотел бы я так написать но увы нет. Есть кардинальные проблемы с которыми она не справиться. Основная это toolchain. У вас попросту не может быть консистентной системы с самым распоследним toolchain-ом и довольно старыми выдержанными проверкой временем программами (Либо наоборот). Это не значит что такую проблему нельзя решить костылями chroot-а или некими иными методами… Это значит лишь то что такая проблема у дистрибутива как минимум есть в наличие.

    Ты сейчас задвинул некую чушь. <У меня нет>/ <Мне не нужны>старые программы.“ — Да дело ведь не только в этом. Те кто прожил с гентой достаточно припомнят не один случай неудачного обновления glibc в результате которого всему приходил северный полярный лис. „Бэкап спасёт“ да не без этого. Однако бэкап не исправляет саму изначальную проблему.

    Так вот последние два абзаца написаны собственно только ради того что… Да детки в NixOS таких проблем нет. И быть не может by design. И я скромно умалчиваю про другие архитектуры, контейнера, FHS environment и прочие побочные плюшки.

    Дальше меня ждала «ломка» поскольку во всех дистрибутивах корень системы это важная штука которую можно пощупать своими загребущими ручёнками… Да а в то время как в NixOS из всего корня так сказать материальны только /etc/nixos , /root и /nix а остальное симлинки… Тудумс! Занавес.

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

    Канпельять нинада. nixos ацтой. Моя отсельда мухожук.“ Однако стоит лишь переопределить дефолт и если это столь необходимо пакетный манагер сам пересоберёт то что нужно пересобрать. Вкуснятина!

    Дальше сам процесс разработки. Про генту я скромно умолчу. А вот NixOS разрабатывают на гитхабе открыто, свободно и без бюрократии и 1770 запросов на слияние и 3753 проблемы тому доказательство.

    Я скажу так в генте для меня всегда была головной болью настроить gnome/kde/plasma. Полные метапакеты натащат столько что ппц а минимальные как правило просто обрезаны по самое немогу и для комфортного существования приходилось искать ту самую золотую середину самостоятельно. В NixOS просто дефолтный выбор мне что называется зашел на ура. Одной проблемой меньше.

    Итак вот мы прожили в системе определённое время накопились критические изменения и настало то самое время обновлять. У NixOS считай весь корень тупо набор симлинков поэтому, как не трудно додумать, он чудесно версионируется. Да у вас всегда есть не просто единственное текущее состояние системы но и всё неудалённые прошлые её состояния.

    В NixOS пакетный менеджер заведует не просто версией хромиума но и всеми его настройками и да даже его расширениями.

    Любые нативные игрушки steam-run спасает и делает не просто хорошо а прям прекрасно.

    Да ладно… Вот прям взял и описал идеал. Не верю.“ Есть и баги. Дальше о них.

    Ну не то чтобы это было проблемой но как с самой первой инсталлиции так и до сих пор — Only english language available in plasma regional settings #33987, Missing a lot of translation in plasma5-based system. #37741 Да все преведенные решения перепробовал но баг как был так и есть.

    Из того что заметил в последнее время HDD not mounted, system don’t boot #32588 это про btrfs на luks. Но оно тоже странное то есть то нет… В общем закономерности я не заметил но у себя наблюдал.

    Ну и покамест на этом всё. Надеюсь мои многобукав помогут кому нибудь сделать свой выбор.

    Источник

    Nix: Что это и с чем это употреблять?

    Мы в Typeable хотели опубликовать небольшой цикл статей о том, как Nix нам помогает (и немного мешает) в разработке. Но, проведя немножко времени в поисках похожего материала здесь, с удивлением обнаружили, что на Хабре нет толкового введения в Nix, на которое можно было бы сослаться.

    Статья от @snizovtsev подойдёт как хорошее введение при разработке на C++, но это не совсем то введение, которое мне хотелось бы видеть. Поэтому я решил написать его сам 🙂

    Файлы к этой статье можно найти здесь.

    Где это всё взять?

    Помимо NixOS, где ничего делать не нужно, Nix можно установить на любой (или почти любой) дистрибутив Linux. Для этого достаточно запустить следующую команду:

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

    Читайте также:  Как поменять ядро линукс минт

    Язык Nix

    Когда речь идёт о Nix, часто имеют в виду две разные сущности: Nix как язык и nixpkgs как репозиторий пакетов, в том числе составляющий основу NixOS. Начнём с первого.

    Nix — функциональный ленивый язык с динамической типизацией. Синтаксис во многом похож на языки семейства ML (SML, OCaml, Haskell), поэтому у тех, кто с ними знаком, особых проблем возникнуть не должно.

    Начать знакомство с языком можно просто запустив интерпретатор.

    Отдельного синтаксиса для объявления функций в Nix нет. Функции задаются через присваивание, так же как и другие значения.

    Как и в языках, повлиявших на Nix, все функции каррированы.

    Помимо примитивных типов, таких как числа и строки, Nix поддерживает списки и словари (attribute sets в терминологии Nix).

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

    Директива inherit вносит или «наследует» термин из текущей области видимости и даёт ему такое же имя. Пример выше эквивалентен записи let fac = . in < fac = fac; >.

    При загрузке файлов или модулей в REPL, Nix ожидает, что результатом вычисления модуля будет множество, элементы которого будут импортированы в текущую область видимости.

    Для загрузки кода из других файлов в Nix есть функция import , принимающая путь к файлу с кодом и возвращающая результат выполнения этого кода.

    Хотя присваивание модуля в отдельную переменную — довольно частая практика, в данном случае это выглядит несколько нелепо, правда? В Nix есть директива with , добавляющая в текущую область видимости все имена из множества, переданного в качестве параметра.

    fac.nix с использованием with :

    Сборка программ

    Сборка программ и отдельных компонентов — это основная функция языка Nix.

    В случае работы с пакетами, основным инструментом, про который нужно знать, является Derivation . Сам по себе Derivation — это специальный файл, содержащий рецепт для сборки в машинно-читаемом виде. Для компиляции программы на C, выводящей «Hello World!», derivation выглядит примерно следующим образом:

    Как видно, в этом выражении содержится путь к результату сборки, который получится в итоге, а также пути к исходным файлам, скрипту сборки, и метаданные: имя проекта и платформа. Стоит так же заметить, что пути к исходникам начинаются с /nix/store . При сборке, Nix копирует всё нужное в эту директорию, после чего сборка происходит в изолированном окружении (sandbox). Таким образом достигается воспроизводимость сборки всех пакетов.

    Разумеется, никто в здравом уме руками писать такое не станет! Для простых случаев, в Nix есть встроенная функция derivation , принимающая описание сборки.

    Давайте попробуем разобрать этот пример. Весь файл представляет собой определение функции, которая берёт один параметр — словарь, содержащий поле pkgs . Если оно не было передано при вызове этой функции, используется значение по умолчанию: import <> .

    derivation — функция, так же принимающая словарь с параметрами сборки: name — имя пакета, builder — сборочный скрипт, src — исходный код, system — система или список систем, под который возможна сборка данного пакета.

    writeShellScript — функция из nixpkgs , принимающая имя для скрипта и код и возвращающая путь к исполняемому файлу. Для многострочного текста в Nix есть альтернативный синтаксис с двумя парами одинарных кавычек.

    С помощью команды nix build , этот рецепт для сборки можно запустить и получить работающий бинарник.

    При запуске nix build , в текущей директории создаётся символическая ссылка result , указывающая на созданный в /nix/store пакет.

    Сборка программ, продвинутая версия

    derivation — достаточно низкоуровневая функция, на базе которой в Nix построены куда более мощные примитивы. Для примера, можно рассмотреть сборку широко известной утилиты cowsay .

    Оригинал скрипта находится здесь.

    stdenv — специальный derivation , содержащий правила сборки для текущей системы: нужный компилятор, флаги и прочие параметры. Основное содержимое — гигантских размеров скрипт на баше под названием setup , который и выступает в роле скрипта builder из нашего простого примера выше.

    mkDerivation — функция, создающая derivation с этим скриптом и заодно заполняющая другие поля.

    Те читатели, кто раньше писал скрипты для сборки пакетов в Arch Linux или Gentoo, могут увидеть здесь крайне знакомую структуру. Как и в других дистрибутивах, сборка разбита на фазы, присутствует перечисление зависимостей ( buildInputs ) и так далее.

    Заключение

    В этой статье я попытался описать самые базовые части работы с Nix как языком для сборки кода. В следующих статьях я планирую показать, как мы применяем Nix в Typeable, а также как это делать лучше не стоит. Stay tuned!

    Также, гораздо более подробное введение в Nix опубликовано на сайте самого проекта под названием Nix pills.

    Источник

    Оцените статью