- Управление сервером CUPS и его конфигурирование
- Управление сервером CUPS
- Настройка сервера печати для сети
- Конфигурирование в автоматическом режиме
- Конфигурирование сетевых принтеров
- Классы принтеров
- Отключение принтеров
- Заключение
- CUPS (Русский)
- Contents
- Установка
- Сокет-активация
- Интерфейсы подключения
- Параллельный порт
- Драйверы принтеров
- Фильтры OpenPrinting CUPS
- Foomatic
- Gutenprint
- Специфические для производителя драйвера
- URI принтера
- Параллельный порт
- Использование
- Инструменты CLI
- Веб интерфейс
- Приложения с GUI
- Настройка
- cups-browsed
- Серверы печати и удаленное администрирование
- Разрешение аутентификации администратора через PolicyKit
- Без локального сервера CUPS
- Решение проблем
Управление сервером CUPS и его конфигурирование
Система печати CUPS – универсальный и очень гибкий инструмент для организации печати и управления принтерами в сети. При этом CUPS довольно просто администрируется, из-за чего эта система очень популярна среди системных администраторов. Также эта система обладает некоторыми особенностями и возможностями. Которые, если ими грамотно и умело распоряжаться, делают CUPS незаменимой для построения системы печати в обслуживаемой сети.
Управление сервером CUPS
Работа системы печати CUPS завязана на взаимодействии клиентов печати с самим сервером cupsd. Вообще, то как работает cupsd, очень похоже на то как работает веб-сервер Apache. Даже формат конфигурационного файла /etc/cups/cupsd.conf очень похож на соответствующий файл Apache. Как можно видеть работа сервера cupsd определяется настройками, заданными в файле cupsd.conf, а настройка его работы и управление им аналогична настройке и управлению Apache.
По-умолчанию, так сказать «из коробки» файл cupsd.conf очень детально комментирован и разобраться с теми или иными опциями особого труда не составляет. Чтение конфигурации производится сервером cupsd только в момент запуска. Поэтому после внесения и сохранения сделанных настроек необходимо перезапустить cupsd. Это можно сделать стандартным для Linux образом, выполнив команду:
Для редактирования конфигурационного файла системы CUPS можно использовать не только текстовые редакторы, но также и графический веб-интерфейс, доступный по адресу http://localhost:631/admin в веб-браузере.
Если используется графическая среда, то в современных дистрибутивах в настройках системы всегда имеется отдельный раздел для управления печатью и принтерами, который предоставляет, пусть и самые базовые, но достаточные возможности для управления и настройки системы печати.
Настройка сервера печати для сети
Когда в сети имеются несколько принтеров, которые по объективным причинам не могут быть подключены к одному компьютеру или когда принтеры не подключены непосредственно к тому компьютеру, на котором работает главный сервер CUPS, то целесообразно настроить сервер cupsd, так, чтобы он мог принимать задания на печать из сети. По-умолчанию CUPS работает с локально установленными принтерами, а для того, чтобы она могла обрабатывать задания из сети, в конфигурационном файле cupsd.conf нужно внести некоторые изменения. Для начала, в секции Location:
нужно добавить ещё одну директиву «Allow From». В итоге должно получиться:
Таким образом, в качестве адреса сети может выступать IP-адрес (например 192.168.0.0), для которой следует обслуживать задания. После этого следует указать директиву BrowseAddress:
Она задаёт адрес и порт для рассылки информации об обслуживаемых сервером cupsd принтерах всем компьютерам из указанной с помощью директивы «Allow From» сети.
Конфигурирование в автоматическом режиме
В большинстве случаев при добавлении новых принтеров система CUPS способна самостоятельно определить, что в систему устанавливается новый принтер. В самом сложном случае придётся выполнить эту процедуру вручную через веб-интерфейс системы CUPS и пройти через несколько несложных этапов установки и настройки принтера. Это всецело заменяет работу того самого «удобного» установочного ПО (программного обеспечения). Которое поставляется производителями принтеров для систем Windows и Mac OS, но обходит стороной (довольно часто) системы Linux.
Если CUPS сконфигурирована так, что автоматически могут распознаваться принтеры, подключаемые к другим компьютерам в сети (и даже из других подсетей). То центральный сервер cupsd просто получит уведомление об этом и сможет обслуживать новые принтеры. Причём об этом будут «знать» все сконфигурированные клиенты данной сети и даже подсетей. Это возможно благодаря тому, что на каждом компьютере, на котором установлена и запущена система CUPS работает свой сервер cupsd, который обменивается (если задана соответствующая конфигурация) информацией о «своих» принтерах с серверами на других машинах, предоставляя общий пул принтеров в сети.
Это очень удобно, ведь в большинстве случаев нет необходимости добавлять новый локальный или даже удалённый принтер в перечень доступных устройств печати для локальной машины или копировать его PDD-файл.
Конфигурирование сетевых принтеров
Для этой задачи в системах Linux нет ничего необычного. В данном случае даже используемая система печати особой роли не играет, поскольку сетевая конфигурация сводится к заданию IP-адреса собственно, принтеру. Сделать это можно двумя способами:
- использовать DHCP-сервер, который автоматически будет «выдавать» сетевым устройствам, в том числе и подключенным к сети принтерам их IP-адреса;
- использовать статический IP-адрес для принтера, заданный вручную.
Для второго случая используется консоль принтера (с кнопками, табло и т. д.), в меню которого можно отыскать раздел для задания IP-адреса. Также некоторые принтеры предоставляют виртуальную консоль, доступную через подключение (к принтеру) по последовательному порту.
Некоторые модели принтеров даже предоставляют красивый и удобный веб-интерфейс для конфигурации. Однако задействовать его можно только после того как IP-адрес для принтера задан и он доступен в сети.
Добавление принтеров в систему CUPS может быть произведено с помощью команды lpadmin, например так:
Первая команда добавляет локально подключенный принтер (через параллельный интерфейс) под именем localprinter. Подключая его через порт /dev/lp0. А вторая команда добавляет сетевой принтер netprinter. Подключая его через IP-адрес 192.168.0.5. При этом в обоих случаях для каждого устройства указываются универсальные URI-идентификаторы (составляющие адрес подключения) и PPD-файл (PostScript Printer Description). Доступный из набора таких файлов в каталоге /usr/share/cups/model.
Теперь, если сервер cups настроен как сетевой сервер печати. То добавленные принтеры станут доступными для всей сети. При этом перезапуск cupsd не требуется.
Для разных конфигураций подключения существуют различные варианты URI-идентификаторов, например:
Как можно видеть, в URI-идентификаторах могут использоваться передаваемые параметры. Чтобы узнать, какие устройства печати доступны системе CUPS, а также понятный ей список типов URI-идентификаторов. Можно воспользоваться командой lpinfo -v:
Классы принтеров
Классы принтеров предназначены для группирования принтеров, которые должны обслуживаться одной очередью заданий. Для любого из принтеров одного класса может быть доступно для выполнения текущее задание. Однако передано задание будет тому, кто первый освободился в очереди.
Чтобы создать класс принтеров classprint, и добавить в него принтеры printerone и printertwo, следует выполнить следующие команды:
Как видно, специальной команды для задания класса нет — он существует когда в него добавлен принтер. В системе CUPS также можно задавать нескольким принтерам одинаковые имена и при этом они будут считаться объединёнными в один класс. Такие вот интеллектуальные способности у CUPS.
Отключение принтеров
Иногда необходимо временно сделать принтер недоступным для печати. Т. е. чтобы сервер cupsd не удалял его из своего пула обслуживания, а просто не отправлял на него задания от клиентов. Такие ситуации возникают, когда принтер нужно временно отсоединить для обслуживания. Чтобы полностью удалить принтер (или класс) следует использовать команду:
Для временного отключения принтера используется блокировка очереди печати для него. Причём блокироваться может как «выходная» часть очереди (на стороне принтера), так и «входная» — на этапе формирования самой очереди сервером. В первом случае задания всё равно будут отправляться на принтер, но никогда не будут выполнены. Во втором случае выполнены будут только те задания, которые уже находились в очереди. А все последующие после блокировки «входа» будут отклоняться.
Для контроля над выходной частью очереди печати (на стороне принтера) предназначены команды cupsdisable и cupsenable – которые выключают и включают выход соответственно. Для управления состоянием входа очереди предназначены команды reject и accept.
Если принтер становится «недоступным » на длительное время (например унесли на ремонт или обслуживание). То целесообразнее использовать отключение его от его очереди, т. е.:
Если же точно известно, что принтер будет недоступен около двадцати минут (пока будет производится замена картриджа). То можно использовать команду:
Чтобы легче запомнить и надёжнее применять эти команды в зависимости от ситуации. Нужно понимать, что отклоняются (reject) и принимаются (accept) задания очереди. А отключаются (cupsdisable) и включаются (cupsenable) только устройства — т. е. принтеры. Совсем неразумно использовать команду cupsdisable, если принтер недоступен длительное время. При этом на него поступают (через вход очереди) задания, которые скорее всего не выполнятся. Команда reject в данном случае предпочтительнее.
В следующей таблице приведены все команды, используемые системой CUPS:
Команда | Назначение |
cups-config | Выводит информацию об API-интерфейсе, компиляторе, каталоге и канале связи системы CUPS. |
cupsdconf | Утилита для конфигурирования. |
cupsdisable | Отключает печать принтера или класса. |
cupsenable | Включает печать принтера или класса. |
lpinfo | Показывает доступные устройства или драйверы. |
lpoptions | Отображает или устанавливает опции и параметры по умолчанию принтера. |
Ippasswd | Добавляет, изменяет или удаляет пароли дайджеста. |
По каждой из этих команд можно получить подробную справку из интерактивного справочного руководства. Используя команду man команда.
Заключение
Система печати CUPS пожалуй самая удачная среди открытых и свободных систем подобного рода. Не обременяющая администраторов излишней сложностью или неповоротливостью. Но при этом предоставляет практически неограниченные возможности для масштабирования и интеграции в целевых системах и сетях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
CUPS (Русский)
CUPS — это стандартная система печати с открытым исходным кодом, разработанная Apple Inc. для MacOS® и других UNIX®-подобных операционных систем.
Contents
Установка
Если вы намерены «распечатать» в документ PDF, тогда вам необходимо установить пакет cups-pdf . По умолчанию файлы PDF хранятся в /var/spool/cups-pdf/имя_пользователя . Местоположение можно изменить в /etc/cups/cups-pdf.conf .
Сокет-активация
cups предоставляет юнит cups.socket . Если сокет cups.socket включен (а служба cups.service отключена), systemd не будет запускать CUPS сразу, а просто будет слушать соответствующие сокеты. Затем всякий раз, когда программа пытается обратиться к одному из этих сокетов, systemd будет запускать службу cups.service и прозрачно передавать управление этими портами процессу CUPS.
Таким образом, CUPS запускается только тогда, когда программа хочет его использовать.
Интерфейсы подключения
Дополнительные шаги для обнаружения принтера приведены ниже для различных интерфейсов подключения.
Чтобы узнать, обнаружен ли ваш USB-принтер:
Параллельный порт
Чтобы использовать принтер с параллельным портом, требуются модули ядра lp , parport и parport_pc .
Чтобы обнаружить или предоставить общий доступ к принтерам с помощью DNS-SD/mDNS, настройте разрешение имени узла .local через Avahi и перезапустите службу cups.service .
Для предоставления общего доступа к принтерам с помощью Samba, например, если система должна быть сервером печати для клиентов Windows, необходим пакет samba .
Драйверы принтеров
Драйверы для принтеров можно получить из любого из источников, приведенных ниже. Смотрите CUPS/Принтероспецифичные проблемы для неполного списка драйверов, которые работают.
Для управления принтером CUPS требуется файл PPD, а для большинства принтеров — некоторые фильтры. Подробнее о том, как CUPS использует PPD и фильтры, смотрите на [1].
Список принтеров OpenPrinting содержит рекомендации для драйверов для многих принтеров. Он также поставляет файлы PPD для каждого принтера, но большинство из них доступны через foomatic или рекомендованный пакет драйверов.
Когда файлы PPD предоставляются CUPS, тогда сервер CUPS будет регенерировать файлы PPD и сохранять их в /etc/cups/ppd/ .
CUPS обеспечивает поддержку принтеров AirPrint и IPP Everywhere.
Фильтры OpenPrinting CUPS
Рабочая группа OpenPrinting в Linux Foundation предоставляет cups-filters. Это бэкэнды, фильтры и другие двоичные файлы, которые когда-то были частью CUPS, но больше не поддерживаются Apple. Они доступны в пакете cups-filters , который является зависимостью для cups .
Для принтеров Non-PostScript требуется установить ghostscript . Для ghostscript также может потребоваться gsfonts .
Foomatic
Рабочая группа foomatic в OpenPrinting в Linux Foundation предоставляет PPD для многих драйверов принтеров, как свободных, так и проприетарных. Для получения дополнительной информации о том, что делает foomatic, смотрите Обзор foomatic от разработчиков.
Чтобы использовать foomatic, установите foomatic-db-engine и по крайней мере один из пакетов:
- foomatic-db — коллекция файлов XML, используемая foomatic-db-engine для генерации файлов PPD.
- foomatic-db-ppds — прекомпилированные файлы PPD.
- foomatic-db-nonfree — коллекция файлов XML под несвободными лицензиями от производителей принтеров, используемая foomatic-db-engine для генерации файлов PPD.
- foomatic-db-nonfree-ppds — прекомпилированные файлы PPD под несвободными лицензиями.
Для PPD foomatic могут потребоваться дополнительные фильтры, такие как min12xxw AUR .
Gutenprint
Проект Gutenprint предоставляет драйвера для Canon, Epson, Lexmark, Sony, Olympus, и принтеров PCL для использования с CUPS и GIMP.
Специфические для производителя драйвера
Многие производители принтеров поставляют свои собственные драйверы Linux. Они часто доступны в официальных хранилищах Arch или в AUR.
Некоторые из этих драйверов описаны более подробно в CUPS/Принтероспецифичные проблемы.
URI принтера
Ниже перечислены дополнительные шаги для ручного создания URI, если это необходимо. Для некоторых принтеров или драйверов нужны особые URI, описанные в CUPS/Принтероспецифичные проблемы.
CUPS должен иметь возможность автоматически генерировать URI для USB-принтеров, например usb://HP/DESKJET%20940C?serial=CN16E6C364BH .
Если этого не происходит, смотрите CUPS/Решение проблем#USB-принтеры для получения информации об устранении неполадок.
Параллельный порт
URI должен иметь вид parallel:device . Например, если принтер подключен к /dev/lp0 , используйте parallel:/dev/lp0 . Если вы используете адаптер USB для параллельного порта, используйте parallel:/dev/usb/lp0 в качестве URI принтера.
Если вы настроили Avahi, как в #Сеть, CUPS должен определить URI принтера. Вы также можете использовать avahi-discover , чтобы найти имя вашего принтера и его адрес (например, BRN30055C6B4C7A.local/10.10.0.155:631 ).
URI также можно создать вручную, не используя Avahi. Список доступных схем URI для сетевых принтеров доступен в документации CUPS. Поскольку точные данные URI отличаются между принтерами, проверьте руководство принтера или CUPS/Принтероспецифичные проблемы.
URI для сетевых принтеров SMB описаны на справочной странице smbspool(8) .
К удаленным серверам печати CUPS можно получить доступ через URI формы ipp://hostname:631/printers/queue_name . Подробнее о настройке удаленного сервера печати смотрите CUPS/Printer sharing#Between GNU/Linux systems [ссылка недействительна: раздел не найден] .
Смотрите CUPS/Решение проблем#Проблемы с сетью для получения дополнительной информации о проблемах и их решений.
Использование
CUPS можно полностью контролировать с помощью инструментов командной строки (CLI) из пакетов lp* и cups*. В качестве альтернативы можно использовать #Веб интерфейс или одно из нескольких #Приложения с GUI.
- Имя принтера — короткое, но описательное имя, используемое в системе для идентификации принтера. Это имя не должно содержать пробелов или специальных символов. Например, принтер, соответствующий HP LaserJet 5P, может быть назван «hpljet5p». С каждым физическим принтером можно связать более одной очереди.
- Расположение — это описание физического расположения принтера (например, «спальня», или «кухня»). Это помогает поддерживать несколько принтеров.
- Описание — полное описание принтера. Обычно используется полное имя принтера (например, «HP LaserJet 5P»).
Инструменты CLI
Смотрите локальную документацию CUPS для получения дополнительных сведений об инструментах командной строки.
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
Имя принтера зависит от тебя. Например:
Проверка cостояния принтера Отключение принтера Включение принтера Настройка принтера для приема заданий Удаление принтера
Сначала настройте принтер для отклонения всех входящих записей:
Затем отключите его.
Наконец, удалите его.
Печать файла Проверка очереди Очистка очереди
Веб интерфейс
Сервером CUPS можно полностью управлять через веб-интерфейс, доступный по адресу http://localhost:631/.
Для выполнения административных задач требуется аутентификация веб-интерфейса. Аутентифицируйте себя либо как root , либо убедитесь, что ваш пользователь входит в группу с полномочиями управления принтерами, для получения дополнительной информации смотрите #Настройка.
Перейдите на вкладку Администрирование.
Изменение существующих принтеров
Перейдите на вкладку Принтеры и выберите принтер для изменения.
Перейдите на вкладку Принтеры и выберите принтер.
Приложения с GUI
Если у вашего пользователя нет достаточных привилегий для администрирования CUPS, приложения будут запрашивать пароль root при запуске. Чтобы предоставить пользователям права администратора без необходимости доступа root, смотрите #Настройка.
Настройка
Настройки сервера CUPS находятся в /etc/cups/cupsd.conf и /etc/cups/cups-files.conf (смотрите cupsd.conf(5) и cups-files.conf(5) ). После редактирования любого из этих файлов, перезапустите cups.service , чтобы применить произведенные изменения. Настройки по умолчанию подходят для большинства пользователей.
Группы с правами администрирования принтера определены в SystemGroup в /etc/cups/cups-files.conf . Группы sys и root используется по умолчанию.
Пакет cups собран с поддержкой libpaper и значением по умолчанию для формата бумаги Письмо для файла libpaper. Чтобы избежать необходимости изменять размер бумаги для каждого принтера, отредактируйте /etc/papersize и задайте размер бумаги по умолчанию для вашей системы. Для получения дополнительной информации смотрите papersize(5) .
По умолчанию все журналы отправляются в файлы в /var/log/cups/ . Изменив значения директив AccessLog , ErrorLog и PageLog в /etc/cups/cups-files.conf на syslog , то CUPS сможет отправлять логи в журнал systemd. Смотрите вики-страницу fedora для получения информации об исходном предлагаемом изменении.
cups-browsed
This article or section is out of date.
CUPS может использовать Avahi для обнаружения неизвестных общих принтеров в вашей сети. Это может быть полезно в крупных сетях, где сервер неизвестен. Чтобы использовать эту функцию, настройте разрешение .local hostname и запустите службы avahi-daemon.service и cups-browsed.service . Задания отправляются непосредственно на принтер без какой-либо обработки, поэтому созданные очереди могут не работать, однако для принтеров, не требущих драйверов, такие как те, которые поддерживают IPP Everywhere или AirPrint все должно работать из коробки.
Серверы печати и удаленное администрирование
Разрешение аутентификации администратора через PolicyKit
PolicyKit можно настроить так, чтобы пользователи могли настраивать принтеры с помощью графического интерфейса без пароля администратора.
Вот пример, который позволяет членам группы wheel управлять принтерами без пароля:
Без локального сервера CUPS
CUPS можно настроить для прямого подключения к удаленным серверам принтеров вместо запуска локального сервера печати. Для этого потребуется установить пакет libcups . Некоторым приложениям по-прежнему потребуется пакет cups для печати.
Чтобы использовать удаленный сервер CUPS, установите переменную окружения CUPS_SERVER в printerserver.mydomain:port . Например, если вы хотите использовать другой сервер печати для одного экземпляра Firefox (замените printserver.mydomain:port на имя/порт своего сервера печати):
Решение проблем
Для получения дополнительной информации смотрите CUPS/Решение проблем.
Источник