The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Upgrade Instructions/1.2-release/pt-br"
Line 5: | Line 5: | ||
uma cópia de segurança, então você está assumindo o risco de ter seu sistema quebrado e lidar com conserto ou ainda precisar de uma reinstalação completa. Embora estas etapas de atualização sejam bastante robustas, serão removidos pacotes que aparentemente não são mais utilizados em seu sistema, e embora todas as precauções sejam tomadas para evitar a quebra de outros pacotes, em alguns casos especiais isso pode resultar na remoção de pacotes que você realmente precisa. Tipicamente isso não acontecerá, mas, como essa possibilidade existe, é melhor estar preparado para essa possibilidade, particularmente em sistemas críticos. | uma cópia de segurança, então você está assumindo o risco de ter seu sistema quebrado e lidar com conserto ou ainda precisar de uma reinstalação completa. Embora estas etapas de atualização sejam bastante robustas, serão removidos pacotes que aparentemente não são mais utilizados em seu sistema, e embora todas as precauções sejam tomadas para evitar a quebra de outros pacotes, em alguns casos especiais isso pode resultar na remoção de pacotes que você realmente precisa. Tipicamente isso não acontecerá, mas, como essa possibilidade existe, é melhor estar preparado para essa possibilidade, particularmente em sistemas críticos. | ||
Agora, edite seu arquivo {{f | /var/lib/portage/world}}. Procure por campos do tipo catpkgs (ou seja, "category / packagename") que você não usa mais ou não precisa no seu sistema e remova-os. Considere também os pacotes que você pode ter instalado com {{c | --oneshot}} que não estão no arquivo world mas deveriam estar, e adicione-os. O sistema Portage usará {{f | /var/lib/portage/world}} como uma lista principal de pacotes que devem estar ativados em seu sistema. Vamos agora olhar para a limpeza de quaisquer pacotes desnecessários que não estejam no conjunto de @world. Iremos remover esses pacotes por alguns motivos. Primeiro, eles não serão atualizados com uma atualização do {{c | @world}}. Segundo, porque eles não estão incluídos no {{c | @world}}, eles podem estar desatualizados e ter dependências antigas e problemáticas que podem dificultar a nossa atualização, uma vez que o portage não vai querer "quebrar" as dependências desses pacotes órfãos. Terceiro, quando fazemos um {{c | emerge @ preserved-rebuild}}, podemos acabar reconstruindo pacotes que não precisamos. Portanto, remover pacotes desnecessários é uma boa ideia por todas essas razões. | Agora, edite seu arquivo {{f | /var/lib/portage/world}}. Procure por campos do tipo catpkgs (ou seja, "category / packagename") que você não usa mais ou não precisa no seu sistema e remova-os. Considere também os pacotes que você pode ter instalado com {{c | --oneshot}} que não estão no arquivo world mas deveriam estar, e adicione-os. O sistema Portage usará {{f | /var/lib/portage/world}} como uma lista principal de pacotes que devem estar ativados em seu sistema. Vamos agora olhar para a limpeza de quaisquer pacotes desnecessários que não estejam no conjunto de @world. Iremos remover esses pacotes por alguns motivos. Primeiro, eles não serão atualizados com uma atualização do {{c | @world}}. Segundo, porque eles não estão incluídos no {{c | @world}}, eles podem estar desatualizados e ter dependências antigas e problemáticas que podem dificultar a nossa atualização, uma vez que o portage não vai querer "quebrar" as dependências desses pacotes órfãos. Terceiro, quando fazemos um {{c|emerge@preserved-rebuild}}, podemos acabar reconstruindo pacotes que não precisamos. Portanto, remover pacotes desnecessários é uma boa ideia por todas essas razões. | ||
{{Note|Você pode estar se perguntando - quais são esses pacotes no meu sistema que não fazem parte do conjunto do @world? Eles podem ser várias coisas. Primeiro, eles poderiam ser dependências de construção para certos pacotes. Eles podem ser antigos slots de pacotes que você já usa - por exemplo, uma versão antiga do PHP. Eles também podem ser pacotes que eram dependências de certos pacotes, mas não são mais necessários para esses pacotes - possivelmente devido a alterações nos sinalizadores (flags) utilizadas em {{c | USE}}. Geralmente, os pacotes virtuais fazem parte desse grupo de pacotes e geralmente é seguro remover os pacotes virtuais. Eles ressurgirão (re-emerged) no futuro se forem referenciados por um ebuild.}} | {{Note|Você pode estar se perguntando - quais são esses pacotes no meu sistema que não fazem parte do conjunto do @world? Eles podem ser várias coisas. Primeiro, eles poderiam ser dependências de construção para certos pacotes. Eles podem ser antigos slots de pacotes que você já usa - por exemplo, uma versão antiga do PHP. Eles também podem ser pacotes que eram dependências de certos pacotes, mas não são mais necessários para esses pacotes - possivelmente devido a alterações nos sinalizadores (flags) utilizadas em {{c | USE}}. Geralmente, os pacotes virtuais fazem parte desse grupo de pacotes e geralmente é seguro remover os pacotes virtuais. Eles ressurgirão (re-emerged) no futuro se forem referenciados por um ebuild.}} |
Revision as of 21:59, September 19, 2018
O objetivo dessas instruções é fornecer aos usuários do Funtoo Linux um conjunto confiável e consistente de instruções para atualizar o Funtoo Linux de 1.0 para 1.2. Por favor, ajude a garantir que estas instruções sejam completas e guiem os usuários através de possíveis complicações. Como este é um Wiki, faça as alterações necessárias na página para tornar essas instruções 100% confiáveis. Obrigado!
Estas instruções irão guiá-lo através do processo de atualização do seu sistema do Funtoo Linux 1.0 para 1.2. Primeiro, por favor, certifique-se de ter criado uma cópia de segurança (backup) do seu sistema. Se você optar por continuar sem uma cópia de segurança, então você está assumindo o risco de ter seu sistema quebrado e lidar com conserto ou ainda precisar de uma reinstalação completa. Embora estas etapas de atualização sejam bastante robustas, serão removidos pacotes que aparentemente não são mais utilizados em seu sistema, e embora todas as precauções sejam tomadas para evitar a quebra de outros pacotes, em alguns casos especiais isso pode resultar na remoção de pacotes que você realmente precisa. Tipicamente isso não acontecerá, mas, como essa possibilidade existe, é melhor estar preparado para essa possibilidade, particularmente em sistemas críticos.
Agora, edite seu arquivo /var/lib/portage/world
. Procure por campos do tipo catpkgs (ou seja, "category / packagename") que você não usa mais ou não precisa no seu sistema e remova-os. Considere também os pacotes que você pode ter instalado com --oneshot
que não estão no arquivo world mas deveriam estar, e adicione-os. O sistema Portage usará /var/lib/portage/world
como uma lista principal de pacotes que devem estar ativados em seu sistema. Vamos agora olhar para a limpeza de quaisquer pacotes desnecessários que não estejam no conjunto de @world. Iremos remover esses pacotes por alguns motivos. Primeiro, eles não serão atualizados com uma atualização do @world
. Segundo, porque eles não estão incluídos no @world
, eles podem estar desatualizados e ter dependências antigas e problemáticas que podem dificultar a nossa atualização, uma vez que o portage não vai querer "quebrar" as dependências desses pacotes órfãos. Terceiro, quando fazemos um emerge@preserved-rebuild
, podemos acabar reconstruindo pacotes que não precisamos. Portanto, remover pacotes desnecessários é uma boa ideia por todas essas razões.
Você pode estar se perguntando - quais são esses pacotes no meu sistema que não fazem parte do conjunto do @world? Eles podem ser várias coisas. Primeiro, eles poderiam ser dependências de construção para certos pacotes. Eles podem ser antigos slots de pacotes que você já usa - por exemplo, uma versão antiga do PHP. Eles também podem ser pacotes que eram dependências de certos pacotes, mas não são mais necessários para esses pacotes - possivelmente devido a alterações nos sinalizadores (flags) utilizadas em USE
. Geralmente, os pacotes virtuais fazem parte desse grupo de pacotes e geralmente é seguro remover os pacotes virtuais. Eles ressurgirão (re-emerged) no futuro se forem referenciados por um ebuild.
Execute o seguinte comando e revise cuidadosamente sua saída. Não diga "y" neste ponto:
root # emerge -p --depclean --ignore-soname-deps=n
A opção --ignore-soname-deps=n
impedirá que pacotes que forneçam bibliotecas necessárias sejam removidos, mesmo que eles pareçam "órfãos". Essa é uma medida de segurança adicional ao limpar dependências em seu sistema.
Agora, revise a lista de pacotes que serão removidos. Veja se alguma coisa que você precise não está nesta lista. Isso indicaria que você precisa adicionar o cat / pkg para /var/lib/portage/world
antes de continuar. Quando a lista estiver OK, digite:
root # emerge -a --depclean --ignore-soname-deps=n
... e digite "y" [enter] para remover pacotes antigos.
Agora, você deve ter um sistema ainda em funcionamento, mas com todos os pacotes "extras" removidos. Agora é hora de atualizar os pacotes que permaneceram.
Agora você precisa executar o comando ego sync
e atualizar para a última série do ego-2.4.x disponível.
root # ego sync root # emerge -v1 ego
Se você tiver dificuldade em satisfazer as dependências, por qualquer motivo, o comando seguinte deve funcionar:
root # emerge -v1 --nodeps ego
Se você ainda não consegue mesclar (merge) usando o emerge, o comando seguinte deve funcionar:
root # cd /var/git/meta-repo/kits/core-kit/app-admin/ego root # ebuild ego-2.4.2.ebuild merge
Uma vez que uma nova versão de ego é mesclada, edite seu arquivo /etc/ego.conf para ficar assim:
/etc/ego.conf
[global]
release = 1.2
Agora, execute os próximos passos como superusuário (root).
root # ego sync
Isso ativará os novos kits da versão 1.2 de Funtoo. Agora, é hora de começar a atualização:
root # emerge -u1 gcc
Isso atualizará o compilador gcc.
Este é o momento ideal para revisar a configuração da sub-arquitetura da sua instalação do Funtoo Linux. O Funtoo Linux 1.2 possui otimizações disponíveis para as 5ª e a 6ª gerações de processadores da Intel, bem como processadores AMD da família Ryzen. Verifique se a sub-arquitetura atual, bem como as sub-arquiteturas disponíveis, digitando o seguinte comando:
root # ego profile list subarch === subarch: === amd64-bulldozer, amd64-excavator, amd64-jaguar, amd64-k10 amd64-k8, amd64-k8+sse3, amd64-piledriver, amd64-steamroller amd64-zen, atom_64, btver1_64, core-avx-i, core2_64, corei7 generic_64, intel64-broadwell, intel64-haswell, intel64-ivybridge intel64-nehalem, intel64-sandybridge, intel64-silvermont, intel64-skylake intel64-westmere*, native_64, nocona, opteron_64, xen-pentium4+sse3_64 root #
Se sua CPU é suportada e você assim desejar, você poderá atualizar sua sub-arquitetura para uma otimizada para o seu hardware. Os novos perfis de sub-arquitetura disponíveis são:
intel64-skylake
- Optimized for Intel Core 6th Generation Processors (see intel64-skylake for more info.)intel64-broadwell
- Optimized for Intel Core 5th Generation Processors (see intel64-broadwell for more info.)amd64-zen
- Optimized for AMD Ryzen Processors.
Use o comando lscpu
para visualizar informações detalhadas sobre sua CPU e faça uma pesquisa na Web para determinar o nome da geração a que sua CPU pertençe. Então, modifique a sub-arquitetura de seu sistema da seguinte forma:
root # ego profile subarch intel64-skylake === Enabled Profiles: === arch: x86-64bit build: current subarch: intel64-skylake flavor: core >>> Set subarch to intel64-skylake. root ##b##Updating profiles at /etc/portage/make.profile/parent... root #
Agora que garantimos que temos um conjunto de sub-arquitetura ideal para o seu sistema, é hora de começar o processo de reconstrução de pacotes críticos com o novo compilador. Vamos começar com a glibc. Digite o seguinte comando:
root # emerge -u1 glibc libnsl libtirpc rpcsvc-proto
A Glibc e suas dependências (e pacotes relacionados) serão atualizados.
Mover seu sistema para a versão 1.2 significa mover python para a versão 3.6. Isso é feito com os seguintes passos:
root # emerge -u1 =dev-lang/python-3.6* root # emerge -C =dev-lang/python-3.4*
Isso garantirá que teremos o python-3.6 pronto e instalado, e o antigo python-3.4 removido. A remoção do python-3.4 é importante para garantir que os módulos python sejam atualizados corretamente.
Alguns pacotes dependem que uma versão de Ruby esteja disponível no sistema, e ter versões obsoletas atualmente instaladas no sistema podem causar problemas. Para removê-las do seu sistema, execute:
root # emerge -C \<=dev-lang/ruby-2.3.0
Para atualizar para 1.2, você tem que reconstruir todos os pacotes, o que garantirá que seu sistema esteja totalmente otimizado com o novo compilador gcc.
Inclua a opção --jobs=3
(ou um valor maior) como um parâmetro para o comando emerge
se você tem memória RAM suficiente e vários núcleos de CPU para construir pacotes em paralelo.
Aqui está o que você precisa para executar:
root # emerge --emptytree -a @world
Isso reconstruirá totalmente todos os pacotes no seu sistema. Vai levar um tempo (um tempo longo) , mas vai garantir que tudo seja recém reconstruído. Depois de concluído com êxito, isso resultará em um sistema atualizado, com binários potencialmente melhor otimizados, aproveitando as melhorias mais recentes do compilador gcc.
Se o comando anterior falhar, você deve executar 'emerge -uDN1 --keep-going @world' para assegurar que todas as dependências sejam totalmente resolvidas e reconstruídas, então execute o comando 'emerge --emptytree -a @world' novamente para garantir que cada pacote seja reconstruído com o novo compilador gcc.
Finalmente, execute etc-update
ou dispatch-conf
:
root # etc-update
Se seu kernel foi atualizado, faça as mudanças necessárias no arquivo /etc/boot.conf
para tornar esse novo kernel o padrão, e então execute novamente boot-update
para atualizar o seu arquivo /boot/grub/grub.cfg
:
root # boot-update
Agora é um bom momento para realizar uma pré verificação de quaisquer pacotes instalados que possam exigir atualizações em seus arquivos de configuração. Um exemplo notável é o php-fpm - você pode precisar executar as seguintes etapas se o seu sistema usar o php-fpm:
root # cp /etc/php/fpm-php-7.1/php* /etc/php/fpm-php-7.3/php*
Isso garantirá que as configurações usadas para a versão do php-fpm instalada anteriormente sejam aplicadas à versão atual.
Se você encontrar algum outro pacote que precise de etapas manuais semelhantes após a atualização, por favor, registre-os aqui para o benefício de outros! Obrigado.
Neste ponto, a migração para o 1.2 deve estar completa. Em um momento conveniente, reinicie o sistema e faça uma verificação completa de todos os serviços para garantir que eles tenham sido iniciados corretamente:
root # reboot
Após a reinicialização:
root # rc-status
Agora, faça uma verificação final de quaisquer serviços de produção para garantir que eles estejam operando corretamente, carregando páginas da Web, enviando e-mails de teste e etc.
Neste ponto, você está agora atualizado para o Funtoo Linux 1.2! Por favor, relate quaisquer falhas (bugs) em https://bugs.funtoo.org e informe-nos sobre quaisquer problemas que você enfrente como parte dessa atualização. Identifique qualquer problema relacionado a dependências ou relacionados à funcionalidade em seu sistema atualizado.