CUPS (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
CUPS
. Дата последней синхронизации: 27 марта 2019. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
CUPS/Совместное использование принтеров
CUPS/Принтероспецифичные проблемы
CUPS/Решение проблем
Samba (Русский)
LPRng (Русский)
CUPS
- это стандартная система печати с открытым исходным кодом, разработанная Apple Inc. для MacOS® и других UNIX®-подобных операционных систем.
Установка
Установите
пакет
cups
.
Если вы намерены "распечатать" в документ PDF, тогда вам необходимо установить пакет
cups-pdf
. По умолчанию файлы PDF хранятся в
/var/spool/cups-pdf/
имя_пользователя
. Местоположение можно изменить в
/etc/cups/cups-pdf.conf
.
Включите
и
запустите
службу
cups.service
.
Сокет-активация
cups
предоставляет юнит
cups.socket
. Если сокет
cups.socket
включен
(а служба
cups.service
отключена
), systemd не будет запускать CUPS сразу, а просто будет слушать соответствующие сокеты. Затем всякий раз, когда программа пытается обратиться к одному из этих сокетов, systemd будет запускать службу
cups.service
и прозрачно передавать управление этими портами процессу CUPS.
Таким образом, CUPS запускается только тогда, когда программа хочет его использовать.
Интерфейсы подключения
Дополнительные шаги для обнаружения принтера приведены ниже для различных интерфейсов подключения.
Примечание
Вспомогательные программы CUPS запускаются с использованием пользователя и группы
cups
. Это позволяет им получать доступ к файлам принтера и читать файлы конфигурации в
/etc/cups/
, которые принадлежат группе
cups
.
До
cups
версии 2.2.6-2,
вместо группы
cups
использовалась
группа
lp
. После обновления файлы в
/etc/cups
должны принадлежать группе
cups
, а в файле
/etc/cups/cups-files.conf
должно быть прописано
User 209
и
Group 209
.
USB
Чтобы узнать, обнаружен ли ваш USB-принтер (должен быть установлен пакет
usbutils
), запустите
$ lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse
Параллельный порт
Чтобы использовать принтер с параллельным портом, требуются
модули ядра
lp
,
parport
и
parport_pc
.
# dmesg | grep -i parport
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
 lp0: using parport0 (polling)
Cеть
Чтобы обнаружить или предоставить общий доступ к принтерам с помощью DNS-SD/mDNS, настройте
разрешение имени узла .local
через
Avahi
и
перезапустите
службу
cups.service
.
Примечание
DNS-SD поддерживается только при использовании
Avahi
. CUPS не поддерживает использование
systemd-resolved
для DNS-SD. Для получения дополнительной информации смотрите
CUPS issue 5452
.
Для предоставления общего доступа к принтерам с помощью
Samba
, например, если система должна быть сервером печати для клиентов Windows, необходим пакет
samba
.
Драйверы принтеров
Драйверы для принтеров можно получить из любого из источников, приведенных ниже. Смотрите
CUPS/Принтероспецифичные проблемы
для неполного списка драйверов, которые работают.
Для управления принтером CUPS требуется файл PPD, а для большинства принтеров - некоторые
фильтры
.
Подробнее о том, как CUPS использует PPD и фильтры, смотрите на
[1]
.
Список принтеров OpenPrinting
содержит рекомендации для драйверов для многих принтеров. Он также поставляет файлы PPD для каждого принтера, но большинство из них доступны через
foomatic
или рекомендованный пакет драйверов.
Когда файлы PPD предоставляются CUPS, тогда сервер CUPS будет регенерировать файлы PPD и сохранять их в
/etc/cups/ppd/
.
CUPS
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
.
Установите
gutenprint
и
foomatic-db-gutenprint-ppds
.
Примечание
Когда пакет Gutenprint обновился, принтеры, использующие драйвера Gutenprint, будут остановлены, пока вы не выполните от суперпользователя команду
cups-genppdupdate
и не перезапустите CUPS. Команда
cups-genppdupdate
обновит файлы PPD для всех настроенных принтеров. Для получения дополнительной информации смотрите
cups-genppdupdate(8)
.
Специфические для производителя драйвера
Многие производители принтеров поставляют свои собственные драйверы Linux. Они часто доступны в официальных хранилищах Arch или в
AUR
.
Некоторые из этих драйверов описаны более подробно в
CUPS/Принтероспецифичные проблемы
.
URI принтера
Ниже перечислены дополнительные шаги для ручного создания URI, если это необходимо. Для некоторых принтеров или драйверов нужны особые URI, описанные в
CUPS/Принтероспецифичные проблемы
.
USB
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#Sharing via Internet Printing Protocol
.
Смотрите
CUPS/Решение проблем#Проблемы с сетью
для получения дополнительной информации о проблемах и их решений.
Важно
Не следует настраивать как сервер, так и клиент с помощью фильтра принтера - либо очереди печати на клиенте, либо сервер должен быть 'raw'. Это позволяет избежать отправки заданий печати через фильтры для принтера дважды, что может вызвать проблемы (например,
[2]
). Смотрите
#Использование
для примера установки очереди печати на 'raw'.
Использование
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.
Reason:
Нестандартное использование списков определений, комментариев в командной строке. (Discuss in
Talk:CUPS (Русский)
)
Список устройств
# lpinfo -v
$ /usr/lib/cups/backend/snmp
ip_address
# Используйте SNMP для поиска URI
Список моделей
$ lpinfo -m
Добавление нового принтера
# lpadmin -p
имя принтера
-E -v
uri
-m
model
Имя принтера
зависит от тебя.
Например:
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz
# lpadmin -p AirPrint -E -v "ipp://10.0.1.25/ipp/print" -m everywhere    # Принтеры без драйверов (Apple AirPrint или IPP Everywhere)
# lpadmin -p SHARED_PRINTER -m raw    # Необработанный принтер; нет PPD или фильтра	
# lpadmin -p Test_Printer -E -v "ipp://10.0.1.3/ipp/print" -m pxlmono.ppd    # Указание PPD вместо модели
Примечание
При указании PPD используйте только имя файла, а не полный путь (например,
pxlmono.ppd
вместо
/usr/share/ppd/cupsfilters/pxlmono.ppd
)
Установите принтер по умолчанию
$ lpoptions -d
имя принтера
Изменение параметров
$ lpoptions -p
имя принтера
-l # Список параметров
$ lpoptions -p
имя принтера
-o
option
=
value
# Установка параметра
Например:
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4
Проверка cостояния принтера
$ lpstat -s
$ lpstat -p
имя принтера
Отключение принтера
# cupsdisable
имя принтера
Включение принтера
# cupsenable
имя принтера
Настройка принтера для приема заданий
# cupsaccept
имя принтера
Удаление принтера
Сначала настройте принтер для отклонения всех входящих записей:
# cupsreject
имя принтера
Затем отключите его.
# cupsdisable
имя принтера
Наконец, удалите его.
# lpadmin -x
имя принтера
Печать файла
$ lpr
файл
$ lpr -# 17
файл
# распечатать файл 17 раз
$ echo 'Привет, мир!' | lpr -p # распечатать результат команды. Переключатель -p добавляет заголовок.
Проверка очереди
$ lpq
$ lpq -a # во всех очередях
Очистка очереди
# lprm   # удаляет только последнюю запись
# lprm - # удаляет все записи
Веб интерфейс
Сервером CUPS можно полностью управлять через веб-интерфейс, доступный по адресу
http://localhost:631/
.
Примечание
Если используется HTTPS-соединение с CUPS, оно может длиться очень долго, прежде чем интерфейс появится при первом доступе. Это связано с тем, что первый запрос инициирует создание SSL-сертификатов, которое может занимать много времени.
Для выполнения административных задач требуется аутентификация веб-интерфейса. Аутентифицируйте себя либо как
root
, либо убедитесь, что ваш пользователь входит в группу с полномочиями управления принтерами, для получения дополнительной информации смотрите
#Настройка
.
Добавление принтера
Перейдите на вкладку
Администрирование
.
Изменение существующих принтеров
Перейдите на вкладку
Принтеры
и выберите принтер для изменения.
Проверка принтера
Перейдите на вкладку
Принтеры
и выберите принтер.
Приложения с GUI
Если у вашего пользователя нет достаточных привилегий для администрирования CUPS, приложения будут запрашивать пароль root при  запуске. Чтобы предоставить пользователям права администратора без необходимости доступа root, смотрите
#Настройка
.
GtkLP
— Интерфейс GTK+ для CUPS.
https://gtklp.sirtobi.com
||
gtklp
AUR
print-manager
— Инструмент для управления заданиями печати и принтерами (
KDE
).
https://invent.kde.org/plasma/print-manager
||
print-manager
system-config-printer
— Инструмент настройки принтера GTK+ и апплет состояния (
GNOME
и другие).
https://github.com/OpenPrinting/system-config-printer
||
system-config-printer
Настройка
Настройки сервера 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
и задайте размер бумаги по умолчанию для вашей системы. Для получения дополнительной информации смотрите
paper(1)
.
По умолчанию все журналы отправляются в файлы в
/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.
Reason:
cups-browsed.service
не требуется для обнаружения принтеров, объявленных через DNS-SD, что делается сейчас через
cups.service
. Служба требуется только для обнаружения принтеров на сервере LDAP и тех, которые используют устаревший протокол CUPS (серверы CUPS ≤ 1.5). (Discuss in
Talk:CUPS (Русский)
)
CUPS может использовать
Avahi
для обнаружения неизвестных общих принтеров в вашей сети. Это может быть полезно в крупных сетях, где сервер неизвестен. Чтобы использовать эту функцию, настройте
разрешение .local hostname
и запустите службы
avahi-daemon.service
и
cups-browsed.service
. Задания отправляются непосредственно на принтер без какой-либо обработки, поэтому созданные очереди могут не работать, однако для принтеров, не требущих драйверов, такие как те, которые поддерживают
IPP Everywhere
или
AirPrint
все должно работать из коробки.
Примечание
Поиск сетевых принтеров
может значительно увеличить время, необходимое для загрузки вашего компьютера
.
Служба
cups-browsed.service
необходима только для динамического добавления и удаления принтеров, когда они появляются и исчезают из сети. Она не требуется, если вы просто хотите добавить сетевой принтер с поддержкой DNS-SD/mDNS в CUPS.
Серверы печати и удаленное администрирование
Для получения дополнительной информации смотрите
CUPS/Совместное использование принтеров
и
CUPS/Printer sharing#Remote administration
.
Разрешение аутентификации администратора через PolicyKit
PolicyKit
можно настроить так, чтобы пользователи могли настраивать принтеры с помощью графического интерфейса без пароля администратора.
Примечание
Возможно, вам понадобится установить
cups-pk-helper
для работы с этими правилами.
Вот пример, который позволяет членам
группы
wheel управлять принтерами без пароля:
/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { 
    if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && 
        subject.isInGroup("wheel")){ 
        return polkit.Result.YES; 
    } 
});
Без локального сервера CUPS
CUPS можно настроить для прямого подключения к удаленным серверам принтеров вместо запуска локального сервера печати. Для этого потребуется
установить
пакет
libcups
. Некоторым приложениям по-прежнему потребуется пакет
cups
для печати.
Важно
Доступ к удаленным принтерам без локального сервера CUPS не рекомендуется разработчиками.
[3]
[
устаревшая ссылка
2025-08-15 ⓘ]
Чтобы использовать удаленный сервер CUPS, установите
переменную окружения
CUPS_SERVER
в
printerserver.mydomain:port
. Например, если вы хотите использовать другой сервер печати для одного экземпляра
Firefox
(замените
printserver.mydomain:port
на имя/порт своего сервера печати):
$ CUPS_SERVER=printserver.mydomain:port firefox
Решение проблем
Для получения дополнительной информации смотрите
CUPS/Решение проблем
.
Смотрите также
Официальная документация CUPS documentation
,
локальная установка
Википедия:Common UNIX Printing System
Домашняя страница OpenPrinting
[
устаревшая ссылка
2022-09-17 ⓘ]
Руководство по печати OpenSuSE Concepts - объясняет полный рабочий процесс печати
OpenSuSE CUPS в двух словах - быстрый обзор CUPS
Руководство по печати Gentoo
Портал печати Debian - подробные технические руководства
Обзор печати Debian - основной вид системы печати CUPS