quinta-feira, 19 de dezembro de 2019

Impressora no Guix System

Instalar uma impressora no Guix System é diferente de outras distribuições Linux. Aqui você terá que ativar o serviço CUPS no shepherd, para isso você terá que alterar o config.scm do seu sistema para adicionar o serviço e os pacotes necessarios. Após feita as alterações, basta utilizar o comando

$ sudo -E guix system reconfigure /etc/config.scm

mas não se preocupe, o guix não fará um procedimento de reconfiguração do sistema inteiro, o comando é inteligente para saber que só é necessario instalar os pacotes do serviço e ativar o CUPS.

Após fazer as alterações, o /etc/config.scm ficou dessa forma.

pablo@PabloGuix ~$ cat /etc/config.scm
;; This is an operating system configuration generated
;; by the graphical installer.

(use-modules (gnu))
(use-modules (gnu services cups))
(use-modules (gnu packages cups))
(use-service-modules desktop networking ssh xorg cups)

(operating-system
  (locale "pt_BR.utf8")
  (timezone "America/Recife")
  (keyboard-layout
    (keyboard-layout "br" "thinkpad"))
  (bootloader
    (bootloader-configuration
      (bootloader grub-efi-bootloader)
      (target "/boot/efi")
      (keyboard-layout keyboard-layout)))
  (swap-devices (list "/dev/sda3"))
  (file-systems
    (cons* (file-system
             (mount-point "/home")
             (device
               (uuid "6754ffd8-21f0-4cc5-9838-3a7277f6e9f1"
                     'btrfs))
             (type "btrfs"))
           (file-system
             (mount-point "/")
             (device
               (uuid "41ebbb83-0191-4e95-880c-327540796043"
                     'btrfs))
             (type "btrfs"))
           (file-system
             (mount-point "/boot/efi")
             (device (uuid "1022-228D" 'fat32))
             (type "vfat"))
           %base-file-systems))
  (host-name "PabloGuix")
  (users (cons* (user-account
                  (name "pablo")
                  (comment "Pablo")
                  (group "users")
                  (home-directory "/home/pablo")
                  (supplementary-groups
                    '("wheel" "netdev" "audio" "video")))
                %base-user-accounts))
  (packages
    (append
      (list (specification->package "nss-certs"))
      %base-packages))
  (services
    (append
      (list (service gnome-desktop-service-type)
            (service xfce-desktop-service-type)
        (service cups-service-type
          (cups-configuration
           (web-interface? #t)
           (extensions
        (list cups-filters escpr hplip-minimal hplip))))
            (set-xorg-configuration
              (xorg-configuration
                (keyboard-layout keyboard-layout))))
      %desktop-services)))


O que acontece quando a ativação do serviço de impressora é feito com sucesso segue abaixo. Depois é só usar o "localhost:631" para instalar sua impressora.


pablo@PabloGuix ~$ sudo -E guix system reconfigure /etc/config.scm
Senha:
substitute: atualizando substitutos de "https://ci.guix.gnu.org"... 100.0%
As seguintes derivações serão compiladas:
   /gnu/store/1bcgxp0ifrwhix16z11wxmf75r2d4snv-system.drv
   /gnu/store/d6q3s3qzf918pyinyhsw67khbg0daysp-provenance.drv
   /gnu/store/f9cf5nzkj0cb7mdd058r7r8b28safwqy-boot.drv
   /gnu/store/74d8vnmz7i3gr83kvizs0qpdmw3hi4ir-shepherd.conf.drv
   /gnu/store/ciq1nr38z1az3ghm9zpv3i1zy0g8wyaf-shepherd-user-homes.go.drv
   /gnu/store/r7amdl625z1gvf6s37rr0x50p99jsqrn-shepherd-user-homes.scm.drv
   /gnu/store/iqchd7ia13kf1llpnhx01b5lq6rmn8b2-shepherd-cups.go.drv
   /gnu/store/pn9398k7ij4ay8k7wi9xric7am16vdcp-shepherd-cups.scm.drv
   /gnu/store/c5y3j4alvpkidzzmdbsv5yan82imaqaq-cups-files.conf.drv
   /gnu/store/il13vrxa4mwdm2949yl0x7xiycq53ajp-cups-server-bin.drv
   /gnu/store/fd1dpjs5wgn67iwjvdfqdxmyfy2i4x53-activate.scm.drv
   /gnu/store/830llz1ykqpy5g620p9snflsnymrygn1-activate-service.scm.drv
   /gnu/store/w0dw82ywh1d3wxvsnycb1id5llslvn2y-etc.drv
   /gnu/store/s54m4ph3dr1v6wapgid3w11b5ipf9ivv-shells.drv
   /gnu/store/z27fdlpj0561h8ji1vffgjwk76jgs8py-activate-service.scm.drv
   /gnu/store/i33y4c75fmfnif25x0bj46506f3nnmys-grub.cfg.drv
0,3 MB será baixado:
   /gnu/store/7i8dxi1jv1bf87rmy5n6icpmvxkgdasf-escpr-1.6.30
building /gnu/store/d6q3s3qzf918pyinyhsw67khbg0daysp-provenance.drv...
downloading from https://ci.guix.gnu.org/nar/lzip/7i8dxi1jv1bf87rmy5n6icpmvxkgdasf-escpr-1.6.30...
 escpr-1.6.30  251KiB                 152KiB/s 00:02 [##################] 100.0%

building /gnu/store/z27fdlpj0561h8ji1vffgjwk76jgs8py-activate-service.scm.drv...
building /gnu/store/il13vrxa4mwdm2949yl0x7xiycq53ajp-cups-server-bin.drv...
building /gnu/store/s54m4ph3dr1v6wapgid3w11b5ipf9ivv-shells.drv...
building /gnu/store/c5y3j4alvpkidzzmdbsv5yan82imaqaq-cups-files.conf.drv...
building /gnu/store/w0dw82ywh1d3wxvsnycb1id5llslvn2y-etc.drv...
building /gnu/store/pn9398k7ij4ay8k7wi9xric7am16vdcp-shepherd-cups.scm.drv...
building /gnu/store/830llz1ykqpy5g620p9snflsnymrygn1-activate-service.scm.drv...
building /gnu/store/iqchd7ia13kf1llpnhx01b5lq6rmn8b2-shepherd-cups.go.drv...
building /gnu/store/fd1dpjs5wgn67iwjvdfqdxmyfy2i4x53-activate.scm.drv...
building /gnu/store/r7amdl625z1gvf6s37rr0x50p99jsqrn-shepherd-user-homes.scm.drv...
building /gnu/store/ciq1nr38z1az3ghm9zpv3i1zy0g8wyaf-shepherd-user-homes.go.drv...
building /gnu/store/74d8vnmz7i3gr83kvizs0qpdmw3hi4ir-shepherd.conf.drv...
building /gnu/store/f9cf5nzkj0cb7mdd058r7r8b28safwqy-boot.drv...
building /gnu/store/1bcgxp0ifrwhix16z11wxmf75r2d4snv-system.drv...
building /gnu/store/i33y4c75fmfnif25x0bj46506f3nnmys-grub.cfg.drv...
/gnu/store/6pmnvnr04dfm96w558f0jv581hh7gwzp-system
/gnu/store/1qfa1ydbwz2d8y3bqiv46c8ra9l7xx5n-grub.cfg

ativando sistema...
substitute: atualizando substitutos de "https://ci.guix.gnu.org"... 100.0%
building /gnu/store/wwgqq9dy0gk5gqg1slmbpsvyacqc7zzj-switch-to-system.scm.drv...
making '/gnu/store/6pmnvnr04dfm96w558f0jv581hh7gwzp-system' the current system...
setting up setuid programs in '/run/setuid-programs'...
populating /etc from /gnu/store/mkzz3c20hqkam532fs1pij8yk78irgnq-etc...
Generating RSA private key, 2048 bit long modulus (2 primes)
....+++++
.......................+++++
e is 65537 (0x010001)
substitute: atualizando substitutos de "https://ci.guix.gnu.org"... 100.0%
building /gnu/store/nyfg96hnify7hy0jd790732zgp9ymq7w-install-bootloader.scm.drv...
guix system: bootloader successfully installed on '/boot/efi'
substitute: atualizando substitutos de "https://ci.guix.gnu.org"... 100.0%
building /gnu/store/jky0gparpxdjcpiqjx48zvji21j95jzg-upgrade-shepherd-services.scm.drv...
shepherd: Service cups has been started.


Mas é claro que eu fiz todo um planejamento de backup do config.scm pra evitar maiores problemas, e, para testar a configuração antes, eu abrir o "guile" e testei os comandos. Foi assim que eu descobrir que era necessário adicionar novos modulos. É simples, se tiver faltando algo o guix não faz nada. Muito mais impressionante, sofisticado e simples que o systemd. E generoso também, já que eu aprendir muito mais sobre o "shepherd" em um ano do que sobre o systemd e o upstart em 10.

[ATUALIZAÇÃO] Eu recomendo fortemente o estudo da linguagem de programação Scheme (https://schemers.org/Documents/Standards/R5RS/r5rs.pdf) para o adequado uso do espaço no lugar do e melhorar a legibilidade do arquivo .scm.

Nenhum comentário:

Postar um comentário

O que é aquela aba nos perfis dos usuários do Instagram?

Aquela Aba é o marcador. Quando uma pessoa está postando uma foto no feed, a no meio do processo um campo usado para marcar pessoas. Se você...