Cups-2.4.7

Cups の概要

汎用 Unix 印刷システム (The Common Unix Printing System; CUPS) は、プリントスプーラーであり関連ユーティリティを含みます。 これは "インターネット印刷プロトコル" ("Internet Printing Protocol") に準拠するもので、ほとんどの PostScript プリンターやラスタープリンターに対して印刷サービスを提供します。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

Cups の依存パッケージ

Required

GnuTLS-3.8.2

推奨

任意

Avahi-0.8, libpaper-2.1.2, MIT Kerberos V5-1.21.2, PHP-8.3.0, and Python-2.7.18

Required (インストール後)

cups-filters-2.0.0

Optional (Postinstall)

Gutenprint-5.3.4 and hplip (HP printers)

カーネルの設定

[注記]

注記

There used to be a conflict between the Cups libusb backend and the usblp kernel driver. This is no longer the case and cups will work with both of these enabled.

If you want to use the kernel usblp driver (for example, if you wish to use escputil from Gutenprint-5.3.4) enable the following options in your kernel configuration and recompile the kernel:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

If you have a parallel printer, enable the following options in your kernel configuration and recompile the kernel:

Device Drivers --->
  <*/M> Parallel port support --->                                     [PARPORT]
    <*/M> PC-style hardware                                         [PARPORT_PC]
  Character devices --->
    <*/M> Parallel printer support                                     [PRINTER]

Cups のインストール

You will need to add an lp user, as Cups will create some files owned by this user. (The lp user is the default used by Cups, but may be changed to a different user by passing a parameter to the configure script.) Use the following command as the root user:

useradd -c "Print Service User" -d /var/spool/cups -g lp -s /bin/false -u 9 lp

You will also need a dedicated group that will contain users allowed to do Cups administrative tasks. Add the group by running the following command as the root user:

groupadd -g 19 lpadmin

If you want to add a user to the Cups administrative group, run the following command as the root user:

usermod -a -G lpadmin <username>

If you didn't install xdg-utils-1.1.3, use the following sed to change the default browser that will be used to access the Cups web interface:

sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in

Replace firefox with the web browser of your choice.

Build Cups by running the following commands:

./configure --libdir=/usr/lib            \
            --with-rundir=/run/cups      \
            --with-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.7 &&
make

To test the results, issue: LC_ALL=C make -k check. An already active graphical session with bus address is necessary to run the tests. Make sure that there is not other instance of Cups running, otherwise at least 4 tests will fail with "address in use".

root ユーザーになって以下を実行します。

make install &&
ln -svnf ../cups/doc-2.4.7 /usr/share/doc/cups-2.4.7

Create a basic Cups client configuration file by running the following command as the root user:

echo "ServerName /run/cups/cups.sock" > /etc/cups/client.conf
[注記]

注記

This package installs icon files into the /usr/share/icons/hicolor hierarchy and you can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme. To perform the update you must have GTK+-3.24.38 installed and issue the following command as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor

コマンド説明

--with-rundir=/run/cups: This switch prevents the package from referring to the deprecated /var/run directory.

--with-system-groups=lpadmin: This switch ensures that only lpadmin will be used as the Cups administrative group.

--disable-libusb: Use this switch if you have installed libusb-1.0.26, but wish to use the kernel usblp driver.

--enable-libpaper: Use this switch if you have installed libpaper and wish to use it with Cups.

Configuring Cups

Config Files

/etc/cups/*

Configuration Information

Normally, printers are set up via a web browser. The Cups server will normally connect via the url http://localhost:631. From there printers, print jobs, and the server configuration can be set up and managed. Remote system administration can also be set up. Configuration can also be done from the command line via the lpadmin, lpoptions, and lpstat commands.

Configuration of Cups is dependent on the type of printer and can be complex. Generally, PostScript printers are easier. For detailed instructions on configuration and use of Cups, see https://www.cups.org/documentation.html.

For non-PostScript printers to print with Cups, you need to install ghostscript-10.02.1 to convert PostScript to raster images and a driver (e.g. from Gutenprint-5.3.4) to convert the resulting raster images to a form that the printer understands. Foomatic drivers use ghostscript-10.02.1 to convert PostScript to a printable form directly, but this is considered suboptimal by Cups developers.

Linux PAM Configuration

If CUPS has been built with Linux PAM support, you need to create a PAM configuration file to get it working correctly with BLFS.

Issue the following command as the root user to create the configuration file for Linux PAM:

cat > /etc/pam.d/cups << "EOF"
# Begin /etc/pam.d/cups

auth    include system-auth
account include system-account
session include system-session

# End /etc/pam.d/cups
EOF

Systemd Unit

To start the cupsd daemon when something tries to access it, enable the previously installed systemd units by running the following command as the root user:

systemctl enable cups

パッケージ構成

インストールプログラム: cancel, cupsaccept, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestppd, ippeveprinter, ippfind, ipptool, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge, ppdpo
インストールライブラリ: libcupsimage.so, libcups.so
インストールディレクトリ: /etc/cups, /usr/{include,lib,share}/cups, /usr/share/doc/cups-2.4.7, /run/cups, /var/{cache,log,spool}/cups

概略説明

cancel

cancels existing print jobs from the print queues

cupsaccept

accept jobs sent to a destination

cups-config

is a Cups program configuration utility

cupsctl

updates or queries the cupsd.conf file for a server

cupsd

is the scheduler for the Common Unix Printing System

cupsdisable

stop printers and classes

cupsenable

start printers and classes

cupsfilter

is a front-end to the Cups filter subsystem which allows you to convert a file to a specific format

cupsreject

reject jobs sent to a destination

cupstestppd

tests the conformance of PPD files

ippeveprinter

is an IPP Everywhere printer for CUPS

ippfind

finds Internet Printing Protocol printers

ipptool

sends IPP requests to the specified URI and tests and/or displays the results

lp

submits files for printing or alters a pending job

lpadmin

configures printer and class queues provided by Cups

lpc

provides limited control over printer and class queues provided by Cups

lpinfo

lists the available devices or drivers known to the Cups server

lpmove

moves the specified job to a new destination

lpoptions

displays or sets printer options and defaults

lpq

shows the current print queue status on the named printer

lpr

submits files for printing

lprm

cancels print jobs that have been queued for printing

lpstat

displays status information about the current classes, jobs, and printers

ppdc

compiles PPDC source files into one or more PPD files

ppdhtml

reads a driver information file and produces a HTML summary page that lists all of the drivers in a file and the supported options

ppdi

imports one or more PPD files into a PPD compiler source file

ppdmerge

merges two or more PPD files into a single, multi-language PPD file

ppdpo

extracts UI strings from PPDC source files and updates either a GNU gettext or Mac OS X strings format message catalog source file for translation

libcups.so

contains the Cups API functions