目標
- プリンタはCUPSで管理する。
- Samba経由でプリンタを共有する。
- 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
前準備
-
yum update
初期インストールされている各種パッケージのアップデート。 -
yum install epel-release
-
yum install wget
-
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)
- ブラウザを開いて
http://サーバアドレス:631
にアクセス。
- 管理者向けの「プリンターとクラスの追加」を選択。
- 「プリンターの追加」を選択。
- そのままアクセスすると怒られます。
- 改めて、表示されているアドレスを選択。
- 改めて、「プリンターの追加」を選択。
- rootアカウント情報が必要になるので入力。
- プリンターの追加。プリンタに接続しているポートを選択。
- 大抵の場合、USB接続されたプリンタかネットワーク経由でつなげるプリンタのどちらかになると思います。とりあえず、「インターネット印刷プロトコル (ipp) 」を選択。
- プリンタの接続方法を記述します。
ここが鬼門。どの方法でつなげるか悩むことになります。Windowsから使えるプリンタの場合だと、socket://プリンタのアドレス:9100
のパターンで、うまくいくことが多かったです。
- 新しいプリンターの追加をします。
- 名前
- プリンタ名。共有時、この名前が使われます。
- 説明
- プリンタの説明。
- 場所
- プリンタの場所。
- 接続
- 前のページで設定した接続方式
- 共有
- このプリンターを共有する。共有したいのでチェックをON
CUPSへプリンタドライバ(Linux用)を追加する
各種プリンタードライバをインストールしていきます。手元にあるプリンタを片っ端から接続してみました。
hp
- HP Linux Imaging and Printingにアクセス。
- 「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
- 次へ
- Step 6: Select Processor
- アーキテクチャーを選択
- Step 7: License Agreement
- ライセンスに同意しますか?
- パッケージが足りてないのでインストール。
# 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 からのファ イルと競合しています。
- 競合しまくり。パッケージを削除していく。
# yum remove libsane-hpaio
# yum remove hplip-libs
# yum remove hplip-common
- 再度、パッケージをインストール。
# rpm -Uvh hplip-3.16.2_rhel-7.0.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:hplipfull-3.16.2-0 ################################# [100%]
- 以上。
Epson
- ドライバーダウンロードにアクセス。
- 型番を入れて、OSを選択、検索。
- 検索結果が出てくるので「ダウンロード」を選択。
- 「エプソンのソフトウエア使用許諾契約」に同意しましょう。
- アーキテクチャーにあったドライバーをダウンロード。CentOSのx86_64で使用するため、
epson-px-h7000-h9000-series-1.1.0-1lsb3.2.x86_64.rpm
を選択。 - ダウンロードしたパッケージをインストールする。
# 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 に必要と されています
- パッケージが足りてないのでインストール。
# yum install lsb
- 再度、パッケージをインストール。
# 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%]
- 以上。
スター精密
- スター製品 サポートデータベースにアクセス。
- 製品カテゴリ, シリーズ名, 機種名, インターフェース, OSを選択
- 推奨ドライバーが表示されるので、ダウンロード。
- ダウンロードしたパッケージをインストールする。
# 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 に必要とされています
- パッケージ足りないパターン。追加していく。
# yum install glibc-2.17-106.el7_2.4.i686
- 追加後、足りないものがまだある。
# 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: インストール 失敗
- 更に追加
# 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: インストール 失敗
- アーキテクチャーの違いで、
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%]
- 以上。