Migrando do Funtoo para o Gentoo em um sistema em execução

4

Eu tenho um sistema Funtoo agora, mas quero migrar (voltar) para o Gentoo. Se possível, manter um sistema utilizável durante a instalação (não reconstruir do zero usando um live CD). Ambos os sistemas devem ser ~amd64 .

Eu encontrei uma descrição antiga de alguém que fez isso o contrário. Para mim, parece que os passos são:

  1. Substitua /usr/portage/ por um instantâneo do portage do gentoo.
  2. Regenere o manifesto da ebuild do portage.
  3. Reembrir portage e fazer emerge --sync
  4. Reconstruir o sistema ( emerge -e @system ).
  5. Reconstrua o restante quando necessário ( emerge -uND @world )

Eu sinto falta de alguma coisa?

E os perfis? Existem possíveis incompatibilidades nos scripts de inicialização (por exemplo, interfaces de rede e configuração)? Devo esperar problemas do UEFI durante a inicialização (usando o grub)? Existem diferenças no genkernel?

    
por Tim 13.01.2014 / 16:30

1 resposta

1

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.

  1. Certifique-se de que seu sistema esteja completamente atualizado ( emerge -uND @world ), manipule o conjunto @ preserved-rebuild e depclean .
  2. 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.

  1. Execute emerge --depclean para se livrar de todos os pacotes que foram recolhidos por @world
  2. Por enquanto, limpe /etc/portage/package.use . (Mova o (s) arquivo (s) para algum lugar se você pretende usá-lo mais tarde novamente.
  3. Comente a linha USE= em make.conf
  4. Solte para um perfil mais simples possível. No gentoo seria algo como: default/linux/amd64/17.0
  5. emerge -uND @world && emerge --depclean Você estará na menor configuração possível para o Funtoo, menor risco de conflitos.
  6. Troque a árvore do portage para usar a do Gentoo. (Provavelmente em repos.conf )
  7. Isso deve fornecer o sistema de perfis Gentoo mais simples emerge -1 sys-apps / portage emerge -1 sys-devel / gcc emerge -e @system
  8. 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.
  9. Defina seu perfil desejado, reative useflags em make.conf e talvez empunhe sinalizadores específicos em package.use
  10. 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:).

    
por 06.06.2018 / 23:48