Pacotes duplicados

Depois de recuperar a máquina que pendurou nas atualizações, retomei o processo de atualização e recebi uma mensagem à qual nunca soube responder:

Checking local integrity... DONE
You have a broken /var/log/packages - with two versions of the same package.
The list of packages duplicated in your machine are shown below, but don't worry about this list - when you select your action, slackpkg will show a better list:

llvm-3.8.0-x86_64-1
llvm-3.8.0-x86_64-2

You can (B)lacklist, (R)emove, or (I)gnore these packages.
Select your action (B/R/I):

Premi ENTER, sem escolher opção nenhuma e fui à net@ ver o que deveria fazer. Descobri que devia remover o pacote llvm-3.8.0-x86_64-1 que não tinha sido removido na instalação anterior, que pendurou. Removi-o com o comando:

removepkg llvm-3.8.0-x86_64-1

e depois continuei a atualização com:

slackpkg upgrade-all

input/output error

Ontem, durante a atualização das máquinas, uma das máquinas virtuais deu um erro de input/output, enquanto estava a remover um pacote. E a atualização ficou por ali.

Tive que reiniciar a máquina, mas só o consegui fazer dentro do VirtualBox, e não em modo headless através de um ficheiro batch que uso para lançar as máquinas. Qualquer acesso ao sistema de ficheiros dava um erro de input/output (o df, o mount). Tentei retomar a atualização, mas a diretoria remota – onde estão os pacotes do Slackware – não estava montada. Descobri, então, que não tinha rede e o sistema não permitia fazer o modprobe da placa de rede: dizia que o dispositivo não existia na diretoria /lib/modules/4.4.13.

Fui à pasta /lib/modules/4.4.13 ver que dispositivos de rede estavam disponíveis, mas a pasta /lib/modules/4.4.13 não existia. No entanto, havia uma mais recente: /lib/modules/4.4.14.

Ah! Durante a atualização, o kernel 4.4.14 já tinha sido instalado, mas como não cheguei a correr o lilo, devido à interrupção da instalação, o sistema ainda estava a arrancar com o 4.4.13. Contudo, as bibliotecas do 4.4.13 já tinham sido removidas. Corri o lilo e reiniciei a máquina. Depois já pude mandar verificar o sistema de ficheiros, com um comando que desliga a máquina e força a verificação no próximo arranque:

shutdown -rF now

Kernel 4.4.14

O Patrick decidiu avançar para a versão 4.4.14 do kernel do Linux, uma vez que encontraram vulnerabilidades no anterior. [1] [2] [3]
Aproveita para ir corrigindo falhas noutros pacotes. Eis a mensagem do Patrick:

Sorry about the delay, but we had to wait for this kernel. At least we were able to get some other good fixes in this week while we were waiting. 🙂

Aqui vão os comandos de atualização da minha rede para esta versão.

Quando reiniciar os hosts das máquinas virtuais, vão ser necessários os comandos seguintes para recompilar o VirtualBox para a nova versão do Kernel do Linux.

cd /root
bat/vboxes stop
cd /usr/local/
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
reboot
exit
cd /usr/local/
chmod +x ./VirtualBox-5.0.22-108108-Linux_amd64.run
./VirtualBox-5.0.22-108108-Linux_amd64.run
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.22-108108.vbox-extpack
cd -
bat/vboxes start

O ficheiro bat/vboxes é um ficheiro de comandos que criei para gerir as máquinas virtuais do VirtualBox.

Entretanto, se alguma das máquinas falhar, posso recuperá-la da mesma forma que já aqui foi documentada antes.

Reiniciar a máquina virtual, ligando ao leitor de CD um ISO com a última versão do sistema operativo. Depois de arrancar e escolher o layout do teclado, executar os comandos seguintes.

mount /dev/sda2 /mnt
mount -t proc proc /mnt/proc (this was the magic step)
chroot /mnt
cd /boot
mkinitrd -c -k 4.4.14 -m ext3
# No ficheiro /etc/lilo.conf colocar a linha
initrd = /boot/initrd.gz
# no fim do ficheiro, logo após a linha
root = /dev/sda2
# depois, executar os comandos:
lilo
reboot

Kernel 4.4.13

Afinal o Patrick ainda avançou para a versão 4.4.13, antes de lançar o Slackware 14.2. Aqui vão os comandos de atualização da minha rede

Quando reiniciar os hosts das máquinas virtuais, vão ser necessários os comandos seguintes para recompilar o VirtualBox para a nova versão do Kernel do Linux.

cd /root
bat/vboxes stop
cd /usr/local/
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
reboot
exit
cd /usr/local/
chmod +x ./VirtualBox-5.0.20-106931-Linux_amd64.run
./VirtualBox-5.0.20-106931-Linux_amd64.run
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack
cd -
bat/vboxes start

O ficheiro bat/vboxes é um ficheiro de comandos que criei para gerir as máquinas virtuais do VirtualBox.

Entretanto, se alguma das máquinas falhar, posso recuperá-la da mesma forma que já aqui foi documentada antes.

Reiniciar a máquina virtual, ligando ao leitor de CD um ISO com a última versão do sistema operativo. Depois de arrancar e escolher o layout do teclado, executar os comandos seguintes.

mount /dev/sda2 /mnt
mount -t proc proc /mnt/proc (this was the magic step)
chroot /mnt
cd /boot
mkinitrd -c -k 4.4.13 -m ext3
# No ficheiro /etc/lilo.conf colocar a linha
initrd = /boot/initrd.gz
# no fim do ficheiro, logo após a linha
root = /dev/sda2
# depois, executar os comandos:
lilo
reboot

Kernel 4.4.12

Esta deve ser a última atualização do kernel no Slackware-current antes de sair a versão 14.2 do Slackware, segundo o Changelog escrito pelo Patrick Volkerding.

Já atualizei o gateway da rede interna. Vou agora atualizar as outras máquinas todas.

No fim vou ter que reiniciar os hosts das máquinas virtuais com os comandos que usei das últimas vezes. Estes comandos são necessários para recompilar o VirtualBox para a nova versão do Kernel do Linux.

cd /root
bat/vboxes stop
cd /usr/local/
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
reboot
exit
cd /usr/local/
chmod +x ./VirtualBox-5.0.20-106931-Linux_amd64.run
./VirtualBox-5.0.20-106931-Linux_amd64.run
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack
cd -
bat/vboxes start

O ficheiro bat/vboxes é um ficheiro de comandos que criei para gerir as máquinas virtuais do VirtualBox.

Entretanto, se alguma das máquinas falhar, posso recuperá-la da mesma forma que já aqui foi documentada antes.

Reiniciar a máquina virtual, ligando ao leitor de CD um ISO com a última versão do sistema operativo. Depois de arrancar e escolher o layout do teclado, executar os comandos seguintes.

mount /dev/sda2 /mnt
mount -t proc proc /mnt/proc (this was the magic step)
chroot /mnt
cd /boot
mkinitrd -c -k 4.4.12 -m ext3
# No ficheiro /etc/lilo.conf colocar a linha
initrd = /boot/initrd.gz
# no fim do ficheiro, logo após a linha
root = /dev/sda2
# depois, executar os comandos:
lilo
reboot