--- authors: - author: 'Chess Griffin' email: chess@chessgriffin.com description: 'Como instalar e usar o CUPS no FreeBSD' tags: ["CUPS", "FreeBSD", "Guide", "configuration", "introduction"] title: 'CUPS no FreeBSD' trademarks: ["freebsd", "general"] --- = CUPS no FreeBSD :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/cups/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Resumo Um artigo sobre como configurar o CUPS no FreeBSD. ''' toc::[] [[printing-cups]] == Uma introdução ao Common Unix Printing System (CUPS) O CUPS, o Common UNIX Printing System, fornece uma camada de impressão portátil para sistemas operacionais baseados em UNIX(R). Ele foi desenvolvido pela Easy Software Products para promover uma solução padrão de impressão para todos os fornecedores e usuários de UNIX(R). O CUPS utiliza o Protocolo de Impressão pela Internet (IPP) como base para gerenciar trabalhos e filas de impressão. Os protocolos Line Printer Daemon (LPD), Server Message Block (SMB) e AppSocket (também conhecido como JetDirect) também são suportados, porém com funcionalidade reduzida. O CUPS adiciona opções de visualização de impressoras em rede e impressão baseada em PostScript Printer Description (PPD) para suportar as necessidades de impressão do mundo real no ambiente UNIX(R). Como resultado, o CUPS é ideal para compartilhar e acessar impressoras em ambientes mistos de FreeBSD, Linux(R), Mac OS(R) X ou Windows(R). O site principal do CUPS é http://www.cups.org/[http://www.cups.org/]. [[printing-cups-install]] == Instalando o CUPS Print Server Para instalar o CUPS usando um binário pré-compilado, execute o seguinte comando em um terminal como root: [source, shell] .... # pkg install cups .... Outros pacotes opcionais, mas recomendados, são o package:print/gutenprint[] e o package:print/hplip[], ambos adicionando drivers e utilitários para uma variedade de impressoras. Após a instalação, os arquivos de configuração do CUPS podem ser encontrados no diretório [.filename]#/usr/local/etc/cups#. [[printing-cups-configuring-server]] == Configurando o CUPS Print Server Depois da instalação, alguns arquivos devem ser editados para configurar o servidor CUPS. Primeiramente, crie ou edite, caso necessário, o arquivo [.filename]#/etc/devfs.rules# e adicione a seguinte informação para definir as permissões apropriadas em todos os dispositivos de impressora potenciais e associar as impressoras ao grupo de usuários `cups`: [.programlisting] .... [system=10] add path 'unlpt*' mode 0660 group cups add path 'ulpt*' mode 0660 group cups add path 'lpt*' mode 0660 group cups add path 'usb/X.Y.Z' mode 0660 group cups .... [NOTE] ==== Observe que _X_, _Y_ e _Z_ devem ser substituídos pelo dispositivo USB de destino listado no diretório [.filename]#/dev/usb# que corresponde à impressora. Para encontrar o dispositivo correto, examine a saída do man:dmesg[8], onde [.filename]#ugenX.Y# lista o dispositivo da impressora, que é um link simbólico para um dispositivo USB em [.filename]#/dev/usb#. ==== Em seguida, adicione duas linhas no arquivo [.filename]#/etc/rc.conf# da seguinte maneira: [.programlisting] .... cupsd_enable="YES" devfs_system_ruleset="system" .... Essas duas entradas irão iniciar o servidor de impressão CUPS na inicialização e invocar a regra local do devfs criada acima, respectivamente. Para habilitar a impressão CUPS em determinados clientes Microsoft(R) Windows(R), a linha abaixo deve ser descomentada nos arquivos [.filename]#/usr/local/etc/cups/mime.types# e [.filename]#/usr/local/etc/cups/mime.convs#: [.programlisting] .... application/octet-stream .... Uma vez que as alterações tenham sido feitas, os sistemas man:devfs[8] e CUPS devem ser reiniciados, seja reiniciando o computador ou executando os seguintes dois comandos em um terminal root: [source, shell] .... # service devfs restart # service cupsd restart .... [[printing-cups-configuring-printers]] == Configurando Impressoras no CUPS Print Server Depois que o sistema CUPS foi instalado e configurado, o administrador pode começar a configurar as impressoras locais conectadas ao servidor de impressão CUPS. Esta parte do processo é muito semelhante, senão idêntica, à configuração de impressoras CUPS em outros sistemas operacionais baseados em UNIX(R), como uma distribuição Linux(R). O principal meio para gerenciar e administrar o servidor CUPS é através da interface baseada na web, que pode ser encontrada ao iniciar um navegador e inserir o endereço http://localhost:631[http://localhost:631] na barra de endereço do navegador. Se o servidor CUPS estiver em outra máquina na rede, substitua o endereço IP local do servidor por `localhost`. A interface web do CUPS é bastante autoexplicativa, pois há seções para gerenciar impressoras e trabalhos de impressão, autorizar usuários e muito mais. Além disso, no lado direito da tela de administração há várias caixas de seleção que permitem fácil acesso às configurações comumente alteradas, como compartilhar impressoras conectadas ao sistema, permitir a administração remota do servidor CUPS e permitir que os usuários tenham acesso e privilégios adicionais às impressoras e trabalhos de impressão. Adicionar uma impressora geralmente é tão fácil quanto clicar em "Adicionar Impressora" na tela de Administração da interface web do CUPS, ou clicar em um dos botões "Novas Impressoras Encontradas" também na tela de Administração. Quando for exibida a caixa de seleção "Dispositivo", simplesmente selecione a impressora local desejada e continue o processo. Se você tiver adicionado os pacotes package:print/gutenprint-cups[] ou package:print/hplip[], conforme referido acima, drivers de impressão adicionais estarão disponíveis nas telas subsequentes que podem fornecer mais estabilidade ou recursos. [[printing-cups-clients]] == Configurando clientes CUPS Depois de configurar o servidor CUPS e adicionar as impressoras e publicá-las na rede, o próximo passo é configurar os clientes, ou seja, as máquinas que vão acessar o servidor CUPS. Se você tem um único desktop que atua como servidor e cliente, muitas dessas informações podem não ser necessárias. [[printing-cups-clients-unix]] === UNIX(R) Clients O CUPS também precisará ser instalado em seus clientes UNIX(R). Uma vez que o CUPS está instalado nos clientes, as impressoras CUPS compartilhadas na rede muitas vezes são automaticamente descobertas pelos gerenciadores de impressoras de vários ambientes de desktops, como o GNOME ou o KDE. Alternativamente, é possível acessar a interface CUPS local na máquina cliente em http://localhost:631[http://localhost:631] e clicar em "Adicionar Impressora" na seção de Administração. Ao ser apresentado com a caixa de seleção "Dispositivo", basta selecionar a impressora CUPS em rede, se ela foi descoberta automaticamente, ou selecionar `ipp` ou `http` e inserir o URI IPP ou HTTP da impressora CUPS em rede, geralmente em uma das duas seguintes sintaxes: [.programlisting] .... ipp://server-name-or-ip/printers/printername .... [.programlisting] .... http://server-name-or-ip:631/printers/printername .... Se os clientes CUPS tiverem dificuldade para encontrar outras impressoras CUPS compartilhadas na rede, às vezes é útil adicionar ou criar um arquivo [.filename]#/usr/local/etc/cups/client.conf# com uma única entrada da seguinte maneira: [.programlisting] .... ServerName server-ip .... Nesse caso, o _server-ip_ deve ser substituído pelo endereço IP local do servidor CUPS na rede. [[printing-cups-clients-windows]] === Windows(R) Clients Versões do Windows(R) anteriores ao XP não tinham a capacidade de se conectar em rede com impressoras baseadas em IPP. No entanto, as versões do Windows(R) XP e posteriores têm essa capacidade. Portanto, adicionar uma impressora CUPS nessas versões do Windows(R) é bastante fácil. Geralmente, o administrador do Windows(R) executa o `assistente de adição de impressora` do Windows(R), seleciona `Impressora de rede` e, em seguida, insere a URI no seguinte formato: [.programlisting] .... http://server-name-or-ip:631/printers/printername .... Se você tiver uma versão mais antiga do Windows(R) sem suporte nativo de impressão IPP, o meio geral de conexão com uma impressora CUPS é usar o package:net/samba416[] e CUPS juntos, o que é um tópico fora do escopo deste capítulo. [[printing-cups-troubleshooting]] == Resolução de Problemas do CUPS As dificuldades com o CUPS geralmente estão relacionadas a permissões. Primeiro, verifique novamente as permissões do man:devfs[8] conforme descrito acima. Em seguida, verifique as permissões reais dos dispositivos criados no sistema de arquivos. Também é útil garantir que seu usuário seja um membro do grupo `cups`. Se as caixas de seleção de permissões na seção de Administração da interface web do CUPS não parecerem estar funcionando, outra solução pode ser fazer backup manualmente do arquivo de configuração principal do CUPS localizado em [.filename]#/usr/local/etc/cups/cupsd.conf# e editar as várias opções de configuração e experimentar diferentes combinações de opções de configuração. Um exemplo de arquivo [.filename]#/usr/local/etc/cups/cupsd.conf# para teste é listado abaixo. Observe que este arquivo de exemplo [.filename]#cupsd.conf# sacrifica a segurança para facilitar a configuração; assim que o administrador se conectar com sucesso ao servidor CUPS e configurar os clientes, é aconselhável revisar este arquivo de configuração e começar a restringir o acesso. [.programlisting] .... # Log general information in error_log - change "info" to "debug" for # troubleshooting... LogLevel info # Administrator user group... SystemGroup wheel # Listen for connections on Port 631. Port 631 #Listen localhost:631 Listen /var/run/cups.sock # Show shared printers on the local network. Browsing On BrowseOrder allow,deny #BrowseAllow @LOCAL BrowseAllow 192.168.1.* # change to local LAN settings BrowseAddress 192.168.1.* # change to local LAN settings # Default authentication type, when authentication is required... DefaultAuthType Basic DefaultEncryption Never # comment this line to allow encryption # Allow access to the server from any machine on the LAN Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings # Allow access to the admin pages from any machine on the LAN #Encryption Required Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings # Allow access to configuration files from any machine on the LAN AuthType Basic Require user @SYSTEM Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings # Set the default printer/job policies... # Job-related operations must be done by the owner or an administrator... Require user @OWNER @SYSTEM Order deny,allow # All administration operations require an administrator to authenticate... AuthType Basic Require user @SYSTEM Order deny,allow # Only the owner or an administrator can cancel or authenticate a job... Require user @OWNER @SYSTEM Order deny,allow Order deny,allow ....