是否存在像 PRINTER 这样的环境变量,但用于远程服务器?

是否存在像 PRINTER 这样的环境变量,但用于远程服务器?

我不得不卸载它cupsdcups-browserd因为在它们运行时我无法打印到远程打印机(并且在 3 小时后放弃了)。

现在,通过应用程序进行打印效果很好,但从 CLI 我必须执行如下操作:

enscript -p- reasons_i_love_linux.md | lpr -H server:631

我只想说:

enscript reasons_i_love_linux.md

就像我“升级” CUPS 之前那样。

事实证明,通过 Google 很难找到这一点……

同样,cups 守护进程是不是在本机上运行,​​仅在远程打印机服务器上运行。

有任何想法吗?

答案1

您至少应该安装了 CUPS 的“客户端”部分。然后将此行放入保存为/etc/cups/client.conf(供系统范围使用)或保存为${HOME}/.cups/client.conf(如果您想为不同用户使用不同的远程 CUPS 服务器)的文件中:

ServerName servername:631

或者

ServerName server-ip-address:631

请注意,它/etc/cups/client.conf必须是全世界可读的,因为读取它的是用户空间应用程序(而不是 root 拥有的守护进程)。

如果远程 CUPS 服务器比较新,您必须告诉打印客户端要求远程服务器使用 IPP v1.1(而不是较新版本的 CUPS 所用的 v2.0):

ServerName servername:631/version=1.1

现在您的本地cupsd将被绕过(如果它正在运行),或者不会尝试联系它(如果它没有运行)。打印客户端程序将首先直接与远程 CUPS 对话(而不是位于 上的那个,否则它们会在没有上述条目localhost:631的情况下进行对话)。client.conf

回答您关于环境变量的问题:是的,有一个。它被称为CUPS_SERVER。如果client.conf不存在该条目,或者您想要覆盖 中指定的远程服务器client.conf,或者它在非标准端口上侦听,您可以根据具体情况使用它。

CUPS_SERVER=other_server:631 lp -p printername jobfile

您还可以使用它列出远程服务器上(共享)打印机的名称和状态:

CUPS_SERVER=other_server:631             lpstat -p
CUPS_SERVER=other_server:631/version=1.1 lpstat -p

CUPS_SERVER=other_server:631             lpstat -v
CUPS_SERVER=other_server:631/version=1.1 lpstat -v

相关内容