Quando devo Atualizar o python da distro?

Olá, eu sou Erik, sou “novo” no linux, pois raramente uso o linux por muito tempo. Visto que programação em python parece ser mais fluida no linux e menos problemática, estou tentando manter um DualBoot (Windows 10 e Linux Mint 21.3)

Recentemente instalei o ubuntu 21.03 ou 21.04 mas o sistema quebrou quando fui instalar a nova versão do python 3.11, sendo a versão que veio de fabrica era a 3.10.

Também alterei para que ao chamar no terminal python o 3.11 seria a versão que ele puxava e ao chamar python3 vinha a versão 3.10
Ao reiniciar depois de atualizar com apt-get update o sistema mostrava uma tela branca, com algo escrito que não lembro mais :laughing: acho que é algo parecido com essa abaixo :arrow_down:

Para evitar que algo assim aconteça novamente pergunto como sei quando atualizar o python do sistema?

Encontrei um post similar tirando o fato que eu não exclui o python 3.10

Desinstalar python 3.8 no Zorin


Uma segunda pergunta: Tendo como ponto não quebrar o sistema, como coloco o python mais recente ou um de minha escolha como “default” quando for criar ambientes virtuais? Eu uso o virtualenv (venv)

Atualiza o Ubuntu para o 23.10 que vai atualizar o python. O Ubuntu 24.04 que vai ter o python 3.11 vai sair em abril, ou seja se quiser pode aguardar para att para o 24.04.

1 curtida

Olá @Erik_MD, tudo bem contigo?

Manualmente? A resposta mais objetiva é “NUNCA”.

A maioria das distribuições Linux usam Python em várias partes críticas do sistema e mexer nisso pode ser catastrófico, como você bem percebeu. Se você usa Python para programar, sugiro que use ferramentas como o ASDF para ter múltiplas versões de uma mesma linguagem sem afetar a base do seu sistema.

:vulcan_salute:

7 curtidas

obrigado, não sabia que tinha ubuntu 23 pra cima

Sai novas versões do Ubuntu a cada 6 meses. Com os pacotes mais atuais.
@Erik_MD Não precisa formatar não, é só usar o programa de atualização do sistema que vem com a distro Ubuntu ou se não vim é so instalar o tutorial a seguir diz que esse programa é o sudo apt-get install update-manager-core: Como atualizar seu sistema operacional Ubuntu para a versão mais recente | Dell Brasil

Faz backup antes, se a att falhar você não perde nada.

1 curtida

Tudo bem sim! :grinning: @eddiecsilva obrigado pela resposta.

Consegui entender algumas coisas como a instalação básica, outras nem tanto.
Também vi que o asdf tem um programa de ambiente virtual próprio, Direnv ?

Encontrei esse vídeo que me esclareceu um pouco. asdf: gerenciador de versões | instalação e utilização

Agora só não entendi como o asdf se aplica na criação das vens; se é melhor usar o Direnv ou se pode usar algum outro.

Ah caso ajude, minha IDE é o VS-Code

Sugiro começar por este video do Fábio Akita.

:vulcan_salute:

3 curtidas

@eddiecsilva Obrigado pela sugestão, acabou dando muito mais trabalho do era pra dar, fiquei umas 10 horas tentando corrigir um erro do ASDF, aparentemente muitas pessoas tem ele.
Para corrigir eu dei permissão à pasta do asdf usando este comando:

sudo chown -R $(whoami) $HOME/.asdf/

pelo o que eu entendi $(whoami) é o nome do usuário, $Home é o caminho da home, o resto eu não saquei não :joy:

1 curtida

Olá, Erik! Bem-vindo de volta ao mundo do Linux. Pelo que você descreveu, parece que houve um problema durante a atualização ou configuração da versão do Python, o que pode ter causado um conflito no sistema. No Linux, o Python é frequentemente uma parte crítica do sistema operacional, com muitos componentes do sistema e software de terceiros dependendo dele. Alterar a versão padrão do Python pode levar a problemas de dependência e, em casos raros, a problemas no sistema, como você experimentou.

Aqui estão algumas etapas que você pode seguir para evitar esse tipo de problema no futuro e algumas sugestões para resolver o problema atual:

Evitando Problemas com Versões do Python

  1. Use Ambientes Virtuais: Para desenvolvimento em Python, é altamente recomendável usar ambientes virtuais. Isso permite instalar diferentes versões do Python, bem como diferentes pacotes, em ambientes isolados, sem afetar a versão do Python do sistema. Você pode usar venv (incluído por padrão no Python 3.3 e posteriores) ou virtualenv.
  2. Instale Novas Versões do Python Paralelamente: Ao invés de substituir a versão do Python do sistema, você pode instalar uma nova versão paralelamente e alternar entre elas conforme necessário. Ferramentas como pyenv são excelentes para gerenciar múltiplas versões do Python no mesmo sistema.

Resolvendo o Problema Atual

Se o seu sistema não está iniciando corretamente, aqui estão algumas opções que você pode tentar:

  1. Recuperar através do Modo de Recuperação: Tente acessar o modo de recuperação do Ubuntu para ver se você consegue logar em um terminal. A partir daí, você pode tentar desfazer as mudanças que fez ou reinstalar o Python 3.10 como a versão padrão.
  2. Reinstalação do Python: Se você conseguir acessar o terminal pelo modo de recuperação, tente reinstalar a versão original do Python que veio com o sistema. Você pode usar sudo apt-get install --reinstall python3.10 para reinstalar o Python 3.10.
  3. Live CD/USB e Chroot: Se o modo de recuperação não funcionar, você pode usar um Live CD/USB do Ubuntu para iniciar. Uma vez iniciado a partir do Live CD/USB, você pode montar o sistema de arquivos do seu sistema quebrado e usar chroot para efetuar como se estivesse no sistema quebrado. A partir daí, você pode tentar reparar o sistema, reinstalando o Python ou desfazendo as mudanças.
  4. Backup de Dados: Se tudo mais falhar, você pode usar o Live CD/USB para fazer backup de seus dados importantes antes de tentar uma reinstalação do sistema.

Lembre-se, manipular a versão do Python do sistema pode ser arriscado em distribuições Linux que dependem do Python para aplicações do sistema. Sempre considere usar ambientes virtuais ou pyenv para desenvolvimento em Python para evitar esses problemas.

1 curtida

Uai meu, porque não atualizar para o Ubuntu 23.10 e dps quando lançado para o 24.04 para ter a ultima versão do Python. Atualização de sistema não tem nada de mais.
Tipo, backup agente sempre tem então é só atualizar.

1 curtida

Olá @Erik_MD, o pessoal já deu dicas muito boas aqui. Gostaria apenas de acrescentar que você também pode optar por usar um sistema rolling release para ter as versões mais recentes das linguagens de programação.

Exemplos são o Arch Linux, Manjaro e openSUSE Tumbleweed. Eu particularmente tenho usado por um bom tempo o Tumbleweed e recomendo por ser bastante estável, e vir com o suporte a snapshots Btrfs já configurado, com a ferramenta Snapper. Assim, se algo der errado no sistema, é fácil reverter a um estado anterior, dando boot em um snapshot a partir do GRUB.

1 curtida

Seria esse “rls” que eles colocam depois do nome da distro?

Bom, não me lembro de ter visto alguma distro com “rls” no nome. Cite um exemplo.

Eu confundi o termo "rolling release"com “LTS” (Long Term Support), acabei só presumindo a abreviação

Manjaro, Biglinux, Arch Linux, Debian Sid, são todas RR.

1 curtida

Ah sim. Exatamente, o Ubuntu, por exemplo, a cada dois anos lança uma versão LTS que recebe suporte por 5 anos, se não me engano.

Diferente das rolling release, essas versões não atualizam as versões da maior parte dos softwares que vêm no sistema operacional, incluindo as linguagens de programação, pois o foco principal desses sistemas é a estabilidade e não as novidades, por isso são mais recomendados para uso em ambientes corporativos e servidores, por exemplo. As atualizações que ocorrem geralmente são de segurança.

O Fedora não é rolling release, embora também não seja LTS, mas ele tem lançamentos fixos (Fedora 38, Fedora 39…), e para obter as últimas novidades você tem que fazer um upgrade para a versão mais recente do sistema operacional.

1 curtida

Ae, vc tem razão.

1 curtida

Eu adoro o Biglinux, mas para questões didáticas escolhi uma distro Debian para me familiarizar com os comandos para assim migrar para uma baseada em Arch

Uai, o Debian tmb tem uma RR, eu mencionei ai em cima. O projeto Debian tem 3 diferentes sistemas.

1 curtida

Procure sobre o Anaconda, ele permite criar ambientes de desenvolvimento python separados com você podendo escolher qual versão quer usar.