Обновить cups alt linux
Инженерная мысль не останавливалась ни на секунду; с момента появления первого печатающего устройства опробована и введена в эксплуатацию масса новых технологий. На данный момент наиболее распространены следующие технологии печати:
Матричные принтеры постепенно доживают свой век, но, обладая удивительной простотой и надёжностью, продолжают ещё использоваться. С настройкой этого типа принтеров, за редкими исключениями, проблем не должно возникать.
Лазерные принтеры обладают высокой скоростью печати, незаменимы в офисах организаций всех типов. Моделей существует множество, но, к счастью, для большинства можно найти « родной » драйвер или подобрать совместимый.
Главный лозунг струйных принтеров « дёшево и в цвете ». Так как в этой индустрии не появилось явного лидера, то процветает множество стандартов и существует вероятность иметь очень экзотический с точки зрения Linux принтер.
« Дёшево любой ценой ». Используют компьютер вместо того, чтобы всё делать самим. Проблемы очень вероятны, так как протокол работы зачастую закрыт. К счастью, существует несколько моделей, напоминающих по интерфейсу полноценные принтеры, что позволяет всё-таки производить печать с низким разрешением.
Где находится драйвер принтера?
Если вам доводилось работать в Microsoft Windows , то вы прекрасно знаете, что в комплекте с каждым принтером поставляется дискета или компакт-диск с драйвером для настройки печати. К великому сожалению, в мире UNIX / Linux пока так и не договорились о едином стандарте драйверов. В настоящее время стандартом де-факто является пакет ghostscript фирмы Aladdin Software .
Что такое ghostscript ?
Ghostscript (далее GS ) — это программа перевода из векторного формата в растровый ( RIP ). На вход программы подаётся документ в формате PostScript или PDF , а на выходе получается документ на языке, понятном конкретной модели принтера или графическое изображение страницы. Большинство программ Linux формируют документ в формате PostScript, поэтому оказывается, что применения GS вполне достаточно для обеспечения печати из приложений.
Что такое PostScript?
PostScript — это самый настоящий язык программирования, который используется для того, чтобы описать содержимое страницы. Например, пишутся такие серии команд: переместиться туда-то, напечатать слово такое-то, сменить шрифт на такой-то. Существуют модели принтеров, непосредственно понимающие PostScript, для всех остальных требуется посредник, и GS успешно с этим справляется. Вы спросите, как он поддерживает столько принтеров? Дело в том, что количество языков принтеров намного меньше количества существующих моделей. Например, известные всем HP LaserJet 4 , 4L , 5 , 5L , 6 , 6L , 1100 , 2100 « понимают » один и тот же язык PCL5 . Если вы не страшитесь этих слов и вам любопытно посмотреть, какие драйверы языков поддерживает ваш GS — дайте команду gs —help . Так, например, ljet4 как раз и обслуживает вышеупомянутую линейку моделей принтеров.
Итак, теперь понятно, как устроена печать в любом дистрибутиве Linux : программа формирует документ на языке PostScript, GS переводит его на язык принтера, установленного в вашей системе, и передаёт эстафету принтеру.
Что такое спулер?
Но это ещё далеко не всё. А что если вам надо послать документ на принтер, установленный на другой машине, или напечатать сразу несколько документов и нет времени ждать, пока каждый из них будет обслужен ghostscript и уступит место следующему? Для этого существует так называемый сервер печати или спулер (от англ. spooler), обслуживающий очереди печати. Последний термин более точно отражает суть, поэтому им мы и будем пользоваться и писать дальше просто « спулер ». В ALT Linux в качестве спулера работает современная система печати CUPS (Common UNIX Printing System), которая является фактическим стандартом среди спулеров.
Как настроить принтер?
В ALT Linux 3.0 у пользователя есть несколько способов настроить систему печати. Модуль настройки принтеров из ALT Linux Control Center предназначен для добавления/удаления принтеров (в том числе сетевых). Во многих случаях он позволяет определить тип принтера автоматически, а если это не удаётся, предлагает большой список поддерживаемых моделей. Чтобы произвести более тонкую настройку параметров печати, можно воспользоваться стандартными средствами CUPS . Есть также альтернативные способы добавления и удаления принтеров, например, средствами того же CUPS или foomatic. Дальше будет рассказано обо всём этом подробнее.
Настройка системы CUPS
Настройка CUPS через web-интерфейс
Запустите свой любимый броузер и откройте страницу http://localhost:631 — вы увидите интерфейс настройки CUPS . Выберите раздел « Manage Printers », далее раздел « Add Printer ». Затем у вас спросят имя и пароль администратора CUPS ; по умолчанию это администратор системы ( root ).
Появится первый диалог — достаточно указать имя (Name) принтера, описание (Description) носит вспомогательный характер, а местоположение (Location) нужно только в том случае, если у вас настроена сложная система разграничения доступа в CUPS . В следующем диалоге производится выбор устройства, к которому подключён принтер. Два последующих — выбор модели и производителя принтера. Напоследок можно заказать печать пробной страницы.
Может возникнуть ситуация, что сочетания производитель/модель вашего принтера не окажется в списке, предложенном CUPS — это означает, что в базе данных CUPS не нашлось описания для вашей модели принтера. В этот момент отчаиваться не следует.
Описание принтера в CUPS — это файл модель_принтера .ppd , PPD-файлы для известных моделей CUPS держит в каталоге /usr/share/cups/model , имеющийся там список принтеров далеко не исчерпывающий. Однако познакомить CUPS с новым принтером очень легко, если принтер поддерживает один из стандартных языков управления и будет работать с одним из уже существующих драйверов (что почти всегда так). Для этого достаточно найти PPD-файл для нужной модели принтера и поместить его в зону видимости CUPS . Большую базу описаний принтеров предоставляет foomatic (ниже написано о том, как им воспользоваться), если нужной модели не нашлось и там, стоит поискать PPD-файл на сайте производителя принтера.
Настройка CUPS через foomatic
Сложно дать краткое описание того, что же такое foomatiс . Это и база описаний моделей принтеров, и интерфейс настройки одновременно. Более того, foomatic умеет настраивать практически все известные на сегодняшний день спулеры, в частности CUPS .
Процедуру настройки лучше всего рассмотреть на конкретном примере [1] . Пусть мы хотим настроить printer HP LaserJet 1022 (которого не нашлось в базе известных принтеров CUPS , расположенный на Windows -машине somehost в рабочей группе somegroup под именем someprinter .
Прежде всего, нужно найти описание для данной модели принтера в базе данных foomatic:
$ foomatic-ppdfile -A|grep 1022 HP LaserJet 1022 Driver='hpijs' Ricoh Aficio 1022 PS Driver='Postscript'
Чтобы не просматривать огромный список принтеров, лучше всего профильтровать вывод foomatic-ppdfile -A утилитой grep , задав в качестве поискового выражения название/номер модели принтера.
Нас прежде всего интересует идентификатор-описание в поле Id . Кроме того, мы получили имя ghostscript-драйвера, с которым будет работать данный принтер.
Теперь нужно сгенерировать ppd-файл:
$ foomatic-ppdfile -p 'HP-LaserJet_1022' > HP-LaserJet_1022.ppd
Дальше можно пойти двумя путями. Первый способ — поместить этот файл в каталог /usr/share/cups/model и перезапустить службу CUPS . С этого момента принтер попал в список известных CUPS — можно возвращаться к web-интерфеёсу CUPS , где появится нужная модель, и настраивать принтер привычным способом. Второй способ — использовать возможности foomatic для настройки спулера описан ниже. Копировать ppd-файл вручную при этом не потребуется.
- Сформируем URI , описывающее расположение принтера. Общий формат: протокол :// местоположение . Местоположение зависит от протокола. Если принтер подключён локально, то URI — file:// путь_к_файлу , в частности может быть указан файл-устройство (например, /dev/lp0 . Если удалённый сервер работает под управлением Microsoft Windows (наш случай), то URI — smb://user:password@somegroup/somehost/someprinter . Некоторые поля в описании могут отсутствовать. Наконец, в случае Netware-сервера URI — ncp://user:password@server/printer .
- Идентификатор принтера и имя подходящего драйвера мы уже выяснили ранее.
- Мы собрали теперь достаточно информации для того чтобы произвести конфигурацию принтера. Это делается одной командой foomatic-configure . Мы укажем желаемый спулер (параметр -s ), имя принтера (параметр -n ) идентификатор описания, драйвер и URI .
# foomatic-configure -s cups -n Laser_Jet -p HP-LaserJet_1022 \ -d hpijs -c smb://user:password@somegroup/somehost/someprinter
Вот и готово. Настройки можете посмотреть непосредственно в конфигурационных файлах спулера или при помощи команды foomatic-configure -Q .
Laser_Jet Laser_Jet HP-LaserJet_1022 hpijs smb:// user
:password
@somegroup
/somehost
/someprinter
HP LaserJet 1022
Как удалить лишние принтеры?
Если вы слишком увлеклись настройками и теперь путаетесь между десятком заведённых принтеров, то самое время удалить лишние.
Удаление можно производить вручную, удалив описания из конфигурационных файлов спулера ( /etc/cups/printers.conf ). Для CUPS можно вновь воспользоваться web-интерфейсом. Если вы использовали foomatic , то полезно знать команду
# foomatic-configure -sтип_спулера
-nимя_принтера
-R
Конфигурационные файлы CUPS
Конфигурационные файлы CUPS находятся в каталоге /etc/cups . Файл /etc/cups/cupsd.conf содержит описание главных параметров сервера, каждый из которых сопровождается подробным описанием. Приведём некоторые наиболее часто используемые параметры:
Уровень подробности протоколирования. По умолчанию значение равно info . Если у вас какие-то проблемы с CUPS , а в протоколе нет ничего информативного, можете поднять уровень до максимального — debug2 .
TCP -порт, по которому сервер будет ожидать обращений клиентов. По умолчанию это 631 (зарезервированное для протокола IPP ).
Location, Order, Allow, Deny
Серия директив, аналогичных имеющимся в web-сервере Apache . Order — порядок просмотра значений Allow и Deny , Allow — адреса, с которых разрешён доступ, Deny — адреса, с которых доступ запрещён. Пример:
Order Deny,Allow Deny From All Allow From 127.0.0.1
Это означает, что сначала сервер будет смотреть, запрещён ли доступ с машины (здесь запрещено для всех), а потом — разрешён ли (здесь разрешён доступ только с самого сервера). Последний параметр понадобится для организации одного CUPS -сервера на всю локальную сеть. Организация доступа может быть устроена сколь угодно сложно благодаря поддержке концепции классов.
Файл /etc/cups/client.conf содержит настройки для клиентской части. В нём указываются всего два параметра — местоположение сервера и защищённость соединения. Скорее всего, вам не придётся там что-либо менять.
Файл /etc/cups/printers.conf содержит описание принтеров. Формат записи интуитивно понятен и похож на XML . Ниже приведён пример настройки для локального принтера.
DeviceURI parallel:/dev/lp0 State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0
Существенными параметрами являются Accepting (принимает ли принтер задания) и DeviceURI (специальное описание местоположения принтера). О том как правильно составлять URI , будет рассказано ниже, когда речь пойдёт о foomatic .
Описание каждого установленного принтера (соответствующий PPD -файл) находится в /etc/cups/ppd/ имя_принтера .ppd . Обратите внимание, что имя_принтера — это не название модели, а то имя, под которым установлен принтер (которое дал пользователь). PPD-файл представляет собой текстовый конфигурационный файл, в котором описаны свойства принтера. Названия некоторых параметров говорят сами за себя и/или снабжены комментариями, так что настройку параметров печати можно производить и непосредственно редактируя ppd-файл.
При каждом изменении в конфигурационных файлах CUPS следует перезапускать системную службу cups командой service cups restart .
[1] Скорее всего, в вашей системе уже установлены компоненты foomatic; если нет, то потребуются пакеты foomatic, foomatic-db, foomatic-db-engine, foomatic-filters, hplip-foomatic.