Со времён первых версий lpd было предпринято несколько попыток сделать что-нибудь более гибкое и удобное в настройке. В ALT Linux 2.3 помимо классического (и соответственно простого и лёгкого) lpd включена также могучая ультрасовременная система печати CUPS (Common Unix Printing System). Эта система печати постепенно завоёвывает все больше поклонников и практически уже стала новым стандартом среди спулеров.
CUPS предоставляет достаточно много новых возможностей. Среди них:
Вы просто запускаете свой любимый web-браузер, направляете его по адресу http://localhost:631 — и перед вами красивый интерфейс, где вы можете удалить из системы или добавить в неё принтер, посмотреть очереди каждого из них, перезапустить уже выполненные задания и т.д.
Если у вас в офисе уже есть настроенный CUPS-сервер, то вам ничего не надо больше настраивать. Все CUPS общаются между собой; ваш сервер узнает, что уже есть сосед с настроенным принтером и посылает сразу задание на него.
Основной протокол обмена данными между клиентом и сервером IPP, допустима печать через защищённое SSL-соединение.
Старенький lpd мог печатать только в одном системном языке. CUPS может обслуживать пользователей с самыми различными кодировками.
Благодаря этому производитель может поставить это описание вместе с принтером (это, правда, не избавляет от необходимости иметь нужный драйвер в GhostScript).
Конфигурационные файлы CUPS находятся в каталоге /etc/cups и формат их более понятен для пользователей. Файл /etc/cups/cupsd.conf содержит описание главных параметров сервера, каждый из которых сопровождается подробным описанием. Приведём некоторые, наиболее часто используемые из них:
LogLevel — уровень подробности протоколирования. По умолчанию значение равно info. Если у вас какие-то проблемы с CUPS, а в протоколе нет ничего информативного, можете поднять уровень до максимального — debug2.
Port — TCP-порт, который будут использовать клиенты для соединения с сервером. По умолчанию это значение 631 (зарезервированное для протокола IPP).
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 номер_задания.