0

Linux 共享打印服务 CUPS

 8 months ago
source link: https://www.lfhacks.com/tech/linux-cups/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
2124.jpg
扫一扫,转发文章

家里的 HP 打印机太旧了(HP LaserJet P1008),已经不能在 Windows 10 上正常安装驱动了,于是尝试安装了 Linux 的共享打印服务,希望能共享给 Windows 使用。本文记录了整个过程。

说到 Linux 的共享打印服务,必然提及 CUPS,一方面是因为好用,一方面是因为……没有其他的选择。注意,想要配置 HP 打印机,必须安装桌面版 Linux。

CUPS 来历

CUPS 效果

CUPS 提供了 web 页面用于管理本地或者网络上共享的打印机,并提供了共享的接口。

本地打印机

桌面版具备较完整的打印机驱动程序,直接自动发现了本地 USB 连接的打印机:

printer.png

安装 CUPS

下面以 ubuntu 桌面版系统为例,介绍 CUPS 的配置过程。桌面版系统中会自带 CUPS,所以不需要自己手动安装。如果你的Ubuntu 没有 CUPS,那么可以按照下面的命令安装:

更新 apt 库:

$ sudo apt-get update

然后安装 cups 库:

$ sudo apt-get install cups

配置 cups

出于安全的考虑,CUPS 刚刚安装好的时候,只允许从本机访问。从本机执行这个命令,应该能看到 html 文件的内容:

$ curl localhost:631 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 3784 100 3784 0 0 304k 0 --:--:-- --:--:-- --:--:-- 335k<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><HTML><HEAD>……

查看 /etc/cups/cupsd.conf 配置文件,可以看到下面这几行:

# Only listen for connections from the local machine.Listen localhost:631Listen /var/run/cups/cups.sock

我们内部网络不需要这么高的安全等级,CUPS 提供了管理工具 cupsctl,只需要执行下面命令,就能允许远程访问和远程管理:

$ sudo cupsctl --remote-admin

这时候可以发现 /etc/cups/cupsd.conf 的内容被全部更换。

从另一台主机访问 :https://<CUPS 主机 IP>:631 就能看到界面:

admin.png

默认情况下,系统不对外共享本地打印机,所以需要勾选下面的复选框:

share.png

然后从打印机列表中找到本地打印机

model.png

点击打印机名称,进入详情页后,确认看到 “Shared” 字样,就说明这个打印机已经在网络上共享。

shared.png

从 MacOS 上查找打印机

由于 CUPS 是苹果公司开发,所以从 MacOS 上很容易找到由 CUPS 共享出来的打印机。在添加打印机界面的 Default 标签下,直接能看到这台打印机:

addprinter.png

从 Windows 10 上查找打印机

点击查找打印机按钮

win10-2.png

点击查找到打印机後,点击连接

win10-1.png

连接成功後,显示打印机状态准备就绪。

win10-3.png

附:hplip 库的安装

HP 提供了 hplip 库用于驱动 Linux 下的 HP 打印机,在安装桌面版 Ubuntu 时会自动安装好匹配的版本,不需要自己操心。

如果你希望手动升级,可以按照下面的步骤。首先从官方页面上下载 hplip 库和 对应版本的插件

得到三个文件:分别是 hplip 库安装文件:hplip-3.23.8.run 和 hplip 库 插件:hplip-3.23.8-plugin.run , hplip-3.23.8-plugin.run.asc

安装步骤的文档在这里

运行命令:

$ bash hplip-3.23.8.runCreating directory hplip-3.23.8Verifying archive integrity... 100% All good.Uncompressing HPLIP 3.23.8 Self Extracting Archive 100% HP Linux Imaging and Printing System (ver. 3.23.8)HPLIP Installer ver. 5.1 Copyright (c) 2001-18 HP Development Company, LPThis software comes with ABSOLUTELY NO WARRANTY.This is free software, and you are welcome to distribute itunder certain conditions. See COPYING file for more details. Installer log saved in: hplip-install_Sun-26-Nov-2023_15:44:54.log -note: Defaults for each question are maked with a '*'. Press <enter> to accept the default. INSTALLATION MODE-----------------Automatic mode will install the full HPLIP solution with the most common options.Custom mode allows you to choose installation options to fit specific requirements. Please choose the installation mode (a=automatic*, c=custom, q=quit) :

默认安装选 a,自定义安装选 c,推荐大多数用户选择 a,按回车即可。

安装过程中提示会自动补全缺少的依赖:

MISSING DEPENDENCIES--------------------Following dependencies are not installed. HPLIP will not work if all REQUIRED dependencies are not installed and some of the HPLIP features will not work if OPTIONAL dependencies are not installed.Package-Name Component Required/Optionallibcrypto network REQUIREDlibnetsnmp-devel network REQUIREDsane-devel scan REQUIREDgcc base REQUIREDpyqt4-dbus gui_qt4 REQUIREDpython-devel base REQUIREDcups-devel base REQUIREDlibavahi-dev scan REQUIREDpyqt4 gui_qt4 REQUIREDlibusb base REQUIREDcups-image base REQUIREDpython-notify gui_qt4 OPTIONALxsane scan OPTIONALlibjpeg base REQUIREDdbus fax REQUIREDavahi-utils network OPTIONALDo you want to install these missing dependencies (y=yes*, n=no, q=quit) ?

安装过程比较漫长,需要几十分钟时间:

DEPENDENCY AND CONFLICT RESOLUTION----------------------------------Running 'sudo apt-get install --assume-yes build-essential'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes python-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libcups2-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes cups-bsd'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes cups-client'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libusb-1.0.0-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libusb-0.1-4'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libcupsimage2-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libjpeg-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes openssl'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes libsnmp-dev'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes snmp-mibs-downloader'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes python-qt4-dbus'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes gtk2-engines-pixbuf'Please wait, this may take several minutes...Running 'sudo apt-get install --assume-yes python-qt4'Please wait, this may take several minutes...\

中间发现已经存在了 hplip 版本,询问是否需要删除

\/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning)HPLIP-3.14.3 exists, this may conflict with the new one being installed.Do you want to ('i'= Remove and Install*, 'q'= Quit)? :

回车选择删除。

自动开始 configure

BUILD AND INSTALL-----------------Running './configure --with-hpppddir=/usr/share/ppd/HP --libdir=/usr/lib --prefix=/usr --enable-qt4 --disable-qt5 --enable-doc-build --disable-cups-ppd-install --disable-foomatic-drv-install --disable-libusb01_build --disable-foomatic-ppd-install --disable-hpijs-install --disable-class-driver --disable-udev_sysfs_rules --disable-policykit --enable-cups-drv-install --enable-hpcups-install --enable-network-build --enable-dbus-build --enable-scan-build --enable-fax-build --enable-apparmor_build'Please wait, this may take several minutes... Running 'make clean'Please wait, this may take several minutes...Command completed successfully. Running 'make'Please wait, this may take several minutes...

接下来要从图形界面上配置,此处略。

如果您对本站内容有疑问或者寻求合作,欢迎 联系邮箱 。邮箱已到剪贴板


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK