вторник, 8 сентября 2015 г.

Настройка оконной системы X, локализаций и печати.



Реализации Х-сервера:
-XFree86 - основной сервер до 2008г
-X.org-X11 - большинство дистрибутивов перешло на этот сервер в 2004году.
-Accelerated-X - коммерческая версия.

Утилиты для настройки X-сервера:
XFree86 -configure
Xorg -configure
Также в разных дистрибутивах существует собственные утилиты.
Файл настроек: /etc/X11/xorg.conf

Для того, чтобы отключить Х сервер можно перейти на уровнь запуска, где он не работает (telinit 3)
В Debian-подобных дистрибутивах уровни запуска не используются для того чтобы останавливать или запускать Х. Для отключения графической оболочки следует ввести команду /etc/init.d/xdm stop (возможно понадобится заменить xdm на gdm, kdm, mdm, или lightdm)
После того, как настройки Х отредактированы, можно переключиться обратно в графический режим командой telinit 5 либо startx.
Также процесс Х можно завершить сочетанием клавиш Ctrl+Alt+Backspace, или командой kill (ps ax | grep X для поиска ID)
При конфигурировании Х лучшим подходом является поиск неработающих опций и их отключение.

Настройки клавиатуры в секции "input device". Можно настроить драйвер, раскладку, повтор символов.

Получить информацию о дисплее xdpyinfo (-extension)
Информация об отдельном окне: xwinfo (ввести команду, потом кликнуть по окну)
Обратить внимание: Wayland как альернатива X серверу.

Ряд программ, в частности текстовые редакторы управляют шрифтами самостоятельно, соответственно шрифты в этих программах могут не меняться при изменении настроек в X и следует менять собственные настройки программы.
Виды шрифтов:
Битовые (Bitmap). Самая простая технология. Набор пикселей каждый из которых активен или неактивен. Требуют большого количества файлов (свой вариант шрифта соответствующего размера для каждого разрешения экрана) для корректного отображения.
Контурные (Outline). Масштабируемые шрифты. Представляются как набор линий в матрице высокого разрешения. Такие шрифты могут масштабироваться системой в зависимости от разрешения экрана. Два основных формата контурных шрифтов: 1. TrueType от Adobe 2. PostScript от Apple 

Основные шрифты X (X core fonts) - шрифты, управляемые непосредственно Х сервером. Для настройки этих шрифтов следует подготовить директорию, в которой располагется шрифт и добавить эту директорию в настройки Х (font path).
X11 по умолчанию хранит шрифты в /usr/share/fonts или /usr/X11R6/lib/X11/fonts/ Имеет смысл поместить скачанные из интернета или коммерческих дисков шрифты в отдельную директорию, например /opt/fonts или /usr/local/fonts
При установке шрифтов системе нужны файлы с расширением .pfa или .pfb (они содержат данные шрифтов). Файлы шрифтов TrueType поставляются с расширением .ttf Некоторое шрифты, предназначенные только для MacOS следует предварительно сконвертировать. 
После того, как файлы шрифтов скопированы в директорию, туда следует поместить файл fonts.dir, который описывает шрифты в директории. Для этого следует воспользоваться утилитами mkfontscale (создает файл fonts.scale, который описывает только контурные шрифты) и mkfontdir (совмещает fonts.scale и fonts.dir, при необходимости создавая последний).
После того, как файлы шрифтов помещены в директорию и в ней созда файл fonts.scale следует добавить путь в секцию "Files" xorg.conf, например:  FontPath "/usr/share/fonts/Type1"
Если в секции "Files" xorg.conf содержатся указания на unix:/7100 or unix:/-1 без указания обычных директории, система настроена на получени шрифтов от сервера шрифтов X  и настраивать шрифты следует на сервере.
Если секции "Files" в xorg.conf нет, система использует путь к шрифтам по умолчанию. Можно добавить секцию с путями к новым шрифтам.
Порядок размещения записей в секции "Files" xorg.conf имеет значение, т.к. если имеются повторяющиеся шрифты, то будут использованы те, что расопложены выше в списке (этим можно воспользоваться, чтобы заменить системный шрифты пользовательскими).
Если после записи имеется строка :unscaled (например FontPath "/usr/share/fonts/100dpi:unscaled") Х будет использовать битовые шрифты, только если они в точности соответствуют заданному размеру шрифта. В противном случае, Х будет пытаться масштабировать битовые шриты (как правило с плачевным результатом). Обыно директории с битовыми шрифтами указываются в списке дважды: один раз с атрибутом :unscaled в начале и без него в конце, что позволяет отображать список подходящих битовых шрифтов, затем контурных шрифтов, затем масштабированных битовых шрифтов.

Самый простой способ протестировать изменения в конфигурации шрифтов - выключить Х сервер и снова включить. Если система сразу загружается в Х следует смотреть настройки XDMCP.
Более быстрый способ (но потенциально более подверженный ошибкам) - добавить путь к шрифту в работающую систему:
$ xset fp+/your/font/directory 
$ xset fp rehash
Программы, в которых должны отобразиться добавленные шрифты следует перезапустить.

Сервер шрифтов полезен, если необходимо централизованно настраивать шрифты на многих компьютерах одновременно. Для того чтобы использовать сервер шрифтов, в файле xorg.conf должны быть соответствующие настройки:
Section "Files" 
FontPath "unix:/7100" FontPath #локальный сервер шрифтов
"tcp/fount.pangaea.edu:7100"    #удаленный сервер шрифтов
EndSection

Для добавления шрифтов на сервер шрифтов следует выполнить установку шрифтов на сервер шрифтов, и внести соответствующие изменения в файл /etc/X11/fs/config, а затем перезапустить сервер шрифтов /etc/init.d/xfs restart

Шрифты ядра Х (X core fonts) плохо подходят для программ, генерирующих текст для печати. Для преодоления этой проблемы была создана еще одна система шрифтов Xft. Если директория со шрифтами подготовлена, как описано выше, ее можно добвать в Xft прописав путь к директории в файле /etc/fonts/local.conf Поддиректории включаются автоматически.
Для того, чтобы применить внесенные изменения следует воспользоваться командой fc-cache

Х - это графический интерфейс, способный работать по сети с использованием протокола XDMCP. Х сервер может как принимать соединения с других компьютеров, так и работать локально (так мы получаем графический интерфейс на локальном компьютере).
Наиболее распространенныt серверы XDMCP: XDM,KDM,GDM,MDM,LightDM.

XDM. Файл конфигурации /etc/X11/xdm/xdm-config Если в XDM не разрешено подключение по сети, в файле конфигурации пристутствуетс строчка DisplayManager.requestPort: 0 Для разрешения подключения по сети, следует 0 поменят на 177 (стандартный XDMCP порт). Удаленный вход может быть полезен в локальной сети, но данные при удаленном входе не шифруются, следовательно, имеется угроза безопасности. Файл /etc/X11/xdm/Xaccess содержит настройки удаленного доступа.

KDM. Основан на XDM. Те же конфигурационные файлы. Могут находиться в /etc/X11/kdm, /etc/kde/kdm, /usr/lib/kde4/libexec/

GDM. Файлы кофигурации находятся в /etc/X11/gdm или /etc/gdm Можно настраивать утилитой gdmconfig или gdmsetup

Можно подлкючаться к X серверу на удаленном компьютере и выполнять на нем программы. Для защиты соединения можно использовать SSH.

Внутренние часы линукс используют UTC (время гринвича без поправок на зимнее/летнее время). Для отображения местного времени исопользуются настройки часового пояса (time zone). 
Для настройки часового пояса используется файл /etc/localtime Как правило, он является ссылкой на файл часового пояса:
ls -l /etc/localtime lrwxrwxrwx 1 root root 36 May 14 2008 /etc/localtime ->  /usr/share/zoneinfo/America/New_York
но может быть и обычным файлом. В таком случае для того чтобы узнать настройки часового пояса, следует воспользоваться командой date.

Для смены настроек часового пояса:
-зайти в систему с правами рута
-просмотреть содержимое директории /usr/share/zoneinfo и найти файл соответствующий нужному часовому поясу
-если в /etc есть файл localtime, его следует удалить или переименовать
-создать символическую ссылку /etc/localtime на файл часового пояса
-некоторые дистрибутивы  дополнительно хранят информацию о часовом поясе в текстовом виде, в файле /etc/timezone (Debian), /etc/sysconfig/clock (Fedora), которые также следует обновлять при смене настроек часового пояса.

Если для отдельного сеанса входа требуется, чтобы программы обращающиеся к переменной среды TZ верно отображали время, можно воспользоваться командой $ export TZ=:/usr/share/zoneinfo/Europe/London Эта команда установить часовой пояс "Лондон" для отдельной сессии.

Локаль (locale)- способ указать язык и страну пользователя для настройки отображения программ (языки меню и т.п.).
Отдельная локаль выгдялит следующим образом: [language[_territory][.codeset][@modifier]]
Язык: например en(english), ja (japanese)
Территория: например US (united states)
Кодировка: ASCII, UTF и т.д.

ASCII - самая старая и простая кодировка, 7-битные коды поддерживающие английские буквы и распространенные знаки пунктуации. Не поддерживает символы, используемы в языках, отличных от английского.
Одной из первых попыток улучшить ситуацию был стнадрт ISO-8559. Он использует восьмой бит, расширяя ASCII до 128 символов. Данный стандарт разбит на ряд подстандартов, например ISO-8859-1 - западно-европейские языки, ISO-8859-5 - кириллица.
Самая новая кодировка - UTF8. Ее основой является ASCII, но она позволяет использовать для кодирования символа до 4 байт, таки образом появляется возможность закодировать любой символ Юникода (набор символов, раработанный, чтобы поддерживать максимально возможное количество языков). Большим преимуществом перед ISO-8559 является отсутсвие необходимости обозначать подстандарт: UTF-8 автоматически обрабатывает текст.

Просмотреть переменные среды, связанные с локалью: /usr/bin/locale Программы меняют свои настройки в соответствии с этими переменынми. Посмотреть все доступные системе локали: locale -a
Если нужная локаль отсутствует, ее нужно установить. Для поиска лучше воспользоваться графическим менеджером пакетов.
Для временной смены локали проще всего изменить переменную среды LC_ALL (для надежности следует также сменить LANG), например: 
$ export LANG=en_GB.UTF-8 
$ export LC_ALL=en_GB.UTF-8
В результате для данной сессии поменяют настройки все программы, на которые влияют настройки локали (только для текущей оболочки (shell) и запущенных из нее приложений).
Для постоянной смены локали следует поменять скрипты запуска, такие как ~/.bashrc or /etc/profile (задать в них LAN и LC_ALL)
Когда переменной LANG задано значение "C", программы, которые видят данную переменную, отображают свой вывод без изменений, которые вносят настройки локали. Может быть полезно при написании скриптов.

Для конвертации текста из одной кодировки в другую используется утилита iconv:
iconv -f encoding [-t encoding] [inputfile]

Пользователи отправляют задания на печать используя программу lpr. lpr может быть вызвана пользователем или другой программой. lpr помещает задания на печать в очереди. Каждой очереди соответствует директория на жестком диске, как правило это поддиректория /var/spool/cups Демон CUPS рабтает в фоновом режиме и отвечает за передачу принтеру заданий на печать. Система печати принимает задания на печать от lpr или удаленных компьютеров, наблюдает за очередями печати и обеспечивает упорядоченное выполнение заданий.
Печать в линукс ориентирована на сеть. Даже при отправке задания на печать на локальном компьютере используются сетевые протоколы. CUPS может служить как сервером, принимая задания печати, так и клиентом, перенаправляя их на другой компьютер.
Программы могут запрашивать у CUPS информацию о возможностях принтера.

Большинство программ для линукс гененируют задания для печати на языке PostScript (в то время как программы Windows взаимодействуют с драйвером печати ОС). Некоторые программы выводят напечать чистый (raw) текст, или используют язык PCL (разработанный hewlett packard). Проблема с PostScript состоит в том, что большинство принтеров нижнего и среднего ценового сегмента как правило не поддерживают этот язык, следовательно, требуется средство для того чтобы транслировать сгенерированные программой задания на PostScript в поддерживаемый принтеру формат, которое интегрируется в очередь печать. Для этих целей используется программа Ghostscript, которая является интерпретатором языка Postscript. Ghostcript принмает задание на PostScript, обрабатывает его и преобразует в один из битовых (bitmap) форматов, с которыми могут работать недорогие принтеры.
Один из минусов Ghostscript в том, что его выходные файлы, как правило, большого размера. Так если файл выходной файл PostScript, необходимый для печати страницы текста имеет размер несколько килобайт, для печати такого же текста, с разрешением 600dpi Ghostcript необходимо сгенерировать файл размером порядка 4 мегабайт, что может замедлять процесс печати, а также требовать расширения памяти принтера, чтобы вместить задание печати. 
Для того, чтобы задание печати передавалось сначала в Ghostscript используются специальные программы, т.н. smart filters. Демон печати Cups поставляется с собственным набором смарт фильтров. Благодаря им, линукс может работать с  любым поддерживаемым  принтером как с Postscript принтером. Смарт фильтры могут также определять другие типы файлов (plain text, графика) и передавать его другим программам для обработки (вместо Ghostscript или в дополнение к нему). Если принтер поддерживает Postscript, смарт фильтры все равно участвуют в процессе печати, но при этом передают задание принтеру напрямую.

Проверить запущен ли CUPS:
ps ax | grep cups

Для настройки CUPS следует отредактировать файлы конфигурации в /etc/cups либо воспользоваться веб-интерфейсом.

Удалить или добавить принтер: файл /etc/cups/printers.conf Дополнительные опции хранятся в файле PPD, директория /etc/cups/ppd Файл можно найти в составе драйверов принтера.

Для сетевой печати CUPS использует протокол IPP в дополнение к старому протоколу LPD. Для включения сетевой печати возможно понадобится поменять настройки в /etc/cups/cupsd.conf анный файл содержит набор блоков, каждый из которых определяет права доступа к отдельным функциям сервера.

Для общего доступа к принтерам в сети с большим количеством Windows клиентов можно использовать CIFS/SMB.
Напечатать документ: lpr Например: lpr -Php4000 /etc/fstab
Разместить несколько страниц на листе: mpage
Просмотреть очередь печати: lpq Например: $ lpq -Php4000
Удалить задание из очереди: lprm

Для принтеров HP существует утилита HPLIP, которая позволяет устанавливать принтеры и МФУ HP и работать с ними. Для установки нового принтера HP можно ввести в консоли команду hp-setup.


Источник: Roderick W. Smith - LPIC study guide, 3d edtition

Комментариев нет:

Отправить комментарий