Спулер CUPS

Со времён первых версий lpd было предпринято несколько попыток сделать что-нибудь более гибкое и удобное в настройке. В ALT Linux 2.3 помимо классического (и соответственно простого и лёгкого) lpd включена также могучая ультрасовременная система печати CUPS (Common Unix Printing System). Эта система печати постепенно завоёвывает все больше поклонников и практически уже стала новым стандартом среди спулеров.

Особенности CUPS

CUPS предоставляет достаточно много новых возможностей. Среди них:

Уникальная система настройки

Вы просто запускаете свой любимый web-браузер, направляете его по адресу http://localhost:631 — и перед вами красивый интерфейс, где вы можете удалить из системы или добавить в неё принтер, посмотреть очереди каждого из них, перезапустить уже выполненные задания и т.д.

Лёгкость настройки удалённой печати

Если у вас в офисе уже есть настроенный CUPS-сервер, то вам ничего не надо больше настраивать. Все CUPS общаются между собой; ваш сервер узнает, что уже есть сосед с настроенным принтером и посылает сразу задание на него.

Поддержка самых современных и защищённых протоколов

Основной протокол обмена данными между клиентом и сервером IPP, допустима печать через защищённое SSL-соединение.

Поддержка многих языков

Старенький lpd мог печатать только в одном системном языке. CUPS может обслуживать пользователей с самыми различными кодировками.

Единая система хранения описаний принтеров, так называемые PPD-файлы

Благодаря этому производитель может поставить это описание вместе с принтером (это, правда, не избавляет от необходимости иметь нужный драйвер в GhostScript).

Конфигурационные файлы CUPS

Конфигурационные файлы CUPS находятся в каталоге /etc/cups и формат их более понятен для пользователей. Файл /etc/cups/cupsd.conf содержит описание главных параметров сервера, каждый из которых сопровождается подробным описанием. Приведём некоторые, наиболее часто используемые из них:

  • LogLevel — уровень подробности протоколирования. По умолчанию значение равно info. Если у вас какие-то проблемы с CUPS, а в протоколе нет ничего информативного, можете поднять уровень до максимального — debug2.

    Пример 4.1. Максимальная отладочная информация

    LogLevel info

  • Port — TCP-порт, который будут использовать клиенты для соединения с сервером. По умолчанию это значение 631 (зарезервированное для протокола IPP).

    Пример 4.2. Назначение порта сервера

    Port 631

  • Location, Order, Allow, Deny — серия директив, аналогичных имеющимся в web-сервере Apache. Order — порядок просмотра значений Allow и Deny, Allow — адреса, с которых разрешён доступ, Deny — адреса, с которых доступ запрещён. Пример:

    <Location />
    Order Deny,Allow 
    Deny From All 
    Allow From 127.0.0.1
    </Location>

    Это означает, что сначала сервер будет смотреть, запрещён ли доступ с машины (здесь запрещено для всех), а потом разрешён ли (здесь разрешён доступ только с самого сервера). Последний параметр понадобится вам для организации одного CUPS-сервера на всю организацию. Организация доступа может быть устроена сколь угодно сложно благодаря поддержке концепции классов.

Это означает, что сначала сервер будет смотреть, запрещён ли доступ с машины (здесь запрещено для всех), а потом разрешён ли (здесь разрешён доступ только с самого сервера). Последний параметр понадобится вам для организации одного CUPS-сервера на всю организацию. Организация доступа может быть устроена сколь угодно сложно благодаря поддержке концепции классов.

Файл /etc/cups/client.conf содержит настройки для клиентской части. В нём указываются всего два параметра — местоположение сервера и защищённость соединения. Скорее всего, вам не придётся там что-либо менять. менять.

Файл /etc/cups/printers.conf содержит описание принтеров. Формат записи интуитивно понятен и похож на XML. Ниже приведён пример настройки на локальный принтер.

<DefaultPrinter printer>
DeviceURI parallel:/dev/lp0
State Idle 
Accepting Yes 
JobSheets none none 
QuotaPeriod 0
PageLimit 0 
KLimit 0 
</Printer>

Существенными параметрами являются Accepting (принимает ли принтер задания) и DeviceURI (специальное описание местоположения принтера). О том как правильно составлять URI, будет рассказано ниже, когда речь пойдёт о foomatic.

Описание каждого установленного принтера (соответствующий PPD-файл) находится в /etc/cups/ppd/<имя_принтера>.ppd. При каждом старте сервер сканирует каталог /usr/share/cups/model на предмет появления новых описаний принтеров (PPD-файлов) и проверяет последовательные и параллельные порты компьютера. В связи с этим запуск занимает некоторое время.

Для посылки заданий на печать можно использовать ту же команду lpr, для просмотра очереди заданий — lpq. Для отмены задания используйте команду cancel номер_задания.