Linux的列印服務CUPS的安裝、配置和使用
CUPS實際上是一個整合的服務。包括了前端接收列印命令的相關程式,後端控制印表機硬體的程式,中間則是列印驅動。首先來看看CUPS驅動印表機的方式。這裡要說明的是所謂驅動,其實是一系列的程式加定義檔案的總和,不像我們有時候想像的那樣是一個很簡單的單一檔案。當CUPS接受到列印命令時,首先會進行一個格式的預轉換,比如將.jpg等各種檔案先轉換成PostScript格式(圖1桔紅方框)。然後進一步將PostScript格式轉換成 CUPS內部格式,這個稱為PostScript到PostScript轉換,這兩種PostScript格式還是有差別的,當然大家可以不必深究(我也沒好好看,只是知道在MIME中定義了這兩種不同的PostScript,哪位知道的請指教下)。
以上這些都是預處理工作,接下來CUPS的工作圍繞PostScript展開(圖1,金色部分),CUPS會根據PPD(PostScript Printer Description 檔案)檔案來選擇相應的處理流程。PPD檔案其實是驅動的核心,不同的印表機有不同的PPD檔案,PPD
第一種,直接傳輸PostScript檔案給CUPS的後臺,再將列印流傳輸到PostScript印表機,接下來的事情全部丟給印表機去處理,當然,這種印表機大多價格不菲;
第二種方式是交給CUPS的內建程式處理,把PostScript轉換成其特有的raster格式,這種格式是CUPS特有的,至於為什麼要轉成這種格式,是為了方便印表機生產商,讓他們可以只需開發CUPS的raster格式到其印表機的介面,方便大家統一,但似乎這一方式的驅動還不多。
第三種方式,也是支援印表機最多的方式,叫做GhostScript格式的驅動模式。它其實和第二種列印驅動比較類似,只把CUPS的直譯器換成了外接的 GhostScript來解釋PostScript檔案,之所以這麼周折,是因為目前支援這種方法的印表機比支援CUPS的raster的印表機要多很多。GhostScript程式是獨立於CUPS執行的,它的功能也不僅限於列印,但很多情況下通過CUPS來呼叫GhostScript列印是件很方便的事情。foomatic則是用於連線CUPS和GhostScript的一個指令碼程式(用perl寫的),用來打包各種不同格式的印表機命令,它非常有用,對於通過CUPS呼叫GhostScript來說則是必須的。GhostScript格式的驅動程式很多,大家可以到
總之,無論是哪種模式,實際上CUPS都是把印表機“看成”PostScript印表機,或是直接呼叫,或是用自帶的方法虛擬,或者用GhostScript虛擬。
列印驅動的安裝
用Ubuntu系統為例,命令列僅供參考,實際安裝時可能會因為系統和版本的差別或有差異,可針對不同的系統作些修改。
萬丈高樓平地起,首先,要安裝的是CUPS本身,這個相對還是很方便的:
sudo aptitude install cupsys cupsys-client
安裝的cupsys是CUPS服務,cupsys-client則是管理連線CUPS用的。理論上這個時候要是你的印表機是PostScript印表機,或者在CUPS支援的範圍內,只需將PPD檔案往CUPS相應的目錄一放,你就能夠用CUPS列印了。但實際上,大多數印表機在Linux下還是需要 GhostScript來驅動的。關於CUPS的服務配置,我們最後一起討論。所以,下一步:
sudo aptitude install ghostscript
(插一句,在ubuntu下,本人推薦用aptitude替代apt-get,aptitude處理包的依存關係比apt-get要好)
安裝上GhostScript後,別忘記裝foomatic,否則CUPS還是呼叫不過來的:
sudo aptitude install foomatic
(再次羅嗦下,foomatic五個部分,用aptitude可以一次搞定安裝,apt-get似乎要敲好幾次,建議)
到此為止,只要再稍加配置,系統就應該已經能夠支援很多種印表機了。GhostScript本身就已經帶了很多印表機的驅動,還有很多GhostScript標準寫的驅動,可以從http://www.openprinting.org/下載到。
至於像hp 1020這樣的機器,我們還得多裝一點東西,不用擔心,此程式的作者已經想得很周到了,只需稍許幾個命令就能解決安裝。(參考http://foo2zjs.rkkda.com/)
下載: | wget -O foo2zjs.tar.gz |
解壓縮: | tar zxf foo2zjs.tar.gz |
進入相應的目錄: | cd foo2zjs |
編譯foo2zjs: | make |
取得印表機的韌件(firmware): | ./getweb 1020 |
安裝: | sudo make install |
安裝熱插拔系統支援: | sudo make install-hotplug |
安裝到CUPS系統: | sudo make cups |
這樣,所有的安裝工作都完成了。接下來需要配置除錯CUPS服務了。
CUPS系統的配置
CUPS系統裝好的時候是隻能從本地開啟的,就是安裝CUPS的那臺機器能開啟:http://127.0.0.1:631(圖2)。如果要支援從其他機器登入,要修改配置檔案:/etc/cups/cups.d/ports.conf,
在裡面新增要監聽的地址,例如:
Listen 127.0.0.1:631 | #預設的本地監聽 |
Listen /var/run/cups/cups.sock | #預設的監聽埠 |
Listen 192.168.1.2:631 | #要新增的監聽地址 |
另外,由於安全的需要,CUPS將很多從網路安裝維護印表機的功能作了限制,經過嘗試,建議對配置檔案再做一些修改,增加幾個配置引數,降低一些安全設定,以方便在普通內網條件下使用。當然,如果你對安全性有很大的要求,請參考相CUPS的說明進行修改:
# Authenticate against system accounts by default... |
|
... | |
DefaultEncryption IfRequested | #新增預設的對密碼加密的要求 |
... ... ... | |
# Restrict access to the server... | |
... | |
Allow 192.168.1.0/24 | #新增可以訪問伺服器的網段 |
... ... ... | |
# Restrict access to the admin pages... | |
... | |
Allow 192.168.1.0/24 | #新增那些機器可以訪問管理頁面 |
... ... ... | |
# Restrict access to the admin pages... |
|
... | |
Encryption Never | #表示訪問管理員頁面無需對密碼加密 |
... ... ... |
配置完成後,就可以通過web頁面來管理你的印表機了(圖2)。
圖2
最後,將PPD檔案放到/usr/share/cups/model目錄下,CUPS就能識別你的印表機了。
PPD檔案哪裡來的呢,這個有很多途徑可以獲得:CUPS自己本身帶了很多PPD已經在/usr/share/cups/model/cups- included/目錄下存在;從linuxprinting網站,也能下載到很多的PPD檔案;還有,最經典的,可以用foomatic- compiledb編譯出來,當然這個編譯過程需要相應的資料庫支援,預設編譯的時候,會把所有foomatic支援的都編譯出來,選擇你要的就好了。以 HP1020為例,你可以直接從linuxprinting網站下到PPD;也可以在安裝好foo2zjs後,用foomatic編譯一個PPD檔案,編譯好後的檔案存放在當前目錄下的ppd/資料夾裡。最後把對應型號的PPD檔案拷貝到/usr/share/cups/model就完成了。
CUPS系統的使用
在使用CUPS,需要新增印表機,開啟印表機。然後輸入CUPS伺服器地址“http://192.168.1.2:631”開啟web頁面管理,點選 “Administration”頁面,可以看到新增印表機的按鈕,點選按照提示選擇相應的埠和印表機訊號就能完成安裝(圖3)。該過程和在 widnows下安裝很類似,完成後可以點“Print Test Page”試下測試頁,印表機很快就會打出相應的頁面。到此,我們已經完全完成了對CUPS系統的配置,列印服務已經可以直接使用了。在Linux伺服器上,可以直接呼叫CUPS服務列印檔案。另外也能通過網路,共享這臺印表機,讓其他的系統包括Windows系統使用這臺印表機。
圖3
在Window下使用CUPS共享的印表機
在Windows下,安裝CUPS共享的印表機。網上有很多解決方案,很多方案提到用samba來共享印表機,那種方法可行,但配置samba也是一項比較複雜的工作。我們完全可以使用CUPS的網路列印功能,來完成這一任務。例如圖4,新增一臺網路印表機並輸入URL:http://192.168.1.2:631/printers/HP_LaserJet_1020_USB_1,就可以完成印表機添加了,之後的步驟和安裝普通的本地印表機一樣。其中“192.168.1.2:631/printers”是CUPS列印服務所在地址和埠,“HP_Laser_1020_USB_1”是你的印表機名。
圖4
總結
通過CUPS的配置,我們能夠將普通的印表機安裝在Linux伺服器上,從而提供網路服務,相比市售的網路印表機,這種方法不但降低了成本,一臺帶有 64M記憶體的奔騰就能很好的完成任務,而且該伺服器還能同時兼任NAT,Web Server,FTP等服務,為10臺以內的機器服務綽綽有餘,CPU佔用率100%的時間很少;而且相對傳統網路印表機CUPS列印服務更加靈活可靠。
相關推薦
Linux DNS 服務器安裝、配置和維護
web med this 包含 從右到左 主域 回復 特定 mini 每個 IP 地址都可以有一個主機名,主機名由一個或多個字符串組成,字符串之間用小數點隔開。有了主機名,就不要死記硬背每臺 IP 設備的 IP 地址,只要記住相對直觀有意義的主機名就行了。這就是 DNS 協
Linux的列印服務CUPS的安裝、配置和使用
CUPS實際上是一個整合的服務。包括了前端接收列印命令的相關程式,後端控制印表機硬體的程式,中間則是列印驅動。首先來看看CUPS驅動印表機的方式。這裡要說明的是所謂驅動,其實是一系列的程式加定義檔案的總和,不像我們有時候想像的那樣是一個很簡單的單一檔案。當CUPS接受到列印命令時,首先會進行一個格式的預轉換
如何在 CentOS 7 中安裝、配置和安全加固 FTP 服務
cte success fire lease 註意 tps tran sub linux 步驟 1:安裝 FTP 服務器 1、 安裝 vsftpd 服務器很直接,只要在終端運行下面的命令。 # yum install vsftpd 2、 安裝完成後,服務先是被禁用的,因
Linux DNS 伺服器安裝、配置和維護
每個 IP 地址都可以有一個主機名,主機名由一個或多個字串組成,字串之間用小數點隔開。有了主機名,就不要死記硬背每臺 IP 裝置的 IP 地址,只要記住相對直觀有意義的主機名就行了。這就是 DNS 協議所要完成的功能。 今天我們將討論DNS伺服器,特別是Linux
PhoneGap3+版本號的安裝、配置和使用[圖]
結果 apache height avd fig blog 所在 modules mar 如若轉載。請註明博文地址及原作者(RisingWonderland)。 PhoneGap2+版本號最高為2.9.1,從3+版本號開始,PhoneGap官方不再提供下載安裝包
vsftp安裝、配置和啟動
.rpm 是否 star mic 服務 release 系統版本號 cal 環境 vsftp軟件安裝、配置和啟動及相關問題的解決在環境使用過程中經常用到。本文以SuSE11sp1上vsftpd的安裝過程進行介紹。 測試環境 SuSE11sp1 前提條件
2018-3-26 14周1次課 NFS服務端安裝、配置
NFS14.1 NFS介紹·NFS是Network File System的縮寫·NFS最早由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新為4.1版本·NFS數據傳輸基於RPC協議,RPC為Remote Procedure Call的簡寫。·NF
詳解postfix郵箱服務器安裝、配置及其工作原理(內附源碼包)
zhang 關閉防火墻 互聯 分享 接收郵件 目錄 ifconfig shutdown 數字 簡介 postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmai
centos6.7下的系統備份與恢復(bacula 的安裝、配置和執行)
一、安裝bacula 這裡對上一節的第一種bacula部署結構進行介紹。 主機名 IP地址 作業系統 應用角色 baculaServer 10.0.172.185 centos6.7 Director、SD、Console baculaClient 1
Redis安裝、配置和解除安裝
1.安裝 mkdir /usr/local/redis 新增目錄 wget [http://download.redis.io/releases/redis-4.0.1](http://download.redis.io/releases/redis-4.0.1).tar.gz ta
C#建立Window服務圖解,安裝、配置、以及C#操作Windows服務
一、首先開啟VS2013,建立Windows服務專案 二、建立完成後對"Service1.cs"重新命名位"ServiceDemo";然後切換到程式碼檢視,寫個服務執行日誌。 using System; using System.Collections.Generic; usi
Windows下PHP7.2的安裝、配置和初體驗
下面來介紹PHP7.2的下載安裝配置和使用。 下載和安裝PHP 到官網地址下載zip包(下載地址),我這裡下的是64位非執行緒安全的7.2.11版。 下載好的zip包直接解壓就可以使用,建議是放到習慣的軟體目錄下,以方便管理。 雙擊php.exe就可以進入命令列互動模式,如下圖
.Neter玩轉Linux系列之六:Linux下MySQL的安裝、配置、使用
基礎篇 實戰篇 一、Linux安裝MySQL (1)下載安裝包:https://dev.mysql.com/downloads/mysql/ (2)解壓並安裝 命令:tar zxvf 檔名 解壓完成之後,重名一下資料夾名字。 命令:mv 檔名1
安裝、配置和啟用Ceph iSCSI gateway
本文介紹如何安裝、配置和啟用Ceph iSCSI gateway 要求: 已經有一套Luminous的Ceph叢集(Ceph 12.2.x) 建議使用 2-4 臺機器作為 iSCSI gateway nodes,目的是為了 Ceph iSCSI gateway
RabbitMQ 安裝、配置和使用者管理(CentOS、SUSE)
安裝步驟(rpm包安裝): 下載rpm並安裝: CentOs: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm rpm --
mac下cmake安裝、配置和使用
目錄 1、cmake下載 2、cmake安裝 3、cmake配置 參考文件:https://blog.csdn.net/baimafujinji/article/details/78588488 1、cmake下載 官網下載地址:https://cmake.org/dow
elasticsearch入門指南(一)elasticsearch-5.5.2安裝、配置和啟動
一,安裝JDK 略二,安裝elasticsearch1,下載安裝包官網下載地址:https://www.elastic.co/cn/downloads/elasticsearch,本文centos作業系統下安裝elasticsearch的tar包為例,講述安裝過程2,新
Mac下eclipse的git外掛安裝、配置和使用
1. eclipse的git外掛安裝與配置 1.1 git外掛安裝 點選help——Install new software 2.在彈出框裡面,點選add 如下圖: 如下圖: 點選OK,如果沒反應,請點選Add前面小三角,找到剛建立的以git為名字的
ubuntu14.04下vnc安裝、配置和使用
1.更新系統 apt-get update -y apt-get upgrade -y 2. 安裝gnome環境相關,sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon meta
資料庫概述、mysql-5.7.11-winx64.zip 的下載、安裝、配置和使用(windows裡安裝)圖文詳解
本博文的主要內容有 .資料庫的概述 .mysql-5.7.11-winx64.zip 的下載 .mysql-5.7.11-winx64.zip 的安裝 .mysql-5.7.11-winx64.zip 的配置 .mysql-5.7.11-winx64.zip 的使用