Bem, primeiro de tudo, o que você tem a perder? Se não der certo, você ainda pode fazer uma nova instalação.
Backup
Não é preciso dizer que você precisa fazer backup de itens importantes. Talvez até mesmo fazer um arquivo de /etc
, caso você queira olhar para trás.
Pessoalmente, sempre que eu tento algo radical, eu rsync meu sistema de arquivos raiz para um disco separado antecipadamente. Sempre que algo dá errado, eu apenas rsync volta;). Monte a partição raiz em um ponto de montagem separado, para evitar recursão a todas as partições montadas. E corra algo como:
rsync -av --delete /mnt/root/ /mnt/backup
Para restaurar:
rsync -av --delete /mnt/backup/ /mnt/root
Apenas certifique-se de que o sistema de arquivos de backup é do tipo linux (não FAT ou NTFS), para transferir permissões, links simbólicos e propriedade de arquivos corretamente para cima e para baixo.
Embora nunca tenha sido feito pessoalmente, você poderia tentar as opções abaixo como uma diretriz. Alguns comentários acima sugerem diferentes perfis de compilador, mas a maioria é apenas useflags para gcc e CFLAGS
em make.conf
, não vejo o problema real lá.
Opção nº 1
O que você poderia tentar, mas sem experiência pessoal, é o caminho repo.conf
. Crie um diretório separado, como /usr/gentoo
, e coloque a árvore de portage do Gentoo baunilha lá.
Arquivo /etc/portage/repos.conf/gentoo.conf
:
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /usr/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
priority 10
E algo semelhante deve existir para o Funtoo e com menor prioridade . Depois de executar emerge --sync
, as duas árvores existirão próximas umas das outras. Se existirem os mesmos pacotes de versão, o repositório com maior prioridade ganha (em teoria). Você pode forçar a seleção de pacotes, sufixando o repositório desejado assim:
emerge sys-devel/gcc::gentoo
Usando essa configuração, você pode ir para o Gentoo passo a passo. Os perfis de ambos os repositórios estarão disponíveis para seleção, então você pode experimentar alguns emerge --pretend
de comandos ao selecionar os perfis do Gentoo, brincar com o useflags etc. Emerja gcc, portage da árvore do Gentoo, etc. é ressurgido com as mesmas flags de uso (edite o make.conf ao seu gosto) e você mantém as mesmas CFLAGS, você provavelmente nem precisa esvaziar a árvore do sistema.
Talvez você queira ler o guia de upgrade do GCC e o /usr/share/portage/config/make.conf.example
.
Por fim, você pode descartar a entrada repo.conf
do funtoo e fazer um emerge -uND --newrepo @world
.
Opção nº 2
No passado, quando eu estava fazendo uma grande mudança no perfil, usei esse método.
- Certifique-se de que seu sistema esteja completamente atualizado (
emerge -uND @world
), manipule o conjunto @ preserved-rebuild e depclean . - Mova as entradas de
/var/lib/portage/world
para um conjunto definido pelo usuário. Isso pode ser um conjunto ou, se você quiser ser organizado, categorias de conjuntos. Por exemplo, criei 3 conjuntos, utilizáveis em etapas separadas do processo.
/ etc / portage / conjuntos / boot
sys-boot/grub
sys-kernel/gentoo-sources
[network tools etc]
/ etc / portage / conjuntos / admin
app-editors/vim
app-portage/gentoolkit
[...]
/ etc / portage / conjuntos / ambiente de trabalho
# All the rest
Verifique se /var/lib/portage/world
e word_sets
são arquivos vazios após essa migração.
- Execute
emerge --depclean
para se livrar de todos os pacotes que foram recolhidos por@world
- Por enquanto, limpe
/etc/portage/package.use
. (Mova o (s) arquivo (s) para algum lugar se você pretende usá-lo mais tarde novamente. - Comente a linha
USE=
emmake.conf
- Solte para um perfil mais simples possível. No gentoo seria algo como:
default/linux/amd64/17.0
-
emerge -uND @world && emerge --depclean
Você estará na menor configuração possível para o Funtoo, menor risco de conflitos. - Troque a árvore do portage para usar a do Gentoo. (Provavelmente em
repos.conf
) - Isso deve fornecer o sistema de perfis Gentoo mais simples emerge -1 sys-apps / portage emerge -1 sys-devel / gcc emerge -e @system
-
emerge @boot
E faça o que você precisa fazer para configurar o kernel, o grub etc. (siga o manual) Isso deve fornecer um sistema Gentoo completamente reinicializável. Reinicie se você quiser testar neste momento. - Defina seu perfil desejado, reative useflags em
make.conf
e talvez empunhe sinalizadores específicos empackage.use
-
emerge -uND @world @admin @desktop && emerge --depclean
: se tudo correu bem, você transferiu com sucesso o Funtoo para o Gentoo!
Incompatibilidades
Para responder as perguntas restantes;
Durante a re-instalação de pacotes, o portage irá verificar se o arquivo em /etc/
é original ou modificado. Se eles não forem modificados desde a instalação, o portage irá apenas substituí-los. O mesmo vale para arquivos em /etc/init.d. Esses arquivos, no final, pertencem a um pacote. Uma recompilação de pacotes deve fornecer a versão correta no final.
Os arquivos de configuração modificados são protegidos por config-protect . Eles precisarão ser atualizados usando ferramentas como etc-update
.
Nota
Estou ciente de que esta era uma pergunta antiga e provavelmente não ajuda mais o OP. No entanto, o assunto me interessa. Seria bom que alguém que encontrasse essa resposta fizesse uma tentativa real:).