SambaとCUPSと各種プリンター(CUPS・プリンタ編)


目標

  1. プリンタはCUPSで管理する。
  2. Samba経由でプリンタを共有する。
  3. LAN内で使用するため、セキュリティはそれほど気にしない。

環境

CentOS 7.2

言わずともしれたOS。minimumインストール。

  • CentOS Linux release 7.2.1511 (Core)
  • Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Samba

LinuxとWindowsの橋渡しをしてくれる。

  • 4.2.3-11

CUPS

Common Unix Printing System. Linuxでプリンタを使えるようにしてくれる。

  • 1.6.3-22

前準備

  1. yum update
    初期インストールされている各種パッケージのアップデート。

  2. yum install epel-release

  3. yum install wget

  4. ip addr show IPアドレスを確認

インストール&設定 (CUPS編)

CUPSのインストール&設定 Part.1 (CUI)

  • yum install cups cups-devel
  • 印刷関連のパッケージをインストール。
  • 外部から接続できるように/etc/cups/cupsd.confを書き換える。
/etc/cups/cupsd.conf
# Only listen for connections from the local machine.
# Listen localhost:631    # ←コメントアウト
Listen 631                # ←追加
Listen /var/run/cups/cups.sock

~~~~ 中略 ~~~~

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow From All          # ←追加
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow From All          # ←追加
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From All          # ←追加
</Location>

~~~~ 後略 ~~~~
  • systemctl start cups CUPSを起動

Firewalld (Part.1)

  • ファイヤーウォールにIPP(Port:631)の穴を開ける。
  • Firewalldで定義されているサービスを確認。
# firewall-cmd --get-services
 RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps
 freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap
 ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s 
 postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client
 transmission-client vdsm vnc-server wbem-https
  • IPPの定義はされているので、コマンドを叩いてサービスを追加
# firewall-cmd --add-service=ipp --permanent
# firewall-cmd --reload

CUPSのインストール&設定 Part.2 (GUI)

  1. ブラウザを開いて http://サーバアドレス:631にアクセス。
  2. 管理者向けの「プリンターとクラスの追加」を選択。
  3. 「プリンターの追加」を選択。
  4. そのままアクセスすると怒られます。
  5. 改めて、表示されているアドレスを選択。
  6. 改めて、「プリンターの追加」を選択。
  7. rootアカウント情報が必要になるので入力。
  8. プリンターの追加。プリンタに接続しているポートを選択。
  9. 大抵の場合、USB接続されたプリンタかネットワーク経由でつなげるプリンタのどちらかになると思います。とりあえず、「インターネット印刷プロトコル (ipp) 」を選択。
  10. プリンタの接続方法を記述します。
    ここが鬼門。どの方法でつなげるか悩むことになります。Windowsから使えるプリンタの場合だと、socket://プリンタのアドレス:9100のパターンで、うまくいくことが多かったです。
  11. 新しいプリンターの追加をします。
    名前
    プリンタ名。共有時、この名前が使われます。
    説明
    プリンタの説明。
    場所
    プリンタの場所。
    接続
    前のページで設定した接続方式
    共有
    このプリンターを共有する。共有したいのでチェックをON
  12. プリンタのドライバを選択していきます。
  13. メーカー・モデルを選択していきます。リストの中にプリンタが掲載されていればラッキー。掲載されていない場合は、一工夫 必要です。
  14. プリンタのメーカー・モデルを選択が終わったら、「プリンターの追加」を選択
  15. この後、プリンタの初期設定値を入力して行く画面になっていきます。
  16. おおまかに言ってしまうと、この状態でプリンタの共有はできています。プリンタをWindowsから共有するとき、https://サーバアドレス:631/printers/プリンタ名を指定すれば繋がります。

CUPSへプリンタドライバ(Linux用)を追加する

各種プリンタードライバをインストールしていきます。手元にあるプリンタを片っ端から接続してみました。

hp

  1. HP Linux Imaging and Printingにアクセス。
  2. 「Download HPLIP」を選択


    Step 1: Select Distribution

    Linuxのディストリビューションを選択。今回はRed Hat Enterprise Linux

    Step 2: Select Version

    バージョン系統を選択。7.0

    Step 3: Select Printer Type

    プリンタのシリーズを選択。Officejet/Officejet Pro

    Step 4: Select Printer Model

    プリンタの機種を選択。HP Officejet 7000 Wide Format Printer -- e809a

    Step 5: Click Next

    次へ

  3. HPLIP3のダウンロード。「包括ドライバーパックのようなものがあるので、そちらを使ってね」とのこと。

  4. 「NEXT >>」を選択


    Step 6: Select Processor

    アーキテクチャーを選択

    Step 7: License Agreement

    ライセンスに同意しますか?

  5. 同意してダウンロード。

  6. ダウンロードしたパッケージをインストールする。

  7. # rpm -Uvh hplip-3.16.2_rhel-7.0.x86_64.rpm
    エラー: 依存性の欠如:
        libnetsnmp.so.31()(64bit) は hplipfull-3.16.2-0.x86_64 に必要とされています
        libsane.so.1()(64bit) は hplipfull-3.16.2-0.x86_64 に必要とされています
    
  8. パッケージが足りてないのでインストール。

  9. # yum install libsane-hpaio net-snmp-libs
    # rpm -Uvh hplip-3.16.2_rhel-7.0.x86_64.rpm
    準備しています...              ################################# [100%]
        ファイル /etc/hp/hplip.conf (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-common-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/share/hplip/data (パッケージ hplipfull-3.16.2-0.x86_64 か ら) は、パッケージ hplip-common-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/share/hplip/data/models (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-common-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/share/hplip/data/models/models.dat (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-common-3.13.7-6.el7.x86_64 からのファ イルと競合しています。
        ファイル /usr/lib64/libhpip.so.0.0.1 (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からのファイルと競合して います。
        ファイル /usr/lib64/libhpmud.so.0.0.6 (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/lib64/python2.7/site-packages/cupsext.so (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からの ファイルと競合しています。
        ファイル /usr/lib64/python2.7/site-packages/hpmudext.so (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/lib64/python2.7/site-packages/pcardext.so (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からのファイルと競合しています。
        ファイル /usr/lib64/python2.7/site-packages/scanext.so (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ hplip-libs-3.13.7-6.el7.x86_64 からの ファイルと競合しています。
        ファイル /usr/lib64/sane/libsane-hpaio.so.1.0.0 (パッケージ hplipfull-3.16.2-0.x86_64 から) は、パッケージ libsane-hpaio-3.13.7-6.el7.x86_64 からのファ イルと競合しています。
    
  10. 競合しまくり。パッケージを削除していく。

  11. # yum remove libsane-hpaio
    # yum remove hplip-libs
    # yum remove hplip-common
    
  12. 再度、パッケージをインストール。

  13. # rpm -Uvh hplip-3.16.2_rhel-7.0.x86_64.rpm
    準備しています...              ################################# [100%]
    更新中 / インストール中...
    1:hplipfull-3.16.2-0               ################################# [100%]
    
  14. 以上。

Epson

  1. ドライバーダウンロードにアクセス。
  2. 型番を入れて、OSを選択、検索。
  3. 検索結果が出てくるので「ダウンロード」を選択。
  4. 「エプソンのソフトウエア使用許諾契約」に同意しましょう。
  5. アーキテクチャーにあったドライバーをダウンロード。CentOSのx86_64で使用するため、epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpmを選択。
  6. ダウンロードしたパッケージをインストールする。
  7. # rpm -Uvh epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpm
    警告: epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 8aa65d56: NOKEY
    エラー: 依存性の欠如:
        lsb >= 3.2 は epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64 に必要と されています
    
  8. パッケージが足りてないのでインストール。

  9. # yum install lsb
    
  10. 再度、パッケージをインストール。

  11. # rpm -Uvh epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpm
    警告: epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 8aa65d56: NOKEY
    準備しています...              ################################# [100%]
    更新中 / インストール中...
    1:epson-px-h7000-h9000-series-1.1.0################################# [100%]
    
  12. 以上。

スター精密

  1. スター製品 サポートデータベースにアクセス。
  2. 製品カテゴリ, シリーズ名, 機種名, インターフェース, OSを選択
  3. 推奨ドライバーが表示されるので、ダウンロード。
  4. ダウンロードしたパッケージをインストールする。
# rpm -Uvh starcupsdrv-3.5.0-1.i386.rpm
エラー: 依存性の欠如:
        libc.so.6 は starcupsdrv-3.5.0-1.i386 に必要とされています
        libc.so.6(GLIBC_2.0) は starcupsdrv-3.5.0-1.i386 に必要とされています
        libdl.so.2 は starcupsdrv-3.5.0-1.i386 に必要とされています
        libdl.so.2(GLIBC_2.0) は starcupsdrv-3.5.0-1.i386 に必要とされています
        libdl.so.2(GLIBC_2.1) は starcupsdrv-3.5.0-1.i386 に必要とされています
  1. パッケージ足りないパターン。追加していく。
# yum install glibc-2.17-106.el7_2.4.i686
  1. 追加後、足りないものがまだある。
# rpm -Uvh starcupsdrv-3.5.0-1.i386.rpm
準備しています...              ################################# [100%]
ls: /usr/lib/libcups.so* にアクセスできません: そのようなファイルやディレクトリ はありません
required library libcups.so not available
エラー: %pre(starcupsdrv-3.5.0-1.i386) スクリプトの実行に失敗しました。終了ステ ータス 1
エラー: starcupsdrv-3.5.0-1.i386: インストール 失敗
  1. 更に追加
# yum install cups-devel
# rpm -Uvh starcupsdrv-3.5.0-1.i386.rpm
準備しています...              ################################# [100%]
ls: /usr/lib/libcups.so* にアクセスできません: そのようなファイルやディレクトリ はありません
required library libcups.so not available
エラー: %pre(starcupsdrv-3.5.0-1.i386) スクリプトの実行に失敗しました。終了ステ ータス 1
エラー: starcupsdrv-3.5.0-1.i386: インストール 失敗
  1. アーキテクチャーの違いで、cups-devel.i686が必要らしい。
# yum install cups-devel.i686
# rpm -Uvh starcupsdrv-3.5.0-1.i386.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:starcupsdrv-3.5.0-1              ################################# [100%]
  1. 以上。

現状

hpの大量のプリンタドライバが選べるようになりました。

Epsonのプリンタドライバが選べるようになりました。

スター精密のプリンタドライバが選べるようになりました。

Samba編に続く。

参考