TL; DR: É factível, mas complicado. Eu delineei uma alternativa na parte inferior.
Agora a descrição longa , e leve com um grão de sal, pois talvez eu não tenha tomado a melhor rota:
É possível, e eis o que fiz nas duas últimas noites: Existe uma entrada na wiki descrevendo o caminho antigo sem suporte multiarch. É útil para consertar pacotes quebrados.
Para migrar seu sistema básico, faça isso :
$ dpkg --print-architecture
i386
# dpkg --add-architecture amd64
$ dpkg --print-foreign-architectures
amd64
# apt-get update
# apt-get download gcc-4.6-base:amd64 libgcc1:amd64 libc6:amd64 \
libselinux1:amd64 zlib1g:amd64 libbz2-1.0:amd64 dpkg:amd64
# dpkg -i gcc-4.6-base*.deb libgcc*.deb libc*.deb libselinux*.deb \
libbz2*.deb zlib*.deb dpkg*.deb
$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
Alguns dos seus pacotes são então amd64, mas a maioria permanecerá i386. apt-get upgrade
cuidará de alguns pacotes, apt-get -f install
consertará alguns erros, mas a maioria dos pacotes permanecerá em i386. Se você quiser lidar com isso, pule a parte complicada;)
Usar dpkg --get-selections | grep :i386
retornará todos os seus pacotes, que você ainda terá que migrar.
Minha próxima ideia foi fazer:
# apt-get install 'dpkg --get-selections \
| grep i386 \
| awk {'gsub(/:i386/, ":amd64"); print $1'}'
Mas acabou por ser uma má ideia: alguns pacotes não estão disponíveis em amd64 (por exemplo, libc6-i686), o apt-get será confundido, e muitos pacotes serão instalados em ambas as versões. Muito trabalho manual em aptidão deve ser feito.
Mais dificuldades: alguns pacotes essenciais podem ser substituídos, para que você sempre tenha os binários instalados para instalação, mas alguns pacotes precisarão ser removidos e instalados novamente, por exemplo, Eu tive esse problema com tar. Eu coloquei os pacotes em outro sistema, extraí os pacotes via ar p package.deb data.tar.gz | tar zx
e então scp
os arquivos extraídos via scp -r ./* root@other_computer:/
, então os binários estão disponíveis novamente. Enxague e repita e os arquivos scp
ed serão sobrescritos.
O que eu faria em vez disso
Eu fiz o seguinte, sempre que eu troquei de sistema:
Fazer backup de /home
, /etc
(e talvez /var
, /usr/local
, alguns outros arquivos que você alterou, /root
, ..., YMMV).
Obtenha uma lista de pacotes instalados com dpkg --get-selections > packagelist
e copie também o arquivo packagelist
.
Então faça uma reinstalação limpa do Debian, crie todos os usuários novamente, talvez papéis, etc.
Reinstale todos os pacotes com dpkg --set-selections < packagelist; apt-get -f install
.
Copie os arquivos e diretórios salvos em backup e, na maioria das vezes, você está pronto.
Uma desvantagem nessa abordagem: todos os seus pacotes, incluindo bibliotecas, serão marcados como instalados manualmente, para que não sejam desinstalados, quando nenhum pacote depender deles mais.