UEFI e VirtualBox – II

Afinal o problema era mesmo do VirtualBox. O VirtualBox antes da versão 6.1.0 era incompatível com o kernel 5.4 do Linux. [1]

Esse problema foi corrigido na versão 6.1.0 do VirtualBox, que só saiu já depois do problema que detetei e reportei no artigo anterior.

Cores no vi

Estou a desenvolver umas aplicações num servidor que tem o Ubuntu, e onde o vi arranca com letras às cores.

Sou parcialmente daltónico, não consigo ver vermelho ou azul sobre preto, e, por isso, tinha que escrever o comando :syntax off sempre que entrava num ficheiro novo. Era uma perda de tempo.

Já tinha feito pesquisas à procura de soluções para isto, para tentar configurar o vi para arrancar sempre com o parâmetro syntax off selecionado à partida. Hoje, encontrei a solução. É relativamente simples.

No ficheiro de configuração do vi ~/.vimrc, colocar a linha syntax off.

UEFI e VirtualBox

Atualizei os hosts das máquinas virtuais para o Kernel 5.0.2 e o VirtualBox deixou de funcionar.

Passei a receber uma mansagem a dizer que, para carregar o /sbin/vboxconfig, era necessário assinar uma série de módulos.

Fui jantar.

Quando voltei, ainda não me tinha decidido sobre o que fazer. Talvez o melhor fosse mesmo assinar os módulos de que ele se queixava. Mas o que eu fiz foi o seguinte:

========================================================
# ver: 
https://www.linuxquestions.org/questions/slackware-14/safely-downgrade-slackware-kernel-4175604442/
========================================================

cd /tmp/4.19.62/
cd modules/
upgradepkg *.txz
cd ..
cd headers/
upgradepkg *.txz
cd ..
cd source/
upgradepkg *.txz


lilo


========================================================
ATENÇÃO: NA DIRETORIA /tmp/4.19.62 ESTÁ:
========================================================

Na diretoria /tmp/4.19.62/ colocar os ficheiros

root@tao:/tmp/4.19.62# ls -l *
headers:
total 908
-rw-r--r-- 1 root root    332 Jul 28 23:37 kernel-headers-4.19.62-x86-1.txt
-rw-r--r-- 1 root root 915476 Jul 28 23:37 kernel-headers-4.19.62-x86-1.txz
-rw-r--r-- 1 root root    163 Jul 28 23:37 kernel-headers-4.19.62-x86-1.txz.asc

modules:
total 133876
-rw-r--r-- 1 root root      422 Jul 26 19:37 kernel-firmware-20190726_dff98c6-noarch-1.txt
-rw-r--r-- 1 root root 82019836 Jul 26 19:37 kernel-firmware-20190726_dff98c6-noarch-1.txz
-rw-r--r-- 1 root root      163 Jul 26 19:37 kernel-firmware-20190726_dff98c6-noarch-1.txz.asc
-rw-r--r-- 1 root root      624 Jul 28 23:18 kernel-generic-4.19.62-x86_64-1.txt
-rw-r--r-- 1 root root  6450504 Jul 28 23:18 kernel-generic-4.19.62-x86_64-1.txz
-rw-r--r-- 1 root root      163 Jul 28 23:18 kernel-generic-4.19.62-x86_64-1.txz.asc
-rw-r--r-- 1 root root      636 Jul 28 23:17 kernel-huge-4.19.62-x86_64-1.txt
-rw-r--r-- 1 root root 10143888 Jul 28 23:17 kernel-huge-4.19.62-x86_64-1.txz
-rw-r--r-- 1 root root      163 Jul 28 23:17 kernel-huge-4.19.62-x86_64-1.txz.asc
-rw-r--r-- 1 root root      567 Jul 28 23:37 kernel-modules-4.19.62-x86_64-1.txt
-rw-r--r-- 1 root root 38274660 Jul 28 23:37 kernel-modules-4.19.62-x86_64-1.txz
-rw-r--r-- 1 root root      163 Jul 28 23:37 kernel-modules-4.19.62-x86_64-1.txz.asc

source:
total 101404
-rw-r--r-- 1 root root      2897 Jun 24  2009 install-packages
-rw-r--r-- 1 root root       446 Sep 18  2006 install.end
-rw-r--r-- 1 root root       317 Jul 28 23:12 kernel-source-4.19.62-noarch-1.txt
-rw-r--r-- 1 root root 103701504 Jul 28 23:12 kernel-source-4.19.62-noarch-1.txz
-rw-r--r-- 1 root root       163 Jul 28 23:12 kernel-source-4.19.62-noarch-1.txz.asc
-rw-r--r-- 1 root root      1171 Jul 29 03:08 maketag
-rw-r--r-- 1 root root      1171 Jul 29 03:08 maketag.ez
-rw-r--r-- 1 root root        18 Jul 29 03:08 tagfile

Kernel 5.4.1

Boas novas!

O Slackware já está a usar o kernel 5.4.1 na versão current. Mas talvez ainda seja boa ideia esperar uns dias, até que os pacotes mais importantes sejam atualizados para tirar partido desta nova versão do kernel.

Daqui a uns dias, testo este novo kernel e do feedback por aqui.

Kernel 5.4.0

O Slackware current já contém, na diretoria testing, o kernel 5.4.0_rc8.

É muito provável que o Patrick se esteja a preparar para lançar o Slackware 15 com a primeira versão estável deste novo kernel.

Aguardemos.

Postfix e Dovecot

Desde que o Slackware começou a usar o Postfix e o Dovecot como servidores de email e imap, que tem sido uma dor de cabeça tentar configurá-los.

Ontem voltei a tentar e já tenho um servidor a funcionar minimamente.

Os sites que usei para ver como configurar o Postfix foram [1], [2] e [3].
Para o Dovecot usei o site [1]. Estou a ler também [2] para tentar configurar o IMAPS.

Para o Postfix, editei o ficheiro /etc/postfix/main.cf e adicionei as linhas seguintes:

mydomain = myserver.pt
myorigin = $mydomain
inet_interfaces = all
mydestination = localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/16, 127.0.0.0/8
relay_domains = $mydestination
relayhost = [my-relay-server.pt]

smtpd_recipient_restrictions =
    reject_unauth_destination
    reject_rbl_client zen.spamhaus.org=127.0.0.[2..11]
    reject_rbl_client b.barracudacentral.org=127.0.0.2

Para o Dovecot, editei o ficheiro /etc/dovecot/dovecot.conf e adicionei as linhas seguintes:

protocols = imap
listen = *, ::
login_trusted_networks = 192.168.0.0/16

Depois, na diretoria /etc/dovecot/conf.d:

Editei o ficheiro 10-logging.conf e adicionei as linhas seguintes:

log_path = /var/log/dovecot/dovecot.log

Editei o ficheiro 10-mail.conf e adicionei as linhas seguintes:

mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mail_access_groups = mail

A configuração anterior mail_access_groups = mail é perigosa, pois permite que utilizadores com shell no login, tenham acesso às caixas de correio dos outros. Havia uma outra alternativa para resolver um erro que o Dovecot dava, mas não a compreendi.

Sem esta configuração, o erro que surgia no ficheiro de log era:

Error: fchown(/home/user/mail/.imap/INBOX, group=12(mail)) failed: 
Operation not permitted (egid=1000(user), group based on 
/var/spool/mail/user - 
see http://wiki2.dovecot.org/Errors/ChgrpNoPerm)

Editei o ficheiro 10-ssl.conf e adicionei as linhas seguintes:

ssl = no

E comentei também as linhas seguintes, enquanto não configuro o IMAPS.

#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem

Para testar se o dovecot está a funcionar bem, executei o comando seguinte:

mutt -f imap://user@myserver.pt

Vou começar por configurar as máquinas mais simples, e mudá-las do sendmail/imapd para o postfix/dovecot. Quando estiver tudo a funcionar, vou tentar configurar também a máquina mais complexa, que serve de relay às outras.

PECL e MCrypt

O PHP 7.2 deixou de ter suporte para as funções do módulo MCrypt.

Durante algum tempo tive uma máquina virtual com uma versão antiga do PHP, para poder receber dados cifrados por uma aplicação Android que desenvolvi. Hoje decidi resolver o problema e descobri que a solução era muito mais fácil do que pensava ser.

Para ter acesso às funções do módulo MCrypt, bastou instalar o módulo MCrypt do PECL, com o seguinte comando:

pecl install mcrypt

Antes disso, tive que atualizar o PHP da versão antiga para a versão atual 7.3.11. E depois, tive que incluir a seguinte linha no ficheiro php.ini:

extension=mcrypt

Reiniciei o Apache, e as funções mcrypt já estão disponíveis.

grep em ficheiros com certa extensão

Para fazer grep, numa diretoria, em ficheiros com uma determinada extensão, usa-se o comando seguinte:

grep -r --include \*.php --include \*.html jquery *

O comando anterior pesquisa numa árvore de diretorias, a partir da diretoria atual, todos os ficheiros *.php e *.html, à procura da string jquery.

Unicode

Já há algum tempo que queria começar a usar o Unicode em consola no Slackware.

Há uns meses atrás, tentei, mas a informação disponível dizia que era difícil, que havia dificuldade com línguas diferentes do inglês/americano.

Afinal, e segundo um documento recente que encontrei aqui é relativamente fácil.

Basicamente, é apenas necessário editar os ficheiros /etc/profile.d/lang.sh e /etc/profile.d/lang.csh e atualizar a linha seguinte:

export LANG=pt_PT.UTF-8

Depois, editar o ficheiro /etc/lilo.conf e adicionar/modificar a linha seguinte:

append="vt.default_utf8=1"

No fim, correr o comando lilo e reiniciar a máquina.