Pop!_OS recebe correção no APT para evitar que usuários quebrem o sistema

https://diolinux.com.br/sistemas-operacionais/pop_os/pop-correcao-apt.html

Recentemente, uma migração não tão bem sucedida para o Pop!_OS, resultou em uma correção no APT por parte dos desenvolvedores do sistema.

6 curtidas

Os memes são o melhor da notícia!

5 curtidas

Alguns detalhes no post:

Pop!_OS recebe correção no APT para evitar que usuários quebrem o sistema

A correção não foi no APT, foi no Pop OS, o APT continua igual, ele é um software avançado (isso tá no nome inclusive: Advanced Package Tool) que funciona como o gênio da lâmpada, ele realiza seu desejo, mas da forma mais literal possível, então se o sistema estiver configurado de forma totalmente errada, vai ocorrer um desastre, mas isso não é um problema do APT e sim em quem é o sys admin do sistema

Tudo não passou de um pequeno mal-entendido (falta de leitura)

Também não é esse o caso, o APT disse que vai remover o gnome, o xorg e o pop-desktop, mas o que são isso? Simples: pacotes que são dependências e que nunca, jamais, sob hipótese alguma devem ser removidos… então a reação natural de se pensar é “um bom sistema não vai quebrar se eu fizer isso”, agora pensa comigo, ter que ler um manual pra instalar e remover pacotes triviais como Steam nem de longe é um boa coisa, tá fora de questão e fazer a instalação via loja funcionar é interessante, mas convenhamos é enxugar gelo, questão de tempo até aparecer o mesmo problema


A solução é entender como o o gerenciamento de pacotes é feito e fazer “como manda o figurino”, vamos lá:

O APT faz apenas a gestão de dependência, no fundo ele usa o dpkg, e esse por sua vez usa arquivos especiais para remover e instalar pacotes:

  • /var/lib/dpkg/status que é onde o APT busca as dependências, ele faz a mesma coisa mas de forma baixo níviel, você, usuário, a menos que seja um caso extremo: NUNCA toque nesse arquivo é o coração de qualquer sistema que usa APT e Aptude por padrão
  • /var/lib/dpkg/info/ nesse diretório estão presentes alguns arquivos muito importantes, eles são divididos por pacote com as extensões, por exemplo:
    • .list que possui a lista de arquivos no pacote
    • .prerm que é um script que é executado antes do pacote ser removido
    • .postrm que é um script executado depois do pacote ser removido

Agora vamos a um raciocínio bem simples, pra saber se um pacote está instalado, o APT e o dpkg usam o arquivo /var/lib/dpkg/status e pra remover, os arquivos pacote.list, pacote.prerm e pacote.postrm em /var/lib/dpkg/info, então o que acontece, se por um acaso do destino, o arquivo /var/lib/dpkg/status estiver intocado, mas os arquivos pacote.list, pacote.prerm e pacote.postrm forem incinerados? Let’s try it com o pacote nano:

sudo rm "/var/lib/dpkg/info/nano.list"
sudo rm "/var/lib/dpkg/info/nano.prerm"
sudo rm "/var/lib/dpkg/info/nano.postrm"

Vamos fazer experimentos científicos terríveis:

  1. Vamos ver se funciona:
nano

Aparentemente nada de novo

  1. Vamos mandar o APT mandar o pacote pra Trenzalore:
sudo apt remove nano -y

Note que o dpkg vai encher o saco:

dpkg: aviso: falta ficheiro de lista de ficheiros ‘nano’; assumindo que o pacote não tem actualmente ficheiros instalados

  1. Vamos fingir que não zoamos o sistema e tentar rodar de novo:
nano

E é isso… nano instalado e funcionando bonitinho, então você me pergunta: Tu não removeu trem? E eu respondo, sim, removi, MAS, eu simplesmente tirei o poder do APT ou dpkg purgar ele do sistema um pacote zoado simplesmente NÃO quebra o sistema assim… e nem precisei de OSTree pra fazer isso, o grande problema é que as distros Linux simplesmente NÃO SÃO vistas por seus desenvolvedores como produto final mas sim como um brinquedo montado com LEGO… como algo assim se populariza?

10 curtidas

Se eu entendi bem, voce removeu o status de instalado do nano sem remove os arquivos dele, é isso mesmo?

Exatamente, uso faz tempo meu sistema assim o grande drawback é um overhead de mais ou menos 100 MB de “lixo” já que ele não apaga arquivos antigos ao atualizar, mas isso é por preguiça minha

Esse tipo de coisa deveria ser padrão nas distros de desktop, na moral mesmo, como vc disse, um pacote de fora não pode causar a quebra do sistema todo. Vou botar isso nas minhas anotações para me lembrar.

Uso Ubuntu há anos e continuo quebrando ele quando tento fazer fazer algo diferente do que já foi testado. Por isso sempre faça o backup: coisas mais importantes na nuvem.

1 curtida

A parte ruim disso é que ficou uma péssima primeira impressão para possíveis novos usuários de linux, o que eu mais vi nos comentários do video do Linus é gente falando “tá vendo? é por isso que linux é um lixo” eu fiquei um pouco revoltado com esse vídeo mas o linus não tem culpa, foi muito azar mesmo, pelo menos esse problema foi resolvido.

Fiquei pensando que ele poderia ter usado o Zorin, seria bom por causa do workflow e provavelmente teria menos problemas.

1 curtida

Bora corrigir isso no TigerOS!

1 curtida

Acho importante analisar o contexto (Tanto do titulo da matéria quanto do Blog em Geral). O Blog Diolinux não tem foco numa linguagem técnica (apesar de possuir alguns conteúdos mais avançados), mas sim, foca em matérias para o publico em geral. Ou seja, nesse caso ele apontou onde estava o problema de forma simples, sem se aprofundar no funcionamento técnico de background da coisa toda, pois isso n é o foco da matéria (analisar funcionamento de APT, gerenciamento de pacotes e etc) e sim informar que havia um problema em determinada distro X e que foi solucionado. Não importa se o APT (analisado de forma técnica) não era o problema, mas certamente fazia parte dele mesmo q de forma não intencional. Enfim, a forma como a matéria foi feita, facilita o entendimento por usuários comuns ao meu ver.

Tá bom, tu sempre enche o saco distorcendo o que eu falo, faz o seguinte, pega um pacote problemático e tenta Instalar no Debian, Ubuntu, Mint ou whatever e volta aqui pra ver se a correção está no APT ou no PopOS

1 curtida

Contexto meu amigo. Contexto!

Por causa de um ser humano, só pq é famoso e tem X inscritos, atualizaram o sistema. O que a fama n faz!

N adianta tapar o sol com a peneira. O pacote foi criado errado e ponto final. O Linux n vai deixar de ser deus de muitos por causa disso!

O problema programar ferramentas “à prova de idiotas”, é que a natureza sempre é capaz de fazer um idiota melhor.

A atualização foi boa? Foi ruim? Eu particularmente não sei responder, mas que eu estou me divertindo com essa novela, eu tô bastante.

Apesar de todos os avisos (um até obrigando o usuário a digitar uma frase pra ter certeza), e continuo considerando que foi culpa 100% do usuário (afinal ele sabe ler), vejo como uma boa ideia as distros implementarem uma segurança extra que dificulte (extremamente) a remoção de pacotes essenciais como o “Desktop” da distro por exemplo.

A culpa foi do usuário, sim. Mas 100% culpa dele, sendo que esse pacote foi mal feito e destrói o desktop, discordo totalmente de vc.
Pacotes que quebram o sistema as vezes escapa. Fato!