Cups-2.4.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cups

Exigidas

GnuTLS-3.8.0

Recomendadas

Opcionais

Avahi-0.8, libpaper-1.1.24+nmu5, MIT Kerberos V5-1.20.1, PHP-8.2.3 e Python-2.7.18

Exigidas (pós instalação)

cups-filters-1.28.16

Opcionais (pós instalação)

Gutenprint-5.3.4 e hplip (impressoras HP)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cups

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  --->                          [CONFIG_USB_SUPPORT]
    <*/M>  OHCI HCD (USB 1.1) support            [CONFIG_USB_OHCI_HCD]
    <*/M>  UHCI HCD (most Intel and VIA) support [CONFIG_USB_UHCI_HCD]
    <*/M>  USB Printer support                   [CONFIG_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  --->    [CONFIG_PARPORT]
    <*/M> PC-style hardware            [CONFIG_PARPORT_PC]
  Character devices  --->
    <*/M> Parallel printer support     [CONFIG_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.1.3, 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-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.2 &&
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". Um teste, httpAddrGetList, é conhecido por falhar.

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

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

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+-2.24.33 ou GTK+-3.24.36 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

sed ... configure: Esse sed remove uma opção de compilador que não mais é suportada. Deixando essa mudança de fora, a compilação executará, mas um aviso acerca de uma opção inválida de aviso será emitido em cada invocação do compilador.

CC=gcc CXX=g++: Configure-as se você preferir usar o gcc em vez do clang, que agora é preferido pelo(a) desenvolvedor(a).

--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.26, 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.00.0 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.00.0 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

Unidade do systemd

Para iniciar o processo de segundo plano cupsd quando algo tentar acessá-lo, habilite as unidades do systemd instaladas anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable cups

Conteúdo

Aplicativos Instalados: cancel, cupsaccept, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestppd, ippeveprinter, 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.2 e /var/{cache,log,run,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

parar impressoras e classes

cupsenable

iniciar 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

rejeitar tarefas enviadas para um destino

cupstestppd

testa a conformidade de arquivos PPD

ippeveprinter

é uma impressora IPP Everywhere para CUPS

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