Указание сервера на клиенте BSD LPD
🕛 23.06.2009, 12:19
В файле /etc/printcap содержатся определения принтеров для системы BSD LPD (printcap сокращенно означает printer capabilities - возможности принтеров). В этом файле содержатся записи для каждой очереди печати в системе, независимо от того, является ли очередь локальной (обслуживающей принтеры, подключенные через параллельный, последовательный или USB-порт) или сетевой (обслуживающей другие LPD-принтеры и даже принтеры, доступ к которым осуществляется посредством SMB/CIFS, AppleTalk или других протоколов). Определение каждого принтера располагается в одной строке, а опции разделяются символом :. На практике определение принтера занимает несколько строк; все строки, кроме последней, заканчиваются символом \, который означает, что следующая строка является продолжением предыдущей. Размещенные таким образом данные более удобны для чтения.Большинство деталей настройки принтеров с помощью файла /etc/printcap не рассматриваются в данной книге. Как было сказано в начале данной главы, необходимую информацию по установке принтеров, включая вопросы использования фильтров печати и Ghostscript, вы можете получить, прочитав документацию на операционную систему, или узнать из книг, представляющих собой введение в систему Linux. Однако некоторые из опций, непосредственно использующиеся при конфигурации сетевого клиента печати, требуют отдельного рассмотрения. Эти опции перечислены ниже.
- 1р. Указывает на файл устройства, к которому подключен принтер. Например, выражение lp=/dev/lpO сообщает системе о том, что для вывода на принтер должно быть использовано устройство /dev/lpO (первый параллельный порт). Если вы настраиваете сетевой принтер, вам следует удалить эту опцию или не указывать после знака равенства никакого значения (например, 1р=).
- rm. Определяет имя сервера печати LPD. Например, если для данной очереди сервером печати является oak, вам надо включить в определение очереди опцию rm=oak. Заметьте, что для организации печати с помощью удаленной очереди этого недостаточно; данная опция лишь идентифицирует компьютер, на котором расположена очередь. Для определения удаленного компьютера можно использовать имя узла (с указанием или без указания доменного имени) или IP-адрес.
- гр. Действие опции гр начинается там, где заканчивается действие опции rm. Опция гр задает имя удаленной очереди печати. Например, если очередь на сервере печати называется ink jet, в файл /etc/printcap на клиентском компьютере надо включить выражение rp=inkjet. Заметьте, что имя удаленной очереди не обязательно должно совпадать с именем локальной очереди. Допустима, например, ситуация, когда принтер ink jet сервера будет называться на стороне клиента 1р1 или canon. Рекомендуется во избежание недоразумений синхронизировать имена; в особенности это важно в больших сетях.
Таким образом, имея локальную очередь печати, вы можете преобразовать ее в сетевую очередь, заменив опцию 1р опциями rm и гр. В этом случае вместо вывода данных на локальное устройство компьютер будет передавать задания на узел, заданный с помощью опции rm, в очередь, которая указана как значение опции гр. На сервере в описании очереди, вероятнее всего, будет присутствовать опция 1р, но вместо нее могут быть включены опции rm и гр. Следует заметить, что такая конфигурация нежелательна, в этом случае лучше непосредственно указать в клиентской системе реальный сервер печати. (Исключением являются ситуации, когда средства обработки данных, например Ghostscript, выносятся с сервера печати на другой компьютер либо когда конфигурация сети не обеспечивает непосредственное взаимодействие клиента и сервера.)
Если сервер печати не поддерживает LPD-соединения, необходимо использовать более сложную конфигурацию. Например, сервер может быть настроен для обработки заданий на печать, передаваемых средствами SMB/CIFS или AppleTalk. В таком случае вам надо создать сценарий, который обрабатывал бы задания на печать, и вызывать его с помощью опции if. Примеры подобных решений приведены в документации на Samba и Netatalk.