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

スポンサーリンク

スポンサーリンク


関連コンテンツ


この記事をシェアする

3 件のコメント:

  1. 普段使いのArchLinuxさん。お元気ですか。
    久し振りに見たらArchlinuxのCUPS関連の記事が出ていたので、拝読しました。
    org.cups.cups.dに成ってから随分と月日が経ったような気がします。
    あの時、自分はUbuntuからFedora、Archlinuxと段々とディープな方面のLinuxに興味が湧き、よく分からずにArchLinuxをインストールしていました。
    その時、プリンター設定で困りにっちもさっちも行かなくなった時に出会ったのが普段使いのArchLinuxさんでした。
    おかげで自分が描いたイラストを印刷出来ました。
    遅くなりましたが、感謝申し上げます。

    返信削除
    返信
    1. コメントいただき、ありがとうございました。また、以前の記事から読んでいただいており、大変うれしいです!
      「同じ不具合に出会って解決した」というコメントをいただけると、毎回仲間が増えた気がしてさらに励みになります。

      Linux経歴は、同じですね!自分もUbuntuで入門し、途中CentOSを少しいじった後、よく分からずArch Linuxをインストールして、今落ち着いています(笑)
      今でもGNOMEを使っているのは、Ubuntu時代の影響でしかないです。

      シンプルなディストリビューションを使うと、Linuxがどんなパッケージによって動いているのか勉強になりますね。
      Ubuntuでできて当たり前のことが、Arch Linuxだとできなくなる事態に、自分も何度も陥りました。
      そんな時は、Ubuntuを立ち上げてどんな設定になっているか、設定ファイルを漁って参考にしたりして…

      最近は、設定が落ち着いてきたのか不具合に陥り尽くしたのか、更新ネタが少なくなっていますが、たまに覗いていただければ幸いです。

      削除
  2. 普段使いのArchlinuxさん、丁寧な返信ありがとうございます。


    段々とディープなLinuxワールドに足を踏み入れたんですね。
    同じでビックリしました。
    私はFedoraを触っていたら安定してるって何だろうと気になり、CentOSをいじったりしてました。
    そのうちに、新しいパッケージを使いたくなってArchlinuxを使う事を覚えました。
    Archlinuxは様々な事を自分でしなければなりませんが、それがLinuxスキルを向上させてくれるキッカケに成りました。
    こうしてネットで調べてたり、マニュアルを読み込んだりする機会はUbuntuでは多少あれど、Archlinuxには敵いません。
    手間がかかるけど、愛しいLinuxディストロです。

    また何処かで詰まったら参考にします。
    季節の変わり目にお身体が触らない様ご自愛下さい。
    それでは失礼します。




    返信削除