2020年12月6日日曜日

CUPSのアップデートによりArch Linuxで印刷できなくなった時の対処法

CUPSのアップデートによりArch Linuxで印刷できなくなった
最近のCUPSのアップデートによりsystemdのサービス(デーモン)の名前が変更された。この名前の変更により、CUPSサービスの自動起動の再設定が必要となった。

もし、最近のArch Linuxのアップデート後に、プリンターが認識されなくなり印刷ができなくなった場合は、このアップデートが原因の可能性が高い。

この記事では、CUPSのアップデート後にすべき、CUPSのサービスの自動起動の再設定方法について解説する。印刷時にプロプライエタリなドライバを使用し、CUPSを使用していない環境では今回の対応は不要。


CUPSのアップデートについて
CUPSのアップデート(2.3.3-3 -> 1:2.3.3op1-1)により、CUPSのサービスの名前が変更となった。変更点については、CUPSのアップデート時に、以下のメッセージで説明されていた。

[2020-12-05T11:20:12+0900] [ALPM] upgraded cups (2.3.3-3 -> 1:2.3.3op1-1)
[2020-12-05T11:20:12+0900] [ALPM-SCRIPTLET] >>> Cups systemd socket and service files have been
[2020-12-05T11:20:12+0900] [ALPM-SCRIPTLET] >>> renamed by upstream decision. Please make sure
[2020-12-05T11:20:12+0900] [ALPM-SCRIPTLET] >>> to disable/reenable the services to your need.
[2020-12-05T11:20:12+0900] [ALPM-SCRIPTLET] >>> hint: "pacman -Ql cups | grep systemd" and
[2020-12-05T11:20:12+0900] [ALPM-SCRIPTLET] >>> "ls -lR /etc/systemd/ | grep cups" 

CUPSのサービスの名前は、以前はcupsだったが、その後org.cups.cupsdに変更になった経緯がある(Arch Linuxでプリンタが認識されなくなった (Can't see printer on Arch Linux) | 普段使いのArch Linux)。そしてこの度、再度cupsに戻ることとなった。

CUPSのサービスの状態を確認する
まず、CUPSアップデート後にシステムを再起動しておく。再起動後に、CUPSアップデート時に出てきたメッセージの通り、コマンドを実行してみる。

pacman -Ql cupsのコマンドにより、以下の通り、新しくインストールされたCUPSのサービスの名前がわかる。

$ pacman -Ql cups | grep systemd

cups /usr/lib/systemd/
cups /usr/lib/systemd/system/
cups /usr/lib/systemd/system/cups-lpd.socket
cups /usr/lib/systemd/system/cups-lpd@.service
cups /usr/lib/systemd/system/cups.path
cups /usr/lib/systemd/system/cups.service
cups /usr/lib/systemd/system/cups.socket

ls -lR --color /etc/systemd/のコマンドにより、systemdによりされていた古いCUPSのサービス名がわかる。--colorオプションにより赤文字で表示されているので、org.cups.cupsdの名前のリンクはリンク切れを起こしている。

$ ls -lR --color /etc/systemd/ | grep cups

lrwxrwxrwx 1 root root 43  4月 26  2017 org.cups.cupsd.path -> /usr/lib/systemd/system/org.cups.cupsd.path
lrwxrwxrwx 1 root root 46  4月 26  2017 org.cups.cupsd.service -> /usr/lib/systemd/system/org.cups.cupsd.service
lrwxrwxrwx 1 root root 45  4月 26  2017 org.cups.cupsd.socket -> /usr/lib/systemd/system/org.cups.cupsd.socket

CUPSのサービスの再起動の方法
これまでの確認で、CUPSが起動されなくなっていることがわかったので、古いCUPSの自動起動を停止し、新しいCUPSのサービスの自動起動を設定する。

まず、古いCUPSの自動起動を停止。

# systemctl disable org.cups.cupsd.service org.cups.cupsd.path org.cups.cupsd.socket

Removed /etc/systemd/system/printer.target.wants/org.cups.cupsd.service.
Removed /etc/systemd/system/multi-user.target.wants/org.cups.cupsd.path.
Removed /etc/systemd/system/sockets.target.wants/org.cups.cupsd.socket.

次に、新しいCUPSのサービスの自動起動を設定する。

# systemctl enable --now cups.service

Created symlink /etc/systemd/system/printer.target.wants/cups.service → /usr/lib/systemd/system/cups.service.
Created symlink /etc/systemd/system/sockets.target.wants/cups.socket → /usr/lib/systemd/system/cups.socket.
Created symlink /etc/systemd/system/multi-user.target.wants/cups.path → /usr/lib/systemd/system/cups.path.

最後に、CUPSが起動したか状態を確認しておく。

$ systemctl status cups

● cups.service - CUPS Scheduler
     Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; vendor preset: disabled)
     Active: active (running) since Sun 2020-12-06 16:54:57 JST; 1min 15s ago
TriggeredBy: ● cups.socket
             ● cups.path
       Docs: man:cupsd(8)
   Main PID: 16043 (cupsd)
     Status: "Scheduler is running..."
      Tasks: 1 (limit: 18811)
     Memory: 3.2M
     CGroup: /system.slice/cups.service
             └─16043 /usr/bin/cupsd -l

12月 06 16:54:56 Alpha systemd[1]: Starting CUPS Scheduler...
12月 06 16:54:57 Alpha systemd[1]: Started CUPS Scheduler.



参考:

[1][solved] Cups upgrade / wiki / installation messages / Pacman & Package Upgrade Issues / Arch Linux Forums

スポンサーリンク

スポンサーリンク


関連コンテンツ


この記事をシェアする

0 件のコメント:

コメントを投稿