驅(qū)動(dòng)全攻略:CUPS與HPLIP實(shí)戰(zhàn))
1. 為什么銀河麒麟V10裝HP P1106驅(qū)動(dòng)值得單獨(dú)寫(xiě)一篇銀河麒麟V10這個(gè)系統(tǒng)這兩年我在政企項(xiàng)目里接觸得非常多。它的底層是Linux桌面環(huán)境做得已經(jīng)相當(dāng)接近Windows的使用習(xí)慣但一旦涉及到外設(shè)尤其是打印機(jī)這種“老古董”級(jí)別的硬件問(wèn)題就來(lái)了。HP P1106這臺(tái)機(jī)器說(shuō)出來(lái)大家都熟——惠普的經(jīng)典入門(mén)級(jí)黑白激光打印機(jī)皮實(shí)耐造很多單位采購(gòu)都是一批一批地買(mǎi)。但它的驅(qū)動(dòng)在銀河麒麟V10上并不是插上USB線就能自動(dòng)識(shí)別那么簡(jiǎn)單。我前后在至少五六個(gè)不同架構(gòu)的銀河麒麟V10環(huán)境里裝過(guò)這臺(tái)打印機(jī)有x86_64的也有飛騰ARM64的還有鯤鵬平臺(tái)的。每次都會(huì)遇到一些新的小問(wèn)題有時(shí)候是CUPS服務(wù)沒(méi)起來(lái)有時(shí)候是HPLIP版本不匹配有時(shí)候是權(quán)限問(wèn)題導(dǎo)致打印隊(duì)列卡死。所以我把這些經(jīng)驗(yàn)整理出來(lái)給正在踩坑或者即將踩坑的朋友一個(gè)參考。這篇文章主要面向兩類(lèi)人一類(lèi)是剛接觸銀河麒麟V10的運(yùn)維人員需要在辦公環(huán)境里快速把打印機(jī)跑通另一類(lèi)是有一定Linux基礎(chǔ)但沒(méi)怎么碰過(guò)CUPS打印系統(tǒng)的技術(shù)愛(ài)好者。我會(huì)從原理講到實(shí)操?gòu)拿钚兄v到圖形界面盡量讓不同基礎(chǔ)的人都能找到適合自己的路徑。核心關(guān)鍵詞就幾個(gè)銀河麒麟V10、HP P1106、打印機(jī)驅(qū)動(dòng)、HPLIP、CUPS整篇內(nèi)容都圍繞這幾個(gè)詞展開(kāi)。2. 動(dòng)手之前先把原理搞清楚CUPS和HPLIP到底是什么關(guān)系2.1 CUPSLinux世界的打印總管CUPS全稱(chēng)是Common Unix Printing System翻譯過(guò)來(lái)就是通用Unix打印系統(tǒng)。你可以把它理解成Linux系統(tǒng)里的“打印服務(wù)總調(diào)度臺(tái)”。不管是本地USB打印機(jī)還是網(wǎng)絡(luò)打印機(jī)最終都要通過(guò)CUPS來(lái)接收打印任務(wù)、轉(zhuǎn)換成打印機(jī)認(rèn)識(shí)的指令、然后發(fā)送給硬件。在銀河麒麟V10里CUPS默認(rèn)是安裝了的但不一定默認(rèn)啟動(dòng)。很多朋友裝完系統(tǒng)插上打印機(jī)發(fā)現(xiàn)沒(méi)反應(yīng)第一反應(yīng)是“驅(qū)動(dòng)沒(méi)裝”其實(shí)有時(shí)候只是CUPS服務(wù)沒(méi)跑起來(lái)。這個(gè)后面我會(huì)詳細(xì)講怎么排查。CUPS的配置文件主要在/etc/cups/目錄下核心文件是cupsd.conf和printers.conf。cupsd.conf控制服務(wù)本身的運(yùn)行參數(shù)比如監(jiān)聽(tīng)端口、日志級(jí)別、訪問(wèn)權(quán)限等printers.conf則是記錄已經(jīng)添加的打印機(jī)隊(duì)列信息。你通過(guò)圖形界面或者命令行添加的每一臺(tái)打印機(jī)最終都會(huì)寫(xiě)進(jìn)printers.conf里。CUPS的工作流程大致是這樣的應(yīng)用程序發(fā)起打印請(qǐng)求CUPS接收后根據(jù)打印隊(duì)列的配置調(diào)用對(duì)應(yīng)的過(guò)濾器filter把文檔轉(zhuǎn)換成打印機(jī)支持的格式比如PCL或者PostScript然后通過(guò)USB或網(wǎng)絡(luò)接口發(fā)送給打印機(jī)。HP P1106支持的打印語(yǔ)言是PCL5e和PCL6所以我們需要確保CUPS能找到對(duì)應(yīng)的驅(qū)動(dòng)來(lái)處理格式轉(zhuǎn)換。2.2 HPLIP惠普打印機(jī)的專(zhuān)屬管家HPLIP是HP Linux Imaging and Printing的縮寫(xiě)是惠普官方為L(zhǎng)inux系統(tǒng)提供的打印機(jī)驅(qū)動(dòng)和工具套件。它包含了大量惠普打印機(jī)的PPD文件PostScript Printer Description打印機(jī)描述文件、過(guò)濾器、以及一些管理工具比如hp-setup、hp-check、hp-plugin等。對(duì)于HP P1106來(lái)說(shuō)HPLIP里是有對(duì)應(yīng)的驅(qū)動(dòng)支持的。但問(wèn)題是銀河麒麟V10自帶的HPLIP版本可能比較老或者缺少某些依賴(lài)包導(dǎo)致安裝過(guò)程中出現(xiàn)各種報(bào)錯(cuò)。另外HP P1106屬于“Host-based”打印機(jī)也就是說(shuō)它本身不具備完整的頁(yè)面描述語(yǔ)言處理能力需要依賴(lài)主機(jī)端的驅(qū)動(dòng)來(lái)完成渲染工作。這類(lèi)打印機(jī)在Linux下的支持相對(duì)復(fù)雜一些因?yàn)榛萜諞](méi)有公開(kāi)完整的協(xié)議文檔HPLIP里的驅(qū)動(dòng)是通過(guò)逆向工程實(shí)現(xiàn)的。所以整個(gè)安裝思路就很清晰了確保CUPS服務(wù)正常運(yùn)行然后通過(guò)HPLIP來(lái)提供HP P1106的驅(qū)動(dòng)支持最后在CUPS里添加打印機(jī)隊(duì)列并配置好驅(qū)動(dòng)。2.3 為什么不用系統(tǒng)自帶的“添加打印機(jī)”向?qū)сy河麒麟V10的桌面環(huán)境里有一個(gè)“打印機(jī)”設(shè)置面板看起來(lái)跟Windows的添加打印機(jī)流程很像。但實(shí)際用下來(lái)這個(gè)圖形化工具在添加HP P1106時(shí)經(jīng)常搜不到正確的驅(qū)動(dòng)或者添加完了打印出來(lái)是亂碼。原因在于它底層調(diào)用的還是CUPS和HPLIP如果HPLIP的驅(qū)動(dòng)數(shù)據(jù)庫(kù)不完整圖形界面也巧婦難為無(wú)米之炊。所以我個(gè)人的習(xí)慣是先用命令行把HPLIP和CUPS的底層環(huán)境確認(rèn)好再用圖形界面或者命令行添加打印機(jī)。這樣出問(wèn)題了也容易定位。3. 安裝前的環(huán)境檢查和依賴(lài)準(zhǔn)備3.1 確認(rèn)系統(tǒng)版本和架構(gòu)第一步永遠(yuǎn)是確認(rèn)你手上的銀河麒麟V10到底是什么版本、什么架構(gòu)。打開(kāi)終端執(zhí)行cat /etc/os-release uname -m/etc/os-release會(huì)顯示系統(tǒng)版本信息比如Kylin Linux Advanced Server V10或者Kylin Linux Desktop V10。uname -m會(huì)顯示CPU架構(gòu)常見(jiàn)的有x86_64、aarch64ARM64、mips64等。這個(gè)信息很重要因?yàn)椴煌軜?gòu)下可用的軟件包是不一樣的。我遇到過(guò)有朋友在飛騰ARM64的機(jī)器上直接下載了x86_64的HPLIP安裝包結(jié)果當(dāng)然裝不上。所以這一步千萬(wàn)別跳過(guò)。3.2 檢查CUPS服務(wù)狀態(tài)執(zhí)行以下命令查看CUPS服務(wù)是否在運(yùn)行systemctl status cups如果顯示active (running)說(shuō)明CUPS已經(jīng)在跑了。如果顯示inactive (dead)或者failed就需要手動(dòng)啟動(dòng)sudo systemctl start cups sudo systemctl enable cupsenable的作用是設(shè)置開(kāi)機(jī)自啟避免每次重啟后都要手動(dòng)啟動(dòng)。有些朋友可能會(huì)遇到systemctl start cups報(bào)錯(cuò)的情況這時(shí)候可以看看錯(cuò)誤信息常見(jiàn)的原因是配置文件有語(yǔ)法錯(cuò)誤或者端口被占用。3.3 檢查HPLIP是否已安裝dpkg -l | grep hplip銀河麒麟V10基于Debian體系所以用dpkg來(lái)查。如果輸出里有hplip、hplip-data、printer-driver-hpcups等包說(shuō)明已經(jīng)安裝了。如果什么都沒(méi)輸出那就需要手動(dòng)安裝。在聯(lián)網(wǎng)環(huán)境下可以直接用apt安裝sudo apt update sudo apt install hplip hplip-gui printer-driver-hpcupshplip-gui提供了圖形化管理工具雖然不是必須的但有時(shí)候用hp-toolbox來(lái)查看打印機(jī)狀態(tài)挺方便的。printer-driver-hpcups是惠普打印機(jī)通用的CUPS驅(qū)動(dòng)包HP P1106就靠它來(lái)提供PPD文件。注意在一些離線部署的環(huán)境里apt源可能不可用。這時(shí)候需要提前下載好對(duì)應(yīng)的deb包用dpkg -i手動(dòng)安裝。依賴(lài)關(guān)系可以用apt-get install -f來(lái)修復(fù)。3.4 確認(rèn)USB打印機(jī)被系統(tǒng)識(shí)別把HP P1106用USB線連接到電腦然后執(zhí)行l(wèi)susb你應(yīng)該能在輸出里看到類(lèi)似Bus 001 Device 003: ID 03f0:002a Hewlett-Packard這樣的信息。03f0是惠普的廠商ID002a是HP P1106的產(chǎn)品ID。如果看不到說(shuō)明USB連接有問(wèn)題可能是線纜故障或者接口供電不足。再用dmesg看看內(nèi)核有沒(méi)有識(shí)別到打印機(jī)dmesg | tail -20正常情況下會(huì)看到類(lèi)似usblp 1-1:1.0: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x002A的日志。如果內(nèi)核沒(méi)有識(shí)別到CUPS和HPLIP再厲害也沒(méi)用。4. 命令行安裝HP P1106驅(qū)動(dòng)的完整流程4.1 用hp-setup工具自動(dòng)配置HPLIP提供了一個(gè)叫hp-setup的命令行工具可以自動(dòng)檢測(cè)USB打印機(jī)并配置驅(qū)動(dòng)。這是最省事的方法sudo hp-setup -i-i參數(shù)表示交互模式會(huì)一步步引導(dǎo)你選擇打印機(jī)、下載插件如果需要的話、配置隊(duì)列。對(duì)于HP P1106通常不需要額外下載二進(jìn)制插件因?yàn)樗腔贖PCUPS驅(qū)動(dòng)的。運(yùn)行過(guò)程中工具會(huì)列出檢測(cè)到的USB打印機(jī)你選擇對(duì)應(yīng)的編號(hào)然后確認(rèn)一些參數(shù)比如打印機(jī)名稱(chēng)、位置描述等。最后它會(huì)自動(dòng)在CUPS里創(chuàng)建打印隊(duì)列。如果hp-setup運(yùn)行成功你可以直接跳到測(cè)試打印那一步。但實(shí)際經(jīng)驗(yàn)告訴我在銀河麒麟V10上hp-setup經(jīng)常會(huì)在某個(gè)環(huán)節(jié)卡住或者報(bào)錯(cuò)所以下面我還會(huì)講手動(dòng)配置的方法。4.2 手動(dòng)添加打印機(jī)隊(duì)列如果hp-setup不順利我們可以手動(dòng)來(lái)。首先確認(rèn)HPLIP的PPD文件在哪里find /usr/share/ppd -name *p1106* 2/dev/null或者更廣泛地搜索find /usr/share/cups/model -name *hp* 2/dev/null | head -20正常情況下你應(yīng)該能找到類(lèi)似/usr/share/ppd/hplip/HP/hp-laserjet_p1106.ppd.gz的文件。這個(gè)就是HP P1106的驅(qū)動(dòng)描述文件。接下來(lái)用lpadmin命令添加打印機(jī)sudo lpadmin -p HP_P1106 -E -v usb://HP/LaserJet%20P1106?serialXXXXXX -m hp-laserjet_p1106.ppd.gz這里的參數(shù)解釋一下-p指定打印機(jī)隊(duì)列名稱(chēng)可以自己起比如HP_P1106-E表示啟用打印機(jī)并接受打印任務(wù)-v指定設(shè)備URIUSB打印機(jī)的URI格式一般是usb://廠商/型號(hào)?serial序列號(hào)-m指定PPD文件。設(shè)備URI怎么獲取可以用這個(gè)命令lpinfo -v | grep usb輸出里會(huì)列出所有檢測(cè)到的USB打印機(jī)及其URI。直接復(fù)制過(guò)來(lái)用就行。4.3 設(shè)置默認(rèn)打印機(jī)和測(cè)試添加完成后把它設(shè)為默認(rèn)打印機(jī)lpoptions -d HP_P1106然后打印一張測(cè)試頁(yè)lp -d HP_P1106 /usr/share/cups/data/testprint如果打印機(jī)開(kāi)始轉(zhuǎn)動(dòng)并輸出一張測(cè)試頁(yè)恭喜你基本配置成功了。如果沒(méi)反應(yīng)繼續(xù)往下看排查部分。4.4 圖形界面配置的補(bǔ)充說(shuō)明有些朋友可能更習(xí)慣用圖形界面。銀河麒麟V10的“打印機(jī)”設(shè)置面板里點(diǎn)擊“添加”后選擇“USB打印機(jī)”然后在驅(qū)動(dòng)選擇界面里找到“HP”廠商再找到“LaserJet P1106”型號(hào)。如果列表里沒(méi)有可以點(diǎn)擊“從PPD文件安裝”手動(dòng)指向/usr/share/ppd/hplip/HP/hp-laserjet_p1106.ppd.gz。圖形界面的好處是直觀壞處是出錯(cuò)時(shí)提示信息不夠詳細(xì)。所以我建議先用命令行確認(rèn)底層沒(méi)問(wèn)題再用圖形界面做日常管理。5. 常見(jiàn)報(bào)錯(cuò)和排查技巧實(shí)錄5.1 CUPS服務(wù)起不來(lái)怎么辦這是最常見(jiàn)的問(wèn)題之一。執(zhí)行systemctl status cups看到failed用journalctl -u cups -n 50查看具體錯(cuò)誤。常見(jiàn)的幾種情況第一種是配置文件語(yǔ)法錯(cuò)誤。比如手動(dòng)編輯過(guò)/etc/cups/cupsd.conf不小心多了一個(gè)括號(hào)或者少了一個(gè)引號(hào)??梢杂胏upsd -t來(lái)測(cè)試配置文件語(yǔ)法sudo cupsd -t它會(huì)告訴你哪一行有問(wèn)題。第二種是端口被占用。CUPS默認(rèn)監(jiān)聽(tīng)631端口如果這個(gè)端口被其他程序占了CUPS就起不來(lái)。用ss -tlnp | grep 631查看誰(shuí)占用了端口。第三種是權(quán)限問(wèn)題。/etc/cups/目錄和里面的文件權(quán)限不對(duì)導(dǎo)致CUPS服務(wù)無(wú)法讀取配置。正常情況下這些文件的所有者應(yīng)該是root:lp權(quán)限是640或644。5.2 打印任務(wù)卡在隊(duì)列里不動(dòng)有時(shí)候打印機(jī)添加成功了但發(fā)送打印任務(wù)后任務(wù)一直顯示在隊(duì)列里狀態(tài)是“正在處理”或者“已暫?!?。這時(shí)候先檢查打印機(jī)本身的狀態(tài)lpstat -p HP_P1106 -l如果顯示printer HP_P1106 is idle說(shuō)明打印機(jī)就緒。如果顯示disabled需要啟用cupsenable HP_P1106 cupsaccept HP_P1106然后檢查隊(duì)列里的任務(wù)lpq -P HP_P1106如果任務(wù)卡住了可以取消后重試cancel -a HP_P1106還有一個(gè)常見(jiàn)原因是USB通信問(wèn)題。HP P1106是Host-based打印機(jī)對(duì)USB傳輸?shù)姆€(wěn)定性要求比較高。如果USB線太長(zhǎng)或者質(zhì)量不好可能會(huì)導(dǎo)致數(shù)據(jù)傳輸中斷。換一根短一點(diǎn)的優(yōu)質(zhì)USB線試試。5.3 打印出來(lái)是亂碼或者空白頁(yè)這個(gè)問(wèn)題通常跟驅(qū)動(dòng)不匹配有關(guān)。如果你用的PPD文件不是專(zhuān)門(mén)針對(duì)P1106的而是用了通用HP LaserJet驅(qū)動(dòng)就可能出現(xiàn)亂碼。確認(rèn)一下當(dāng)前使用的PPDlpstat -p HP_P1106 -l | grep PPD或者直接查看/etc/cups/ppd/HP_P1106.ppd文件的內(nèi)容看看*NickName字段是什么。另一個(gè)原因是Ghostscript版本問(wèn)題。CUPS在轉(zhuǎn)換文檔時(shí)會(huì)調(diào)用Ghostscript如果Ghostscript版本太老或者缺少某些過(guò)濾器也會(huì)導(dǎo)致輸出異常。檢查Ghostscriptgs --version銀河麒麟V10自帶的Ghostscript版本一般在9.x以上基本夠用。如果版本太低可以考慮手動(dòng)升級(jí)。5.4 hp-setup報(bào)“No device found”錯(cuò)誤明明lsusb能看到打印機(jī)但hp-setup就是找不到。這種情況通常是因?yàn)镠PLIP的服務(wù)沒(méi)有正常運(yùn)行。檢查一下systemctl status hpiod systemctl status hpssd這兩個(gè)是HPLIP的后臺(tái)服務(wù)負(fù)責(zé)與打印機(jī)通信。如果沒(méi)運(yùn)行啟動(dòng)它們sudo systemctl start hpiod sudo systemctl start hpssd另外有些版本的HPLIP需要python3-pyqt5等圖形庫(kù)支持才能正常運(yùn)行hp-setup。如果是在純命令行環(huán)境下可以用hp-setup -i的交互模式不需要圖形界面。5.5 權(quán)限問(wèn)題導(dǎo)致普通用戶無(wú)法打印如果你用root配置好了打印機(jī)但普通用戶打印時(shí)提示權(quán)限不足需要把用戶加入lp組sudo usermod -a -G lp username然后重新登錄使組權(quán)限生效。CUPS默認(rèn)允許lp組的成員管理打印任務(wù)。6. 不同架構(gòu)平臺(tái)的適配經(jīng)驗(yàn)6.1 x86_64平臺(tái)這是最順利的平臺(tái)。銀河麒麟V10的x86_64版本軟件源最全HPLIP和CUPS的包都能直接apt安裝。我在這類(lèi)機(jī)器上裝HP P1106基本就是apt install hplip hplip-gui然后hp-setup -i兩步搞定。6.2 飛騰ARM64平臺(tái)飛騰平臺(tái)上的銀河麒麟V10軟件源里也有HPLIP但版本可能稍老。我遇到過(guò)hp-setup在ARM64上運(yùn)行時(shí)報(bào)Python腳本錯(cuò)誤的情況原因是某些Python依賴(lài)包的版本不匹配。解決辦法是手動(dòng)安裝缺失的依賴(lài)或者直接用lpadmin命令手動(dòng)添加打印機(jī)繞過(guò)hp-setup。另外ARM64平臺(tái)上Ghostscript的渲染速度會(huì)比x86_64慢一些打印復(fù)雜文檔時(shí)可能需要多等幾秒。6.3 鯤鵬ARM64平臺(tái)鯤鵬平臺(tái)的情況跟飛騰類(lèi)似但我在鯤鵬上遇到過(guò)CUPS服務(wù)默認(rèn)沒(méi)安裝的情況。需要先apt install cups然后再裝HPLIP。整體流程跟x86_64一致只是軟件包需要確認(rèn)是aarch64架構(gòu)的。7. 日常維護(hù)和實(shí)用技巧7.1 查看打印歷史記錄CUPS會(huì)記錄所有打印任務(wù)的歷史存放在/var/log/cups/page_log里。如果你想知道誰(shuí)在什么時(shí)候打印了多少頁(yè)可以查看這個(gè)文件tail -f /var/log/cups/page_log7.2 備份打印機(jī)配置配置好一臺(tái)打印機(jī)不容易建議把配置文件備份一下sudo cp /etc/cups/printers.conf /etc/cups/printers.conf.bak sudo cp /etc/cups/ppd/HP_P1106.ppd /etc/cups/ppd/HP_P1106.ppd.bak這樣以后重裝系統(tǒng)或者遷移到其他機(jī)器時(shí)直接恢復(fù)這兩個(gè)文件就能快速重建打印隊(duì)列。7.3 定期清理打印隊(duì)列如果打印任務(wù)經(jīng)??ㄗ】梢栽O(shè)置一個(gè)定時(shí)任務(wù)定期清理cupsdisable HP_P1106 cancel -a HP_P1106 cupsenable HP_P1106這三條命令的組合效果是暫停打印機(jī)、清空所有任務(wù)、重新啟用打印機(jī)。相當(dāng)于給打印隊(duì)列做一次“重啟”。7.4 網(wǎng)絡(luò)共享打印如果辦公室里有多個(gè)同事需要用這臺(tái)HP P1106可以在銀河麒麟V10上配置CUPS共享。編輯/etc/cups/cupsd.conf找到Listen部分確保監(jiān)聽(tīng)在所有網(wǎng)絡(luò)接口上Listen 0.0.0.0:631然后在Location /、Location /admin、Location /printers這幾個(gè)段落里把Allow規(guī)則改成允許局域網(wǎng)網(wǎng)段訪問(wèn)比如Allow 192.168.1.0/24重啟CUPS后其他電腦就可以通過(guò)ipp://你的IP:631/printers/HP_P1106來(lái)添加這臺(tái)共享打印機(jī)了。注意開(kāi)放CUPS到局域網(wǎng)時(shí)一定要確認(rèn)防火墻規(guī)則只允許可信網(wǎng)段訪問(wèn)631端口避免被未授權(quán)設(shè)備濫用。8. 我踩過(guò)的幾個(gè)坑和最終建議第一個(gè)坑是HPLIP版本和CUPS版本不兼容。有一次在一臺(tái)老舊的銀河麒麟V10上系統(tǒng)自帶的HPLIP是3.18版本而CUPS是2.2版本兩者配合時(shí)hp-setup總是報(bào)錯(cuò)。后來(lái)手動(dòng)升級(jí)HPLIP到3.20版本才解決。所以如果你的系統(tǒng)比較老建議先看看HPLIP版本hp-check -t這個(gè)命令會(huì)輸出詳細(xì)的診斷信息包括版本、依賴(lài)、服務(wù)狀態(tài)等是排查問(wèn)題的利器。第二個(gè)坑是USB接口供電不足。HP P1106雖然功耗不大但在某些工控機(jī)上前置USB接口的供電能力有限導(dǎo)致打印機(jī)時(shí)好時(shí)壞。后來(lái)?yè)Q到后置USB接口就穩(wěn)定了。如果你遇到打印機(jī)偶爾能識(shí)別偶爾不能不妨換個(gè)USB口試試。第三個(gè)坑是SELinux或AppArmor的干擾。銀河麒麟V10默認(rèn)可能開(kāi)啟了某種安全模塊會(huì)阻止CUPS訪問(wèn)USB設(shè)備。如果排查了半天都找不到原因可以臨時(shí)把安全模塊設(shè)為寬容模式測(cè)試一下。當(dāng)然生產(chǎn)環(huán)境不建議長(zhǎng)期關(guān)閉安全模塊而是應(yīng)該添加相應(yīng)的策略規(guī)則。最后說(shuō)一個(gè)實(shí)用建議如果你需要在多臺(tái)銀河麒麟V10機(jī)器上部署同一款打印機(jī)可以寫(xiě)一個(gè)簡(jiǎn)單的Shell腳本把安裝和配置步驟自動(dòng)化。腳本里包含檢查CUPS狀態(tài)、安裝HPLIP、用lpadmin添加打印機(jī)、設(shè)置默認(rèn)隊(duì)列這幾步。這樣批量部署時(shí)能省不少時(shí)間。我在實(shí)際項(xiàng)目里就是這么干的一個(gè)腳本跑完十臺(tái)機(jī)器五分鐘全部搞定。比起一臺(tái)臺(tái)手動(dòng)配置效率提升非常明顯。而且腳本可以版本化管理以后換打印機(jī)型號(hào)或者系統(tǒng)升級(jí)改改參數(shù)就能復(fù)用。