sábado, 28 de dezembro de 2019

Jogos no Guix System

É claro que o Guix System tem vários jogos, eu mesmo já instalei muitos. Além daqueles que veem com o GNU Emacs, eu instalei o jogo de cartas (aisleriot), Gnome Minas, e alguns mais sofisticados como o OpenTTD e o 0AD. Mais queria aqui apenas recomendar o red-eclipse. Quando estava no chat do guix um usuário me recomendou o Xonotic mais esse eu ainda não instalei. Porém o red-eclipse é tudo o que é possível. O jogo é leve e tem inteligencia artificial para você jogar sozinho. Posso dizer que o jogo deixou o Urban Terror e o Call of Duty/Counter Strike com um excelente substituto para diversão. Tá lá no guix pra quem quiser jogar.


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.

segunda-feira, 28 de outubro de 2019

Depois da instalação do Guix System.

Decidi colocar aqui o retorno do comando abaixo, salvo em um arquivo de texto simples, para que os novatos no Guix System, e quem sabe outras distribuições GNU/Linux, tenham uma referencia de quais aplicativos instalar depois de instalar o guix. (Claro que você terá que resolver o problema da primeira atualização do Guix antes.)

$ guix package -l

Veja:

Geração 1 23 out 2019 02:08:32
glibc-utf8-locales 2.29 out /gnu/store/n79cf8bvy3k96gjk1rf18d36w40lkwlr-glibc-utf8-locales-2.29

Geração 2 23 out 2019 03:05:43
+ aisleriot 3.22.9 out /gnu/store/bvzv2d86lbrma38ld5ccfjymv76wsz8p-aisleriot-3.22.9
+ emacs 26.3 out /gnu/store/8lsmv5jhsbr6c34917k4lfy4cki4wd4y-emacs-26.3
+ ffmpeg 4.2.1 out /gnu/store/a378fd6pc3y8sv3w8y6jl20r7n25q2dl-ffmpeg-4.2.1
+ vlc 3.0.8 out /gnu/store/ymjnhla60rvksf7h6vqwb4scvgp401z7-vlc-3.0.8

Geração 3 23 out 2019 14:12:30
+ transmission 2.94 out /gnu/store/hlqmx0px4hsawnwh9018wjjl287ggdpa-transmission-2.94

Geração 4 23 out 2019 18:56:44
+ abiword 3.0.2 out /gnu/store/341m4fkgv0x4yvs544wfaccf3qrbdyxx-abiword-3.0.2
+ gnumeric 1.12.45 out /gnu/store/nf3vl3hzxlzd9c504q34b17lik09m8kz-gnumeric-1.12.45

Geração 5 23 out 2019 20:05:00
+ emacs-guix 0.5.1.1 out /gnu/store/xp608yb60ql7ydja2wnw2mprfp906pi0-emacs-guix-0.5.1.1

Geração 6 23 out 2019 20:20:22
+ wget 1.20.3 out /gnu/store/6vdn7cx597rav7pixfvs19d5axk9f11i-wget-1.20.3

Geração 7 24 out 2019 17:24:37
+ transmission 2.94 gui /gnu/store/y6iy0w0k7wih3jnppv23cizannw615jd-transmission-2.94-gui

Geração 8 26 out 2019 07:59:05
+ cheese 3.30.0 out /gnu/store/cwxxasl0rl25fb31k4lwf6ifhi1cfqmp-cheese-3.30.0

Geração 9 27 out 2019 12:31:29
+ glibc-locales 2.29 out /gnu/store/03nvilh2x4z07dxv7h13gh986vvgpnsf-glibc-locales-2.29

Geração 10 27 out 2019 13:47:01
+ gimp 2.10.12 out /gnu/store/5kizggpbynads1fp62n3wf9rls51v27b-gimp-2.10.12

Geração 11 27 out 2019 15:39:03
+ youtube-dl 2019.10.22 out /gnu/store/8b5944r5iff1sk1vpf3wnk8gld4i075v-youtube-dl-2019.10.22
+ blender 2.80 out /gnu/store/vq8kgzgwa62np6a0php1gi7k07c3rmcd-blender-2.80

Geração 12 27 out 2019 16:05:17
+ audacity 2.3.2 out /gnu/store/a696bm1n7w4kymycc2m7lrzy28jrv7dw-audacity-2.3.2
+ inkscape 0.92.4 out /gnu/store/bc6mrwxvayx2yhhdlqrgv1lhfrc02x31-inkscape-0.92.4

Geração 13 27 out 2019 16:23:45
+ simplescreenrecorder 0.3.11 out /gnu/store/j9yyc0l1lq5y3l96x5vq5k7d4myll21c-simplescreenrecorder-0.3.11

Geração 14 27 out 2019 17:56:44
+ ungoogled-chromium 76.0.3809.132-0.8eba5c0 out /gnu/store/x6ll7z1g76fbdy3rcqvc5d2m862hwdc5-ungoogled-chromium-76.0.3809.132-0.8eba5c0

Geração 15 27 out 2019 18:14:37
+ warzone2100 3.2.3 out /gnu/store/75c377v1gxj9gwhffbxc761g8hy1vlz3-warzone2100-3.2.3
+ minetest 5.0.1 out /gnu/store/1r37bqaigcyl3f358xdhb5mz94zbjj6a-minetest-5.0.1

Geração 16 27 out 2019 19:41:07
+ xchm 1.30 out /gnu/store/yqq8rr5lkzivazkqk9xpmm51djdy1hp8-xchm-1.30

Geração 17 28 out 2019 08:30:02
+ 0ad 0.0.23b-alpha out /gnu/store/0w2rl56rsn0njd9yl0njqpri1w8xbl9g-0ad-0.0.23b-alpha

Geração 18 28 out 2019 09:42:31
+ supertuxkart 1.0 out /gnu/store/8rljkifqxvgw5104824iwfz0yccf1h23-supertuxkart-1.0

Geração 19 28 out 2019 09:53:48
+ cheese 3.30.0 out /gnu/store/w6asqn1pd4v2rwjz2y7z6rkg7bzr31jh-cheese-3.30.0
- cheese 3.30.0 out /gnu/store/cwxxasl0rl25fb31k4lwf6ifhi1cfqmp-cheese-3.30.0

Geração 20 28 out 2019 10:00:16
+ transmission 2.94 gui /gnu/store/hjl3q4dpi7f5jsbzd2qdjhwvgm4rccv5-transmission-2.94-gui
+ emacs-guix 0.5.1.1 out /gnu/store/iy1n94bs1rcsxnpbr04qnbcb8yd1999a-emacs-guix-0.5.1.1
+ abiword 3.0.2 out /gnu/store/9zhxfhxpn13qnln7nlqkis1ynh8y2jsz-abiword-3.0.2
+ gnumeric 1.12.45 out /gnu/store/43g8fzb6pqrv29qv5mf63bvns4p6r0nm-gnumeric-1.12.45
+ transmission 2.94 out /gnu/store/8ns6a2k2xafw05k8xy5sbifmaimcvb8q-transmission-2.94
+ aisleriot 3.22.9 out /gnu/store/kk4rkwm6qp513izznph6l8xpd3ajdlhd-aisleriot-3.22.9
+ emacs 26.3 out /gnu/store/djza93lqjcndsldf4794bp8mvipd6fz4-emacs-26.3
+ ffmpeg 4.2.1 out /gnu/store/d4gylnd0zf5lx0vr6v5if1vn6d5kbk0w-ffmpeg-4.2.1
+ vlc 3.0.8 out /gnu/store/jl42jd3kw2vasm9hpf3kgif6k426vhds-vlc-3.0.8
- transmission 2.94 gui /gnu/store/y6iy0w0k7wih3jnppv23cizannw615jd-transmission-2.94-gui
- emacs-guix 0.5.1.1 out /gnu/store/xp608yb60ql7ydja2wnw2mprfp906pi0-emacs-guix-0.5.1.1
- abiword 3.0.2 out /gnu/store/341m4fkgv0x4yvs544wfaccf3qrbdyxx-abiword-3.0.2
- gnumeric 1.12.45 out /gnu/store/nf3vl3hzxlzd9c504q34b17lik09m8kz-gnumeric-1.12.45
- transmission 2.94 out /gnu/store/hlqmx0px4hsawnwh9018wjjl287ggdpa-transmission-2.94
- aisleriot 3.22.9 out /gnu/store/bvzv2d86lbrma38ld5ccfjymv76wsz8p-aisleriot-3.22.9
- emacs 26.3 out /gnu/store/8lsmv5jhsbr6c34917k4lfy4cki4wd4y-emacs-26.3
- ffmpeg 4.2.1 out /gnu/store/a378fd6pc3y8sv3w8y6jl20r7n25q2dl-ffmpeg-4.2.1
- vlc 3.0.8 out /gnu/store/ymjnhla60rvksf7h6vqwb4scvgp401z7-vlc-3.0.8

Geração 21 28 out 2019 10:17:19
+ xfce4-taskmanager 1.2.2 out /gnu/store/3irsy0ghf17cx9d75nysimlj1sg2666f-xfce4-taskmanager-1.2.2
+ xfce4-screenshooter 1.9.5 out /gnu/store/z78pz107pwf1bjmzjixiwc1f9bh7y660-xfce4-screenshooter-1.9.5
+ gnome-mines 3.30.1.1 out /gnu/store/z4cwr4igshxxiqmhxhqxmflbxn5f2dgn-gnome-mines-3.30.1.1
+ electrum 3.3.8 out /gnu/store/kxphazcdqiklz63h3y64z2x3isiqh4dm-electrum-3.3.8

Geração 22 28 out 2019 12:03:31
+ freedoom 0.11.3 out /gnu/store/jr83wmmpli8lshg9hw4abhmrgr8qjrwn-freedoom-0.11.3

Geração 23 28 out 2019 12:55:06
+ icecat 68.2.0-guix0-preview1 out /gnu/store/0v4rhyf4032bl0l3h3siycd1r0wkbl4s-icecat-68.2.0-guix0-preview1
+ openttd 1.8.0 out /gnu/store/bvg5gl5h88b6kir1v3ngp8jl98ms11fk-openttd-1.8.0

Geração 24 28 out 2019 13:01:01 (atual)
- ungoogled-chromium 76.0.3809.132-0.8eba5c0 out /gnu/store/x6ll7z1g76fbdy3rcqvc5d2m862hwdc5-ungoogled-chromium-76.0.3809.132-0.8eba5c0



O GNU IceCat junto com o GNU emacs que eu uso para acessa o IRC de projetos GNU (Para tirar dúvidas).
Recomendo a instalação do f2fs-tools junto com o gparted. Formatar seu dispositivo removível, como o SD Card, com o sistema FAT32 impede que você salve arquivos maiores de 4GB. Então formate-os no formato F2FS para salvar qualquer arquivo. [ATUALIZAÇÃO: FORMATEI UM SD CARD NESSE FORMATO MAS NÃO CONSEGUIR COPIAR NENHUM ARQUIVO NELE, O SISTEMA NÃO PERMITIU. NÃO SEI PORQUE.]

domingo, 27 de outubro de 2019

Guix System Install e btrfs Segunda Tentativa Locales

A primeira vez que eu instalei o Guix eu tive alguma dificuldade. Não consegui atualizar o sistema ou instalar alguns pacotes. Então voltei para o Trisquel. Agora, dia 22 de outubro eu decidi instala-lo novamente e hoje, 27 de outubro, eu finalmente consegui resolver o problema. Não é muito complicado. 

Após a instalação, que foi feita no UEFI e com o sistema de arquivos BTRFS como antes, você precisará fazer uma operação, de uma vez, antes de qualquer outra coisa. Basta apena digitar os 4 comandos, sem reiniciar o sistema. Assim: 

$ guix install glibc-utf8-locales glibc-locales
$ export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
$ guix pull
$ sudo -E guix system reconfigure /etc/config.scm



É assim que parecerá quando for bem sucecido.


Observe que você só poderá reiniciar o sistema depois do “sudo -E guix system reconfigure /etc/config.scm”, caso contrário, só precisa executar a partir do segundo comando. Isso deverá resolver os problemas mencionados no artigo anterior. Aqui eu finalmente consegui instalar o Blender, por exemplo, mesmo depois de instalar alguns pacotes antes de executar os comandos citados. 

É isso! Agora tenho o Guix instalado, mas tive muitos problemas antes de descobri que era preciso usar o “sudo -E” para atualizar o sistema, algo que não estava no manual do guix.

quinta-feira, 24 de outubro de 2019

C ou C com Classes


A desnecessaria evolução da principal linguagem de programação.

Nesses tempos em que eu fiquei ausente, continuei minha saga para compreender o mundo da programação. Dessa vez eu estudei, quase terminei, a linguagem de programação C. Tenho um PDF de 126 páginas aqui da UFMG que é muito boa e explica muita coisa, ou tudo (15122623-Apostila-de-C-da-UFMG.pdf). Nela eu aprendi até onde vai a programação em C antes de chegar no C++, a chamada C com classes.

Sim, com C você vai muito longe. Há o uso de arquivos cabeçalhos .h com seus protótipos, a instanciação de procedimentos e até o uso de ponteiros (precisarei revisar isso). Temos aqui o uso de variávei globais e locais. Então a pergunta é: Pra que o C com classes?

Eu sei o que o leitor pensa na hora. Eu não sou programador realmente portanto não vou me aprofundar. Mas também não preciso se o objetivo desse artigo é apenas fazer pensar. Isso porque enquanto eu estudava, dei uma olhada nos código fonte de alguns app que eu tinha baixado antes de ficar sem internet. Emacs, hurd, são grandes software, e são escritos em C, não em C++. Eu tinha outros software mas não me lembro qual e esqueci de salvar antes de instalar o Guix no meu notebook. Mas basicamente, Richard Stallman não programa em C++.

Conclusão

O que me motivou a escrever esse artigo, além de ter descoberto coisas incríveis sobre o C, foi que eu ouvi em algum lugar alguém dizer que o C++ era um pesadelo (algo assim). Mas eu tenho aqui outro PDF sobre conceito de C++ (1197_Conceito_C++.pdf) que eu ainda não li mas vou, mas acho que minha opinião não irá mudar.



quarta-feira, 7 de agosto de 2019

Guix System Install e btrfs.

[ATUALIZAÇÃO] 23 de outubro de 2019
No momento da instalação, instale o gnome também, ele virar com os App padrão incluindo o navegador. O problema de desempenho parece que desaparece conforme o tempo. Com o gnome, pendrives, smartphones e SD cards são montados automaticamente. Nessa nova instalação eu mantive o UEFI e o btrfs, agora estou usando 100% do hardware do meu notebook.





Instalei o Guix System e olha no que deu. Parece uma frase de rede social, mas não é uma crítica ao sistema. O Guix é realmente bom, os defeitos são muito poucos ou apenas um que eu reparei, tanto que eu vou deixar pra falar das vantagens no final. Vamos lá!

Ponto negativo

O sistema parece consumir bastante recursos do sistema na hora da instalação de um pacote maior. Não tive nenhum problema para instalar o xpdf, weechat e o ffmpeg. Mas na hora de instalar o icecat, não deu jeito. O sistema parecia ter sofrido uma quebra, mas na verdade ele só estava muito lento mesmo, e ficou quase congelado por quase 40 minutos. Foi nesse momento em que eu decidir voltar para o Trisquel.

Ponto que talvez seja negativo

Eu digo talvez nesse caso porque, como não tenho conhecimento necessário, apesar de saber que o Guix não é um sistema para Desktop, não sei se o funcionamento é dessa forma em ambiente normal. O sistema não vem com nenhum aplicativo instalado certo? Normal. Mas baixar o aplicativo na instalação do sistema, e duas vezes, para não usá-lo, é um pouco estranho. O Python não está acessível nem para o usuário root, apesar de ter sido baixado na instalação e de novo na instalação de alguns pacotes usando o guix package. Quem tiver internet 4G, e mora no Brasil, Guix não é recomendado em absoluto (650MB de download pelo menos). E por que o sistema não vem com o Make? Era mesmo para o sistema não ter as ferramentas de audio apesar do audio ser identificado.

A coisa mais legal do mundo

Ter os pacotes mais atualizados do mundo de software livre é muito legal, apesar de eu pessoalmente não ter usurfruido bastante dessa parte. Mas a parte mais legal do sistema é que tudo funciona como você quer. Pra você ter uma ideia, eu montei um SD manualmente. Sei que parece bobagem mas em outros sistemas, se o SD não for montado automaticamente eu não teria sucesso manualmente. No Guix eu levei apenas 2 minutos para montá-lo apenas olhando o manual do “mount”, -t vfat, um pouco de lsblk pra descobrir o nome do dispositivo e pronto. Criei uma pasta qualquer pra montar, nem precisei seguir padrões rigorosos de procedimento.
No Guix é assim. Se ele fala que tal procedimento é necessário, esse procedimento certamente irá funcionar. Se você já fez um curso de Python grátis na internet, deve saber como é chato seguir as instruções do curso e mesmo assim não dá certo. Como nas aulas de matemática que você tinha no ensino médio. No Guix, qualquer serviço é configurado usando Guile. Então o manual dizia que para configurar um serviço como HTTP, ponto de montagem do disco, conta de usuário, banco de dados, LDAP, você precisaria importar um modulo, você certamente acertaria de primeira. Eu acessei esses módulos sem problemas e dei uma olhada nos valores das variáveis e estão lá. E eu nem sou desenvolvedor de nada.

O que eu aprendi

Na instalação eu aprendi algumas coisas que eu não sabia, por exemplo. O Trisquel realmente tem problemas para instalar no UEFI, mesmo criando uma nova tabela de partição. O Guix não tem esse problema. A instalação funcionou perfeitamente e o XFCE4 (janelas e cliques de mouse) funcionou sem qualquer intervenção minha. E a configuração do teclado a escolher é a IMB/Lenovo alguma coisa. O sistema é muito bem traduzido para o português brasileiro, até alguns comandos de texto estão em nossa língua.
A instalação é bem demorada, mas apenas por que o download é demorado. Como eu disse, o Guix baixa duas vezes o mesmo pacote mas isso aconteceu apenas algumas vezes (não só com o Python). Quando ele estiver copiando para /mnt, você saberá que o download acabou e ele está copiando sua instalação para o seu local de direito. Por alguma razão o carregamento do sistema é um pouco mais lento que eu outras distribuições, mas nada que incomode, mas a impressão é acentuada porque ele ainda mostra o carregamento na tela preta de mensagens.

Btrfs

A melhor parte foi ter usado o Btrfs. Na instalação o Guix permite essa mudança selecionar no teclado a partição, ir até a opção onde está escrito algo como EXT4 (padrão do Guix) e teclar Enter. Depois e só selecionar Btrfs. Mas não me lembro se fiz isso na instalação automática já que eu perambulei pelo particionamento manual também. Curiosamente, o btrfs-progs não será instalado mesmo estando presente no instalador do guix, o que parece que o meu pen drive com o Guix deve servir como manutenção do sistema.
O btrfs-progs do Guix é a versão 4.20, que é a versão já totalmente reescrita e já estável da aplicação. A do Triquel é a 4.4, anterior a essa mudança, mas agora estou usando o btrfs sim. A reescrita é apenas para a ferramenta específica de conversão de partição (sem perda de dados), e não para a formatação de partições. Então na instalação do Trisquel não haverá problemas.

Conclusão

O Guix é realmente um sistema muito bom e bem feito. É muito fácil de ultilizar, e se construir um devirado que automatize alguns procedimentos, para tornar mais próximo ao Trisquel, ele será perfeito para usuários comuns. Não sei bem se algo deu errado na instalação do Icecat, irei reportar aos administradores do sistema, mas foi apenas isso (Sobre o audio eu não tenho certeza). Se pensar em outras distro que eu tive problemas. O Trisquel e no Ubuntu eu não conseguir instalar no UEFI, apenas na versão Ubuntu 16.04.1 foi possível. Então o Guix está de fato bastante competitivo. Faça ai a instalação em um qemu. Mas o mais legal é que agora eu estou rodando no sistema btrfs no Trisquel. Quando eu descobrir que o Ext4 era uma tecnologia antiga com alguns recursos adcionados, eu fiquei incomodado, principalmente ao ver que o btrfs é um sistema muito mais moderno. Com certeza essa foi a parte mais legal de todo esse trabalho que eu tive.





domingo, 2 de junho de 2019

Guix

Como sabem, apenas recentemente, em 2018, eu me dei conta realmente do significado do termo software livre. Busquei no sítio oficial do projeto GNU pela lista de sistemas operacionais recomendados pelo projeto e, pela similaridade com o Ubuntu que eu já usava a mais de 7 anos, escolhi o Trisquel. Mas agora está no ar a versão 1.0.1 do GNU Guix, o sistema operacional oficial do projeto GNU.
Uma coisa que eu notei no Trisquel é que muitas ferramentas eu tive que instalar posteriomente. Para exemplificar um pouco da minha experiencia, nas minha busca por informação por programação passei pelo Python, Ruby, C, PHP, Java, ECMAscript, mas nunca cheguei nem perto de encontrar uma menção ao Lisp ou Scheme. Vamos colocar um exemplo de um trecho de código de Python e do Scheme para comparar.
Python
class ToolChooserButton(object):
   
    def __init__(self, button, default_label=''):
       
        self.button = button
        self.default_label = default_label

        self._menu = None
        self._icon = None

        self.reset()

        self.set_sensitive = self.button.set_sensitive

Scheme
(define (must-be-real+ name proc)
  (and proc
       (lambda (x1)
     (if (and (real? x1) (>= x1 0))
         (proc x1)
         (slib:error name x1)))))

Como pode observar, a linguagem Scheme é muito mais limpa do que o Python. Observe que no Scheme, não há o use de =, {}, [], ;, e muitos outros que eu não lembro, você consegue programar apenas com espaços e parenteses. Como os sistemas derivados do Debian/Ubuntu, como o Trisquel, são escritos em Python e o Guix é escrito em Guile (uma implementação em Scheme), fica facil concluir que o Guix é muito mais avançado e tem mais potencial. Em scheme, todas as regras, incluindo orientação a objeto, cabem em dois caracteres, o espaço e o parenteses.

O que esconderam de mim.

Todo o sistema Guix ao ser analizado revela muita coisa. Enquanto eu estava pesquisando sobre upstart, systemd, init, o Guix já tinha o shepherd. Enquanto caminhava pelo snap, flatpak, appimages, a base do sistema Guix chamado de Guix package se mostrava muito mais simples e generoso. Imagine configurar todo o sistema com programação Scheme. Você deve imaginar que é preciso aprender a programar, mas com Scheme, programa não é tão difícil assim e você só precisará aprender isso.

Conclusão

Guix é outra coisa, é o sistema oficial do projeto GNU. Sem a visão de outras corporações como a Microsoft, IBM, Intel. Começar a pensar em sistemas de informática pelo Guix é uma excelente ideia, e ter o Guix no seu notebook também. Eu ainda não instalei o sistema no meu porque ainda tenho algumas dúvidas e limitações. Por incrível que pareca, não ficou claro se o ambiente gráfico está na imagem do ISO. Eu também preciso de um HD externo para salvar meus dados, principalmente porque quero instala-lo no EFI e me parece que para fazer isso, apenas criando uma nova tabela de partição. Mas fora isso, mal posso esperar para ter o Guix no lugar do Trisquel.

quarta-feira, 2 de janeiro de 2019

Trisquel GNU/Linux

Depois de ler o livro “Software Livre A luta pela liberdade do conhecimento”, lançado em março de 2004 pela editora Fundação Perseu Abramo e escrito por Sérgio Amadeu da Silveira, resolvi ler a entrevista de Richard Stallman e Brian Gouth na edição de aniversário de 1 ano da revista “espírito livre”, número 013 de Abril de 2010. Em 6 meses de muita pesquisa relacionada ao software livre, minha visão de tecnologia e informação ficou muito mais aberta.

Nos primeiros meses desse período redescobrir os sítios gnu.org e fsf.org e que o projeto GNU tinha uma lista de distribuições recomendáveis para se usar. Depois me dediquei a ler o máximo de páginas que o sítio gnu.org disponibilizou em português. GNU Hurd, GNU Guile, GNU Shepherd, GNU jogos, um universo de informações totalmente novas dentro do GNU GSRC mostra que o projeto GNU é muito mais generoso que os sítios do Ubuntu que se limitam apenas a soluções técnicas e o Debian que deixa tudo muito sobrecarregado e disperso. Agora eu já tenho impresso minhas leituras favoritas do gnu.org.

Nos últimos meses eu já tinha informações sobre o Linux-libre, o que é “blobs” e como a batalha pela liberdade estava mais adiantado do que eu poderia sequer imaginar. Tenho que dizer que eu suspeitava por anos e depois a falha nos processadores da Intel a nivel de hardware, que teve uma repercussão considerável, foi um empurrão a mais (não me pergunte sobre a linha temporal). Sei que seis meses parece muito tempo pra uma pessoa experiente no mundo Linux, migrar para o mundo GNU, mas o país (Brasil) em 2018 está em grave crise e não tenho acesso frequente a internet banda larga.


Na primeira oportunidade que tive, baixei quatro distribuições GNU/Linux. Trisquel, PureOS, GuixSD e gNewSense. Por problemas que tive (gNewSense não tinha drivers para minha placa Wifi, o PureOS não tinha nenhum jogo instalado e o GuixSD inicializava em modo texto) e pela semelhança com o sistema que eu já usava, o Ubuntu, eu escolhi o Trisquel.

Nenhum arrependimento até agora, pelo contrário. O Trisquel me pareceu mais profissional do que o Ubuntu, afinal, por ser 100% livre, a ideia de confiabilidade pareceu bastante lógica. O Trisquel utiliza o Linux-libre, portanto sem risco de se tornar refém de “blobs”. E os responsáveis se comprometeram a não disponibilizar nenhum pacote não-livre em seus repositórios, diferente do “snap” do Ubuntu.

A melhor parte do Trisquel 8.0 é o seu ambiente gráfico, o MATE. Esse é o gnome 2.0 sob nova direção. A aparencia é de KDE, mas logo que se aprofunda fica claro de que é o MATE. E como é bom esse desktop. Sua flexibilidade lembra o ponto alto do KDE 3.5, a ponto de adicionar o executável do Blender que eu tinha ao menu. Nem preciso instalá-lo mais. E nem havia percebido a falta que os applets fizeram a mim. Finanças, notas e temperaturas, se tivesse espaço no painel do MATE colocaria mais.

O único problema que tive não foi com o Trisquel, mas com o UEFI. O sistema funcionou perfeitamente. Sem nenhum bug bobo. Apesar de parecer se distanciar de um sistema avançado ao usar o MATE ao invés do Gnome Shell (que é usado pelo gNewSense, PureOS e GuixSD), o ambiente funciona de forma impecável, mais do que o Gnome Shell no Gubuntu 16.04. Então não há como dizer que houve o ambiente é ultrapassado. Há ainda os sistemas Dragora, Dynebolic, Music, Parabola e o Ututo S, mais no final achei minha escolha para descarregar a melhor.

dd Permissão negada: inicializador GNU no Pen Drive


Várias vezes eu tentei criar um USB bootável do Ubuntu via linha de comando, utilizando o “dd”. As instruções eram claras, colocar a imagem ISO do sistema operacional no Pen Drive (dd if=tails-i386-2.6.iso of=/dev/sdb1 bs=1M). Porém esse comando nunca funcionou. Agora no entanto eu descobrir a razão disso.

Descobrir isso quando eu decidi migrar do Ubuntu para um sistema completamente livre. Inicialmente, aescolha do sistema foi o Trisquel por problemas no UEFI que eu desconheço que impediam o gNewSense e o PureOS de inicializar. O GuixSD inicializou apenas no modo texto. Depois, vendo que o Trisquel apesar de inicializar no modo EFI, eu não conseguia instalar o grub (para instalar no modo UEFI eu teria que clicar no disco (/dev/sda) e criar uma “nova tabela de partição”. Isso apagaria minha partição /home, então tive que instalar no modo LEGACY. Estranho o EFI ser compativel com seu antecessor, mas não consigo mesmo). Tentei umas 4 o 5 vezes, torcendo para que meu único Pen Drive de 4GB não parasse de funcionar como costumava acontecer. Mesmo no modo LEGACY, eu mantive a decisão de usar o Trisquel pela semelhança com o Ubuntu que me deu uma segurança de reaproveitar a partição /home sem formatá-lo.

Qual o problema?


O problema é que para criar o USB inicializável do Trisquel era preciso ter permissão de root, mas não da maneira tradicional. Então ao invés de usar o “sudo” para executar a operação, nós vamos acessar a permissão de root e depois, executar a operação. Descoberto isso, eu decidir usar o “cat” no lugar do “dd” que também permite o mesmo processo. Então:

$ sudo -s

# cat trisquel_8.0_amd64.iso > /dev/sdb


Pronto! Agora você tem um Pen Drive com o Trisquel para você instalar em seu computador para também ser livre de verdade. E não se esqueca de atualizar seu sistema quando se conectar com a internet e depois adicione o PPA do GNU para ter apenas pacotes 100% livres. O Trisquel já se comprometeu a manter apenas pacotes livres em seu repositório, mas não há todos os pacote do projeto GNU.


Assim como no EFI, o Trisquel permite a criação de uma partição de boot no modo LEGACY que pode ser identificado no “Parted” como “bios_boot”. Use-o, eu costumava criar uma partição /boot que, com a evolução do sistema GNU/Linux, a atualização do kernel passava a ocupar essa partição inteira impedindo novas atualizações do sistema. No particionamento avançado do instalador, ao selecionar o tipo de partição você poderá escolhê-lo em uma partição a parte (escolha o tamanho de 3 ou 4 GB) antes de criar a partição / e /home. Se escolher o particionamento automatizado não precisará se preocupar é claro, mas não foi o meu caso que queria reaproveitar minha partição /home.

Moto E13 O melhor dos mais baratos

Nada como uma bateria desgastada de um smartphone que não tem mais suporte para me fazer comprar o smartphone novo. Não dava para esperar dá...