Como atualizar o KDE para a versão 4.3 no Debian Squeeze

DepoKonqui, o mascote do KDEis de me cansar de ver inúmeros comentários maravilhosos sobre o novo KDE no identi.ca, resolvi experimentá-lo em minha máquina. O problema é que uso a versão testing da Debian (atualmente chamada "Squeeze") e os pacotes da versão 4.3 do KDE só estão disponíveis no repositório do unstable. Assim, munido de muita coragem (e ansiedade por experimentar a nova versão) resolvi atualizar o KDE a partir desse repositório. Apresento abaixo uma descrição do que eu fiz para colocá-lo em minha máquina. Atenção!!! Esse processo é bem artesanal e irá acrescentar pacotes do repositório unstable na sua máquina. Isso significa que o seu ambiente gráfico pode se tornar instável após a instalação (tudo bem que isso pode ser revertido voltando à versão anterior do KDE). Funcionou bem comigo, mas isso não significa que irá funcionar bem com você, ok? Além disso, esse não é exatamente um "guia para iniciantes". Quem for executá-lo deve ter um conhecimento mínimo de edição de arquivos do sistema e de funcionamento do aptitude. Bom, feito o meu alerta terrorista, vamos ao que interessa. 

Todos os passos descritos de aqui em diante devem ser realizados como usuário root ou utilizando o comando "sudo" antes dos comandos descritos. Em primeiro lugar, se você instalou o KDE a partir do metapacote kde-full, a primeira coisa a fazer é desinstalá-lo, com o tradicional aptitude:

aptitude purge kde-full --purge-unused

(o parâmetro "–purge-unused" serve para excluir os arquivos de configuração de todas as dependências que serão desinstaladas)

Agora acrescente um repositório unstable ao seu arquivo  /etc/apt/sources.list. Eu gosto do repositório do Instituto de Física da USP, mas você pode usar o que lhe convir. Repare que você não vai substituir o seu repositório testing, mas sim acrescentar o unstable. Veja abaixo de como ficaria um sources.list simples, apenas com as referências aos dois repositórios padrão da Debian.

## Debian Testing
deb http://sft.if.usp.br/debian/ testing main

## Debian Unstable
deb http://sft.if.usp.br/debian/ unstable main

para instalar estritamente pacotes livres. Ou então:

## Debian Testing
deb http://sft.if.usp.br/debian/ testing main contrib non-free

## Debian Unstable
deb http://sft.if.usp.br/debian/ unstable main contrib non-free

caso você não se importe em usar pacotes não livres. Se você é como eu, deverá também ter vários outros repositórios além dos citados acima, mas é importante que pelo menos os citados acima estejam presentes na sua máquina.

Entretanto, se você fizer somente isso, o seu sistema inteiro será atualizado para unstable. E você não vai querer isso, não é? Para evitar esse problema, basta acrescentar algumas linhas no seu arquivo /etc/apt/preferences. É comum que esse arquivo não exista no seu computador. Nesse caso, basta criá-lo. O conteúdo a ser inserido no arquivo é o seguinte:

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Explicando grosseiramente, o que as linhas acima fazem é informar ao seu sistema que os pacotes do repositório testing tem prioridade sobre os do unstable. Isso garante que ele não irá substituir nenhum dos seus pacotes por um instável. Repare em um detalhe. Os parâmetros "a=testing" e "a=unstable" fazem referência direta ao nome dos repositórios. Assim, se ao invés desses nomes você usou "squeeze" e/ou "sid" no seu sources.list (ou seja, se o seu arquivo não está igual ao exemplo que dei lá no início do artigo), então deve substituir também o "a=" com o valor correspondente, ok?

Após o acréscimo, atualize a base de dados:

aptitude update

Agora vem a pegadinha. Pelo menos até a hora que eu instalei o KDE não existia nenhum metapacote do tipo kde ou kde-full no unstable. Por isso é necessário especificar os pacotes manualmente. A lista de pacotes que eu precisei de instalar/atualizar foi a seguinte:

kdeadmin kdebase kdebase-runtime kdebase-runtime-bin-kde4 kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdeedu kdegames kdegraphics kdelibs5 kdelibs5-dev kdemultimedia kdenetwork kdenlive kdepim kdepimlibs5 kdetoys kdeutils kde-icons-oxygen kde-l10n-ptbr kde-window-manager kdm klipper kscreensaver ksysguard libkephal4 libkfontinst4 libkdecorations4 libkholidays4 libkscreensaver5 libksgrd4 libkworkspace4 libmaildir4 libnepomukquery4 libnepomukqueryclient4 libortp8 libplasma3 libplasmaclock4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libprocesscore4 libprocessui4 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoprano-dev libtaskmanager4 libweather-ion4 libzip1 plasma-widgets-addons plasma-widget-lancelot systemsettings

Pode ser que isso mude de acordo com a máquina do usuário, devido a forma como o seu Debian foi instalado. Eu também posso ter deixado passar algum pacote que ainda não dei falta. Eu gerei essa lista através de tentativa e erro, ou seja, fui tentando instalar os pacotes até não ter mais nenhum problema insolúvel de conflito. Portanto, mais uma vez, pode ser que funcione na sua máquina, pode ser que não. Comentários sobre isso são bem vindos, especialmente se você detectar algum pacote ausente. Dando continuidade, então, instale os pacotes com o comando:

sudo aptitude -t unstable install kdm kdeadmin kdebase kdebase-runtime kdebase-runtime-bin-kde4 kdebase-workspace-kgreet-plugins kdebase-workspace-libs4+5 kdeedu kdegames kdegraphics kdelibs5 kdelibs5-dev kdemultimedia kdenetwork kdenlive kdepim kdepimlibs5 kdetoys kdeutils kde-icons-oxygen kde-l10n-ptbr kde-window-manager klipper kscreensaver ksysguard libkephal4 libkfontinst4 libkdecorations4 libkholidays4 libkscreensaver5 libksgrd4 libkworkspace4 libmaildir4 libnepomukquery4 libnepomukqueryclient4 libortp8 libplasma3 libplasmaclock4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libprocesscore4 libprocessui4 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoprano-dev libtaskmanager4 libweather-ion4 libzip1 plasma-widgets-addons plasma-widget-lancelot systemsettings

Sim, tudo isso aí em cima é uma única linha de comando. Cuidado na hora de copiar e colar para que você não insira nenhum espaço extra ao final das linhas. E se você for observador(a), irá reparar que existe um parâmetro diferente no aptitude acima: "-t unstable". Lembram que acrescentamos umas linhas no arquivo preferences, pra impedir que o aptitude instale pacotes do unstable inadvertidamente? Pois bem, o parâmetro "-t" informa ao programa que ele tem que instalar os pacotes seguintes (e suas dependências) a partir do repositório especificado. Nesse caso, o unstable.

Ao executar o comando acima, o aptitude irá lhe informar que existem dependências a serem resolvidas. Não se assuste com isso. Aceite as sugestões propostas por ele. Serão exibidas então as informações de instalação. Mais uma vez autorize e o processo de download/instalação será iniciado. Ao final de tudo, seu novo KDE estará instalado e configurado e você poderá aproveitar todas as novas opções legais dele. Divirtam-se! Ah, e comentem se a explicação funcionou ou não pra vocês.