Cups-2.4.10

Introdução ao Cups

O Common Unix Printing System (CUPS) é um aplicativo de gerenciamento de fila de documentos de impressão e utilitários associados. É baseado no "Internet Printing Protocol" e fornece serviços de impressão para a maioria das impressoras PostScript e raster.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

Dependências do Cups

Exigidas

GnuTLS-3.8.7.1

Recomendadas

Opcionais

Avahi-0.8, libpaper-2.2.5, MIT Kerberos V5-1.21.3, PHP-8.3.10 e Python2

Exigidas (pós instalação)

cups-filters-2.0.1

Opcionais (pós instalação)

Gutenprint-5.3.4 e hplip (impressoras HP)

Configuração do Núcleo

[Nota]

Nota

Costumava existir um conflito entre a estrutura de retaguarda libusb do Cups e o controlador de núcleo usblp. Esse não mais é o caso e o CUPS funcionará com ambos habilitados.

Se você quiser usar o controlador usblp do núcleo (por exemplo, se desejar usar o escputil oriundo do Gutenprint-5.3.4), habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

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

Se você tiver uma impressora paralela, habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

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

Instalação do Cups

Você precisará adicionar um(a) usuário(a) lp, pois o Cups criará alguns arquivos de propriedade desse usuário. (O(A) usuário(a) lp é o padrão usado pelo Cups, mas pode ser mudado para um(a) usuário(a) diferente passando-se um parâmetro para o conjunto de comandos sequenciais configure). Use o seguinte comando como o(a) usuário(a) root:

useradd -c "Usuário(a) do Serviço de Impressão" -d /var/spool/cups -g lp -s /bin/false -u 9 lp

Você também precisará de um grupo dedicado que conterá usuários(as) autorizados(as) a realizar tarefas administrativas do Cups. Adicione o grupo executando o seguinte comando como o(a) usuário(a) root:

groupadd -g 19 lpadmin

Se você deseja adicionar um(a) usuário(a) ao grupo administrativo do Cups, execute o seguinte comando como o(a) usuário(a) root:

usermod -a -G lpadmin <nome_usuário(a)>

Se você não instalou o xdg-utils-1.2.1, use o seguinte sed para mudar o navegador padrão que será usado para acessar a interface web do Cups:

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

Substitua firefox pelo navegador da web da tua escolha.

Construa o Cups executando os seguintes comandos:

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

Para testar os resultados, emita: LC_ALL=C make -k check. Uma sessão gráfica já ativa com endereço de barramento é necessária para se executar os testes. Certifique-se de que não exista outra instância do Cups executando, caso contrário, pelo menos quatro (4) testes falharão com "address in use".

Agora, como o(a) usuário(a) root:

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

Remova o conjunto fornecido de comandos sequenciais de inicialização, o qual é incompatível com o LFS:

rm -rf /tmp/cupsinit

Crie um arquivo de configuração básica de cliente do Cups executando o seguinte comando como o(a) usuário(a) root:

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

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme. Para realizar a atualização, você precisa ter o GTK+-3.24.43 instalado e emitir o seguinte comando como o(a) usuário(a) root:

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

Explicações do Comando

--with-rcdir=/tmp/cupsinit: Essa chave informa ao processo de construção para instalar o conjunto fornecido de comandos sequenciais de inicialização em /tmp em vez de /etc/rc.d.

--with-rundir=/run/cups: Essa chave impede o pacote de referenciar o diretório obsoleto /var/run.

--with-system-groups=lpadmin: Essa chave garante que somente o lpadmin será usado como o grupo administrativo do Cups .

--disable-libusb: Use essa chave se você tiver instalado o libusb-1.0.27, mas desejar usar o controlador usblp do núcleo.

--enable-libpaper: Use essa chave se você tiver instalado a libpaper e desejar usá-lo com o Cups.

Configurando o Cups

Arquivos de Configuração

/etc/cups/*

Informação de Configuração

Normalmente, impressoras são configuradas por intermédio de um navegador da web. O servidor Cups normalmente se conectará por meio da URL http://localhost:631. A partir daí, impressoras, tarefas de impressão e a configuração do servidor podem ser configurados(as) e gerenciados(as). A administração remota do sistema também pode ser configurada. A configuração também pode ser feita a partir da linha de comando por meio dos comandos lpadmin, lpoptions e lpstat.

A configuração do Cups é dependente do tipo de impressora e pode ser complexa. Geralmente, as impressoras PostScript são mais fáceis. Para instruções detalhadas acerca da configuração e uso do Cups, veja-se https://www.cups.org/documentation.html.

Para impressoras não PostScript imprimirem com o Cups, você precisa instalar o ghostscript-10.03.1 para converter PostScript em imagens raster; e um controlador (por exemplo, proveniente de Gutenprint-5.3.4) para converter as imagens raster resultantes em um formato que a impressora entenda. Os controladores Foomatic usam o ghostscript-10.03.1 para converter PostScript diretamente em um formato imprimível, mas isso é considerado abaixo do ideal pelos(as) desenvolvedores(as) do Cups.

Configuração do Linux PAM

Se o CUPS tiver sido construído com suporte ao Linux PAM, você precisa criar um arquivo de configuração do PAM para fazê-lo funcionar corretamente com o BLFS.

Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM:

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

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

# Termina /etc/pam.d/cups
EOF

Conjunto de Comandos Sequenciais de Inicialização

Se você quiser que o serviço de impressão Cups inicie automaticamente quando o sistema for inicializado, instale o conjunto de comandos sequenciais init incluído no pacote blfs-bootscripts-20240416:

make install-cups

Conteúdo

Aplicativos Instalados: 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 e ppdpo
Bibliotecas Instaladas: libcupsimage.so e libcups.so
Diretórios Instalados: /etc/cups, /usr/{include,lib,share}/cups, /usr/share/doc/cups-2.4.10, /run/cups e /var/{cache,log,spool}/cups

Descrições Curtas

cancel

cancela tarefas de impressão existentes nas filas de impressão

cupsaccept

aceita tarefas enviadas para um destino

cups-config

é um utilitário de configuração do aplicativo Cups

cupsctl

atualiza ou consulta o arquivo cupsd.conf para um servidor

cupsd

é o agendador do Common Unix Printing System

cupsdisable

para impressoras e classes

cupsenable

inicia impressoras e classes

cupsfilter

é uma interface para o subsistema de filtros do Cups que te permite converter um arquivo para um formato específico

cupsreject

rejeita tarefas enviadas para um destino

cupstestppd

testa a conformidade de arquivos PPD

ippeveprinter

é uma impressora IPP Everywhere para CUPS

ippfind

encontra impressoras de protocolo de impressão da Internet

ipptool

envia solicitações IPP para o URI especificado e testa e (ou) exibe os resultados

lp

submete arquivos para impressão ou altera uma tarefa pendente

lpadmin

configura filas de impressoras e classes fornecidas pelo Cups

lpc

fornece controle limitado sobre filas de impressoras e classes fornecidas pelo Cups

lpinfo

lista os dispositivos ou controladores disponíveis conhecidos pelo servidor Cups

lpmove

move a tarefa especificada para um novo destino

lpoptions

exibe ou configura opções e padrões da impressora

lpq

mostra a situação atual da fila de impressão na impressora nomeada

lpr

submete arquivos para impressão

lprm

cancela tarefas de impressão que tenham sido enfileiradas para impressão

lpstat

exibe informações de situação acerca das atuais classes, tarefas e impressoras

ppdc

compila arquivos fonte PPDC em um ou mais arquivos PPD

ppdhtml

lê um arquivo de informações do controlador e produz uma página HTML de resumo que lista todos os controladores em um arquivo e as opções suportadas

ppdi

importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD

ppdmerge

mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue

ppdpo

extrai sequências de caracteres de UI a partir de arquivos fonte PPDC e atualiza um arquivo fonte de catálogo de mensagens em formato de sequências de caracteres ou GNU gettext ou Mac OS X para tradução

libcups.so

contém as funções da API do Cups