Como eu compartilho facilmente uma impressora CUPS no Linux?

1

Estou executando o Arch Linux em dois computadores. Eu tenho tentado compartilhar uma impressora USB que está conectada a um servidor, para que um computador cliente possa imprimir nela.

Seguindo as instruções que encontrei aqui link , executei os seguintes comandos no meu servidor para compartilhar minha impressora:

cupsctl --share-printers
lpadmin -p printer -o printer-is-shared=true

Isso permitiu ver a impressora na máquina do cliente através da interface web do CUPS, "List Available Printers". No entanto, quando adicionei a impressora, selecionei um PPD e tentei imprimir uma página de teste, recebi um erro

"Unable to locate printer "server_name.local"."

De acordo com este post que menciona mDNS, eu pensei que talvez seja porque eu tenha desabilitado systemd-resolved que quebra o nscd e causa outros problemas para mim. No entanto, quando iniciei no cliente e no servidor, ainda recebi o mesmo erro.

Quando editei /etc/cups/printers.conf para alterar "DeviceURI" para a impressora de

dnssd://name%20of%20local%20printer._ipp._tcp.local/cups?uuid=f7c17874-8003-30ee-40b0-7f21f5f107c3

para

lpd://server_name/name_of_printer_queue

e tentou imprimir uma página de teste, vi que uma conexão foi estabelecida, mas acabou recebendo um erro "A impressora está em uso".

Eu tentei criar uma nova impressora usando o recurso "Adicionar impressora & LPD / LPR host ou impressora" e tentei vários URIs de dispositivo seguindo os URIs em "Exemplos", como:

ipp://server_name:631/ipp/name_of_printer_queue

Isso resultou em erros como "A configuração da impressora está incorreta ou a impressora não existe mais". ou "Filtro falhou".

Acho que essa tecnologia funcionou em algum momento no passado. Como posso imprimir em outro servidor CUPS de forma confiável no Linux?

    
por Metamorphic 29.08.2018 / 23:54

2 respostas

1

Após as tentativas que acabei de descrever, notei que a parte inferior do URL link diz:

The most tedious method of configuring client machines is to configure each remote queue by hand using the lpadmin(8) command: lpadmin -p printer -E -v ipp://server/printers/printer -m everywhere

Eu tentei executar este comando para modificar a impressora que eu havia criado anteriormente por meio do botão "Localizar novas impressoras". Não foi nada tedioso, e consegui imprimir uma página de teste na impressora que saiu imediatamente.

    
por 29.08.2018 / 23:54
1

A pergunta é por que o CUPS não consegue resolver nomes .local, mas pode encontrar a impressora com ele.

O CUPS encontra a impressora de rede local com a ajuda de avahi / snmp. Isso fornece apenas as URLs para as impressoras.

Mas o CUPS nunca resolve o próprio nome do host. Dentro dele, eu uso o glibc (?) Para abrir um socket para o host.

Em seguida, envia o URL para o seu DNS. Mas o DNS não sabe ".local". Ele não é capaz ou não está configurado para conhecer esse domínio ".local" especial. Portanto, no seu caso, o DNS não pode resolver, retornar um erro e quebrá-lo.

Com a ajuda do gnu name service switch (nss), você pode fornecer extensões como nss-mdns (para cada ".local") ou libnss-winbind (para aquelas com o "hostname").

Meus problemas com xícaras e resolver nomes .local desapareceram depois que instalei o pacote nss-mdns + entradas para o switch.

    
por 19.10.2018 / 20:29

Tags