How-To :: dist-upgrade Debian Wheezy / Debian Jessie


A promessa que fiz ontem foi em vão, ao invés de atualizar para o Devuan (o que é fácil), resolvi atualizar diretamente para o Debian Jessie, as configurações utilizadas são as mesmas, exceto o sources.list e os ajustes pós-upgrade.

E assim ficou meu Debian Wheezy apos o dist-upgrade para o Debian Jessie:

informações pós dist-upgrade...
informações pós dist-upgrade…
informações do sistema, novo kernel, novas versões de programas, dispositivos reconhecidos no Thunar...
informações do sistema, novo kernel, novas versões de programas, dispositivos reconhecidos no Thunar…

* ver nota relativa a montagem de dispositivos no fim do artigo.

Informações do sistema.

edps@debian:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.9 (wheezy)
Release:	7.9
Codename:	wheezy

edps@debian:~$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"

edps@debian:~$ cat /etc/debian_version 
7.9

edps@debian:~$ cat /etc/issue
Debian GNU/Linux 7 \n \l
a cobaia... o excelente Debian Wheezy 7.9.
a cobaia… o excelente Debian Wheezy 7.9.

sources.list.

Apague tudo o que existe em seu/etc/apt/sources.list (ou deixe-os comentados) e cole os dois blocos a seguir:

sources.list Debian Jessie + Backports:

### Debian Jessie/Stable + Backports + LoadBalancer (http://httpredir.debian.org).
### GPGKey: apt-get update && apt-get install debian-archive-keyring
deb http://httpredir.debian.org/debian/ jessie main contrib non-free
deb http://httpredir.debian.org/debian-security/ jessie/updates main contrib non-free
deb http://httpredir.debian.org/debian/ jessie-updates main contrib non-free
deb http://httpredir.debian.org/debian/ jessie-proposed-updates main contrib non-free
deb http://httpredir.debian.org/debian/ jessie-backports main contrib non-free

sources.list Devuan:

Ele será necessário para atualizar o polikit-1 e reinstalar o gvfs e seus pares.

### Devuan repository.
### GPGKey: apt-get update; apt-get install devuan-keyring devuan-baseconf
deb http://packages.devuan.org/merged jessie main contrib non-free
deb http://packages.devuan.org/merged jessie-updates main contrib non-free
deb http://packages.devuan.org/merged jessie-proposed-updates main contrib non-free
deb http://packages.devuan.org/merged jessie-backports main contrib non-free
o sources.list utilizado...
o sources.list utilizado…

Caso exista algo lá em /etc/apt/sources.list.d, convém movê-los de local afim de realizar uma instalação limpa. Eu não farei isto, realizarei a atualização com todos os repositórios habilitados e são esses os que uso (observem que já alterei a release para jessie nos repos deb-multimedia e Debian Mozilla Team):

### Repositório Local de Pacotes (ver referência).
### Ref: http://va.mu/0HP0
### deb file:/home/edps/build/debs /

### deb-multimedia.
### Chave GPG: apt-get update && apt-get install deb-multimedia-keyring
### deb http://www.deb-multimedia.org wheezy main non-free
### deb http://www.deb-multimedia.org wheezy-backports main
deb http://www.deb-multimedia.org jessie main non-free
deb http://www.deb-multimedia.org jessie-backports main

### DropBox.
### deb [arch=i386,amd64] http://linux.dropbox.com/debian wheezy main

### Fish SHELL.
### Chave GPG: wget http://download.opensuse.org/repositories/shells:fish:release:2/Debian_7.0/Release.key; sudo apt-key add - < Release.key
deb http://download.opensuse.org/repositories/shells:/fish:/release:/2/Debian_7.0/ /

### Google Chrome.
### deb http://dl.google.com/linux/chrome/deb/ stable main

### Iceweasel (Debian Mozilla Team).
### Chave GPG: apt-get update && apt-get install pkg-mozilla-archive-keyring
### deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
deb http://mozilla.debian.net/ jessie-backports iceweasel-release
deb http://mozilla.debian.net/ jessie-backports iceweasel-beta
deb http://mozilla.debian.net/ jessie-backports iceweasel-aurora

### Opera Web Browser.
### Chave GPG: wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
deb http://deb.opera.com/opera/ stable non-free

### Vivaldi Browser.
deb http://repo.vivaldi.com/archive/deb/ stable main

Após modificar e salvar os arquivos, prossiga com:

# apt-get update
# apt-get install devuan-keyring devuan-baseconf
# apt-get update
atualização das listas de pacotes...
atualização das listas de pacotes…
lista de pacotes a serem removidos...
lista de pacotes a serem removidos…
sem sinal de systemd, pulseaudio ou network-manager...
sem sinal de systemd, pulseaudio ou network-manager…
idem...
idem…
1579 pacotes atualizados, 484 novos pacotes, 39 removidos e 2 não atualizados...
1579 pacotes atualizados, 484 novos pacotes, 39 removidos e 2 não atualizados…
início do download...
início do download…
término do download...
término do download…

apt-pinning.

Agora crie os arquivos que impediram a instalação do systemd (e se quiser, do pulseaudio e network-manager):

/etc/apt/preferences.d/no-systemd):

Package: systemd-sysv
Pin: release o=Debian
Pin-Priority: -1

Package: systemd-shim
Pin: release o=Debian
Pin-Priority: -1

Package: systemd
Pin: release o=Debian
Pin-Priority: -1

/etc/apt/preferences.d/no-pulseaudio):

Package: pulseaudio
Pin: release o=Debian
Pin-Priority: -1

/etc/apt/preferences.d/no-network-manager):

Package: network-manager
Pin: release o=Debian
Pin-Priority: -1

Package: network-manager-gnome
Pin: release o=Debian
Pin-Priority: -1

Atualização do sistema.

Nesse momento da atualização, desabilite todos os repositórios do Devuan, porque aqui queremos usar um Debian puro (o que não será possível, como poderá ser visto mais a frente).

E repetindo: nesse momento, desabilite todos os repositórios do Devuan!

Feito isto, proceda assim:

# apt-get update
# apt-get dist-upgrade
início da atualização...
início da atualização…
continuação da atualização...
continuação da atualização…
e após 1h e + um pouco: término da atualização...
e após 1h e + um pouco: término da atualização…
atualização do Grub...
atualização do Grub…

* quando o terminal ficar parado, exibindo um log possivelmente do apt-list-bugs, apenas tecle q;

* quando houver pergundas sobre o reinício de serviços apenas tecle ENTER;

* quando houver pergundas acerca da substituição de arquivos de configuração, apenas tecle ENTER;

Ao final da atualização remova os pacotes obsoletos:

# apt-get autoremove --purge

Habilite os repositórios do Devuan no sources.list (desabilitando os do Jessie).

E reinstale o policykit-1 e os pacote que foram removidos durante a atualização:

$ sudo apt-get install policykit-1
$ sudo apt-get install gvfs gvfs-backends gvfs-daemons udisks2 

Agora, habilite novamente os repos do Debian Jessie e (desabilite os do Devuan).

E proceda com sua vidinha normal, aqui aproveitei para reinstalar o K3B que também fora removido durante a atualização:

$ sudo apt-get install k3b k3b-i18n 

Removi um pacote que não pode ser atualizado (e que não sei sua utilidade):

$ apt-cache search db5.1-util
$ sudo apt-get --purge remove db5.1-util
$ sudo apt-get autoremove --purge

Fiz um faxinão com o deborphan:

$ sudo deborphan | xargs sudo apt-get -y remove --purge
$ sudo apt-get autoremove --purge

E por fim, rolei todo o sistema para o Jessie Backports, o que traz como benefício, o kernel 4.2.0, LibreOffice 5.0.2.2, Iceweasel 43.0a2 (2015-10-19), entre outros:

$ sudo apt-get -t jessie-backports dist-upgrade
$ sudo apt-get autoremove --purge
informações pré 2º dist-upgrade, agora para o jessie-backports...
informações pré 2º dist-upgrade, agora para o jessie-backports…
lista de pacotes a serem atualizados (kernel, libreoffice e outros).
lista de pacotes a serem atualizados (kernel, libreoffice e outros).

E removi o velho kernel 3.2.0.4 do Debian Wheezy:

$ sudo apt-get --purge remove linux-image-3.2.0-4-686-pae linux-headers-3.2.0-4-common linux-headers-3.2.0-4-686-pae

Vídeos?

Os vídeos (na verdade gravações das sessoes de terminal) podem ser vistos nos links abaixo, graças a fantástica ferramenta asciinema:

Problemas?

Felizmente tive apenas um problema no pós-instalação e o mesmo refere-se a montagem de dispositivos USB (não o smartphone), mas o HD externo portátil:

err
O estúpido erro!

A solução encontrada é uma variante para o Debian de uma dica que fiz para o Arch Linux:

Montando dispositivos USB no Arch Linux

No modo Debian faremos a mesma coisa, exceto que utilizaremos o grupo plugdev no lugar de storage, logo, os arquivos ficarão assim

/etc/polkit-1/localauthority/50-local.d/org.freedesktop.udisks2.pkla:

[Storage Permissions]
Identity=unix-group:plugdev
Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.modify-device
ResultAny=yes
ResultInactive=yes
ResultActive=yes

/etc/polkit-1/rules.d/10-udisks2.rules:

// Allow udisks2 to mount devices without authentication
// for users in the "plugdev" group.
polkit.addRule(function(action, subject) {
 if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
      action.id == "org.freedesktop.udisks2.filesystem-mount") &&
subject.isInGroup("plugdev")) {
       return polkit.Result.YES;
   }
});
polkit.addRule(function(action, subject) {
   if ((action.id == "org.freedesktop.udisks.filesystem-mount-system-internal") &&
subject.isInGroup("plugdev")) {
       return polkit.Result.YES;
    }
});

Então, crie as pastas necessárias e adicione seu usuário ao grupo plugdev:

$ sudo mkdir -p /etc/polkit-1/{rules.d,localauthority/50-local.d}
$ sudo adduser $USER plugdev

Salve os arquivos acima em suas respectivos pastas.

E por fim reinicie o PC (ou como eu, reinicie o DBUS e o UDEV):

$ sudo service udev restart
$ sudo service dbus restart
$ sudo udevadm control --reload

e pronto!

Smartphone A
Smartphone e HD portátil montados corretamente

Uma outra coisa a ser observada é a extrema dependência pela libpulse0 por inúmeros pacotes de audio ou vídeo (mplayer, vlc, audacious-plugins, openjdk-jre e tantos outros), então, assim como no caso da libsystemd0, este pacote deverá ser mantido por causa da dependência dos programas citados.

listagens dos sub-demons instalados! rsrs
listagens dos sub-demons instalados! rsrs

A menos que você queira usar o player Parole, em meus testes o único que não depende do tal pacote (testei vlc, smplayer, mplayer, mplayer2, mpv, gnome-mplayer, gxine, xine-ui, totem, etc:

o singular player Parole e a não dependência a libpulse0.
o singular player Parole e a não dependência a libpulse0.

Caso você venha a remover a libpulse0, saiba que um tornado passará em seu PC (muitos pacotes serão removidos), mas até nisso vejo vantagem:

Este slideshow necessita de JavaScript.

Após a remoção de tudo o que dependa da libpulsed0 você pode reinstalá-los de forma reduzida:

$ sudo apt-get --no-install-recommends install pkg1 pkg2 pkg3 freepats-

Conclusão.

Como já dito, diferentemente de atualizar para o Devuan, fazê-lo para o Jessie dará muito mais trabalho e por causa da dependência do systemd (pelo menos o policykit-1 e o gvfs terão que ser do Devuan), senão tixau usabilidade no desktop.

O pulseaudio e o network-manager novamente foram incluidos primeiro porque não gosto deles e segundo pois podem vir a chamar o systemd.

Seja qual for o método (do Jessie para o Devuan, do Wheezy para o Devuan ou este, não será possível instalar Gnome ou Cinnamon por causa da dependência dos 3 demônios citados anteriormente, se estes forem os seus DE’s preferidos, esqueça este how-to ou os demais.

A simulação de atualização do Debian Wheezy para o Devuan pode ser vista no link abaixo:

How-To :: Devuan a partir de uma instalação real do Debian Wheezy

IntÉ!

How-To :: dist-upgrade Debian Wheezy / Debian Jessie

Deixe um comentário