Por que o APT faz esse tipo de coisa?

1. Por que o APT faz esse tipo de coisa?

Matheus
pylm

(usa Gentoo)

Enviado em 17/01/2016 - 12:00h

https://www.vivaolinux.com.br/topico/Ubuntu-e-Kubuntu/Tem-como-corrigir-essa-cagada-que-fiz-sem-rein...

Estava lendo o tópico acima, no qual ao tentar remover o pacote gnupg, o apt remove a si mesmo, resolvi testar em uma máquina virtual para ver se isso acontecia sempre ou era algum bug.

root@ubuntu:/home/ubuntu# apt-get purge gnupg
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os seguintes pacotes foram instalados automaticamente e já não são necessários:
app-install-data apt-xapian-index apturl-common gir1.2-gmenu-3.0 oneconf
oneconf-common python-debtagshw python-lxml python-oneconf
python-piston-mini-client python3-oneconf python3-piston-mini-client
software-center-aptdaemon-plugins
Utilize 'apt-get autoremove' para os remover.
Os pacotes extra a seguir serão instalados:
gnupg-agent gnupg2 libksba8 libpth20 pinentry-gtk2
Pacotes sugeridos:
gnupg-doc xloadimage pinentry-doc
Os pacotes a seguir serão REMOVIDOS:
apt* apturl* gnupg* nautilus-share* python3-software-properties* seahorse*
software-center* software-properties-common* software-properties-gtk*
ubuntu-desktop* ubuntu-extras-keyring* ubuntu-minimal* unattended-upgrades*
Os NOVOS pacotes a seguir serão instalados:
gnupg-agent gnupg2 libksba8 libpth20 pinentry-gtk2
AVISO: Os pacotes essenciais a seguir serão removidos.
Isso NÃO deveria ser feito a menos que você saiba exatamente o que você está fazendo!
apt gnupg (por causa de apt)
0 pacotes atualizados, 5 pacotes novos instalados, 13 a serem removidos e 0 não atualizados.
É preciso baixar 1.086 kB de arquivos.
Depois desta operação, 8.398 kB de espaço em disco serão liberados.
Você está prestes a fazer algo potencialmente destrutivo.
Para continuar digite a frase 'Sim, faça o que eu digo!'
?]


E veja só, o APT tenta remover a si mesmo, mas tudo bem, eu usei a opção de purge que remove *tudo* relacionado ao programa, ok.

Vamos tentar com um simples apt-get remove gnupg

root@ubuntu:/home/ubuntu# apt-get remove gnupg
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os seguintes pacotes foram instalados automaticamente e já não são necessários:
app-install-data apt-xapian-index apturl-common gir1.2-gmenu-3.0 oneconf
oneconf-common python-debtagshw python-lxml python-oneconf
python-piston-mini-client python3-oneconf python3-piston-mini-client
software-center-aptdaemon-plugins
Utilize 'apt-get autoremove' para os remover.
Os pacotes extra a seguir serão instalados:
gnupg-agent gnupg2 libksba8 libpth20 pinentry-gtk2
Pacotes sugeridos:
gnupg-doc xloadimage pinentry-doc
Os pacotes a seguir serão REMOVIDOS:
apt apturl gnupg nautilus-share python3-software-properties seahorse
software-center software-properties-common software-properties-gtk
ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
Os NOVOS pacotes a seguir serão instalados:
gnupg-agent gnupg2 libksba8 libpth20 pinentry-gtk2
AVISO: Os pacotes essenciais a seguir serão removidos.
Isso NÃO deveria ser feito a menos que você saiba exatamente o que você está fazendo!
apt gnupg (por causa de apt)
0 pacotes atualizados, 5 pacotes novos instalados, 13 a serem removidos e 0 não atualizados.
É preciso baixar 1.086 kB de arquivos.
Depois desta operação, 8.398 kB de espaço em disco serão liberados.
Você está prestes a fazer algo potencialmente destrutivo.
Para continuar digite a frase 'Sim, faça o que eu digo!'
?]


Ele tenta se remover de novo!

Agora vamos tentar com o pacman, no Arch.

[code]/home/pylm
▶ pacman -R gnupg
verificando dependências...
erro: falha ao preparar a transação (não foi possível satisfazer as dependências)
:: gpgme: requer gnupg>=2

/home/pylm ⍉
▶
[/img]

Ele me impediu de remover o pacote, ok.

Vamos forçar ele a remover

[code]/home/pylm ⍉
▶ pacman -Rnsc gnupg
verificando dependências...
:: geany requer opcionalmente geany-plugins: various extra features
:: geany requer opcionalmente vte: terminal support
atenção: pacman foi designado como um HoldPkg.
:: Pacotes HoldPkg foram encontrados na lista. Você deseja continuar? [s/N]
[/img]

Ele diz que irá remover o pacman, caso eu diga que sim, ele me mostra uma lista com tudo que vai ser removido e pede de novo se eu quero remover, a partir daí é com o usuário.

Agora pra quem tem experiência com debian, o apt sempre faz isso ou é culpa do ubuntu?



  


2. Re: Por que o APT faz esse tipo de coisa?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2016 - 12:22h

Ora, veja que há um "vício" em sua análise. Da mesma forma que o pacman exibiu o que iria remover, o apt também exibiu o que seria removido. Pelo menos o pacman não deixa na primeira tentativa, mas obrigando-o a fazer ele faz, certo!?

É o que eu digo sempre: "O maior bug do sistema fica entre a poltrona e o monitor."
O cara não sabe o que tá fazendo, vai mexer no que não deve, o que mais poderia sair daí!?
Já dizia o tio Ben: "Grande poderes vêm com grandes responsabilidades"

Eu uso Debian e Ubuntu há bastante tempo e nunca fiz esse tipo de c*g*d*, então... não vamos culpar o apt por tudo né. Sabendo usar não vai quebrar!!!!


3. Re: Por que o APT faz esse tipo de coisa?

Rogerio Leiro Fontan
RLFontan

(usa Red Hat)

Enviado em 17/01/2016 - 12:44h

Rapaz, a verdade é uma só : os gerenciadores de dependências são muito confusos, pode ser uma verdadeira faca no iniciante, não tem principio KISS que aguente, não é a toa que o Slackware não vem com nenhum por padrão, e o próprio Linus Torvalds já criticou essa confusão toda, qualquer operaçãozinha pode dar uma cagada , especialmente as que envolvem remoção, e nas Debian-like mesmo o cuidado tem que ser dobrado, eu que tente remover o chaveiro do capeta do GNOME aqui no Unity... ele leva meu sistema todo!

Tudo isso se agrava com os metapacotes (Debian-likes), que são na verdade um sistema de empacotamento extremamente confuso, são pacotes que não são efetivamente um programa ou uma biblioteca, é uma pacote que cuja função é depender de outros pacotes, e desse conceito surgem "confusões a beça" que não cabem em nenhum comercial de Sessão da Tarde, é uma confusão doida mesmo! Olha só esse artigo aqui o cara tentando explicar o funcionamento dos metapacotes, veja como é "simples e fácil" :

http://forums.debian.net/viewtopic.php?t=104157

A Canonical está desenvolvendo o Snappy, um sistema de empacotamento mais gordo, mas que talvez acabe com essa confusão ao menos temporariamente :

https://www.youtube.com/watch?v=x8BC_Ljgc3Q

Imagine você, que se eu recomendar linux para alguém hoje, eu no MÍNIMO tenho que dizer :

-"Não use nenhum comando de auto remoção"
-"Só remova aquilo que você instalou"

Rapaz eu vou te dizer uma coisa, as pessoas subestimam a filosofia do Slackware Linux, mas eles adotaram algumas decisões que apesar de alguns enxergaram como antiquadas, são na verdade bastante comtemporâneas! Agora se eles acertaram ou erraram no que fizeram eu não sei...

Se a inspiração do mundo linux fosse o Slackware e não o Debian que vantagens e desvantagens isso traria? será que teria sido melhor para o ecossistema linux? Ta ai uma pergunta que eu vivo me fazendo mas infelizmente não tenho conhecimento para responder.

Segue a página da filosofia do Slackware :

http://docs.slackware.com/slackware:philosophy

Segue a pagina da Debian-Wiki entitulada "Razões para escolher Debian" :

https://www.debian.org/intro/why_debian


4. Re: Por que o APT faz esse tipo de coisa?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2016 - 13:05h

Esses gerenciadores estão na moleza; manda alguém fazer isso no Slackware:

removepkg pkgtools


Sem confirmação, sem pedir autorização para o usuário. O comando acima irá remover completamente o gerenciador de pacotes do Slackware, de forma simples e direta. Poderia ser pior?

removepkg kernel-modules


Mesma situação. E concordando com o camarada @PauloHAC: "O maior bug do sistema fica entre a poltrona e o monitor."

Lógico que nenhum slacker de verdade faria isso neh!
- -
http://bit.ly/1PZZH3p


5. Re: Por que o APT faz esse tipo de coisa?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2016 - 13:56h

ru4n escreveu:

Esses gerenciadores estão na moleza; manda alguém fazer isso no Slackware:

removepkg pkgtools


Sem confirmação, sem pedir autorização para o usuário. O comando acima irá remover completamente o gerenciador de pacotes do Slackware, de forma simples e direta. Poderia ser pior?

removepkg kernel-modules


Mesma situação. E concordando com o camarada @PauloHAC: "O maior bug do sistema fica entre a poltrona e o monitor."

Lógico que nenhum slacker de verdade faria isso neh!
- -
http://bit.ly/1PZZH3p


É justamente isso que muitos não entendem. O Linux dá liberdade total para o usuário, com poderes, fazer o que quiser com o sistema, inclusive destruí-lo.... Mas, só quem não sabe o que tá fazendo é que faz m*rda!!!!

Ora, se eu posso fazer isso # rm -Rf /, por que querem, por força, culpar o apt quando o sistema quebra? Apt é uma ferramenta, aprenda a usar a ferramenta e ela lhe será útil como deveria ser!!!! Não estou com isso dizendo que é perfeita, pode ter sim alguns probleminhas, mas não é isso tudo que reclamam aí não, viu.


6. Re: Por que o APT faz esse tipo de coisa?

edps
edps

(usa Slackware)

Enviado em 17/01/2016 - 14:06h

Se você vai entender aí já é outra coisa...

pylm escreveu:
Agora pra quem tem experiência com debian, o apt sempre faz isso ou é culpa do ubuntu?


É culpa do usuário! simples assim...

Se usar apenas os repositórios oficiais (e digo mais, pode incluir aí o deb-multimedia, o do iceweasel, o proposed-updates) que não vai ocorrer isto.

Atualize o sistema por completo, essa estórinha de apt-get upgrade (a única coisa que faz é jogar sujeira para baixo do tapete).

Se você vai rodar um apt-get dist-upgrade, a primeira coisa a fazer é simular o que irá ocorrer:

# apt-get dist-upgrade -s 


e se quiser ver as versões substituta e substituída:

# apt-get dist-upgrade -sV 


Se nada de anormal for detectado você roda o comando sem essas opções.

# apt-get dist-upgrade 


Quanto aquele problema de ao remover um programa, uma série deles ficarem órfãos te digo o motivo:

quando você instala um pacote A (e ele depende dos pacotes B, C, D e E), esses pacotes B, C, D, E são tratados como instalados automaticamente.


Beleza, vida que segue... e você vai instalando pacotes dia a dia (alguns deles que dependem de B, C, D, E) e então, num dia qualquer você cisma de remover o pacote A e obviamente o APT dirá que os pacotes a seguir B, C, D e E foram instalados automaticamente e podem ser removidos, mas com isso uma penca de pacotes também vai para o saco.

Como resolver isto?

Simples: você remove o pacote A, pega a lista dos pacotes a serem automaticamente removidos e tasca um apt-get install neles:

# apt-get install B C D E 


Isso fará com que os pacotes sejam instalados no modo manual.

Outra forma de reduzir isto é não instalando pacotes RECOMENDADOS, no arquivo /etc/apt/apt.conf você acrescenta o seguinte:

APT::Install-Recommends "0";
APT::Install-Suggests "0";


* se o arquivo não existir, você cria o mesmo.
** se um pacote exibido como recomendado na hora da instalação for realmente necessário você acrescenta-o após o programa que deseja instalar.

Num exemplo hipotético, você quer instalar o leafpad e ele recomenda o texlive e o kernel-funtoo-x.y.z, mas como vc configurou o apt.conf a não instalar pacotes RECOMENDADOS, isso não irá ocorrer. O que fazer:

# apt-get install leafpad kernel-funtoo texlive 


As vezes somos nós mesmos que criamos dificuldades para as coisas, a instalação via terminal lhe diz tudo o que ocorre e o que te impede de prosseguir, mas o único gerenciador de pacotes que realmente lhe entrega tudo pronto (incluindo o que você deve fazer) é o PORTAGE.

* com algumas exigências: ser alfabetizado, saber interpretar o que lê e arranhar no ingrês.


7. RES: Por que o APT faz esse tipo de coisa?

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 17/01/2016 - 14:28h

Olá,
se tem uma coisa que eu aprendi administrando servidores linux é que linux não se mexe!
você instala o que você precisa e pronto senão corrompe ou da alguma caquinha.
se quiser brincar de programar tem que ser maquina virtual.



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


8. Re: Por que o APT faz esse tipo de coisa?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2016 - 15:02h

Eu concordo com o que o @edps e o @RLFontan disseram, e é por esses e outros motivos que não gosto de gerenciadores de pacotes; entretanto, o que o apt-get faz ao se tentar remover o gnupg é mais uma advertência do que um bug em si, já que sem o gnupg todo o sistema de "autenticidade" de pacotes vai pro /dev/null - assim, o usuário volta atrás e decide não desinstalar este pacote (isso pode parecer um empecilho para quem tiver mais "experiência", mas, na minha opnião, um gerenciador de pacotes foi criado para facilitar a vida de quem tiver menos, o que, automaticamente, terá que tirar a mão do que parecer impróprio para este tipo de usuário). Eu já acabei causando um kernel panic no meu Debian uma vez por causa de pacotes!

O Slackware é o sistema mais UNIX-like dentre todas as distros GNU/Linux que existem, e segue uma ótima filosofia quanto a organização e o modo de administrar o sistema; dentre estes tópicos (que podem ser vistos num link já postado), o que acho mais interessante é: "A distribution where system configuration and administration is done through simple ncurses helper scripts or by directly editing well-commented configuration files through a text editor", o que significa, em tradução livre: "Uma distribuição onde a configuração e a administração do sistema é feita por meio de simples scripts auxiliares em ncurses (vide xwmconfig, netconfig, liloconfig, etc etc etc) ou editando-se diretamente (os) arquivos de configuração bem comentados com um editor de texto"

Essa é a melhor forma de se usar um sistema, já que você estará no controle de tudo e poderá deixá-lo como quiser, sem ser surpreendido por recusas ou por "eventos não esperados"; isso, obviamente, pode deixar o sistema menos "intuitivo" à primeira vista - ou usa gerenciadores de pacotes e todos os assistentes gráficos que existem (sujeitos a todo tipo de falha), ou pega uma distro como o Slack (há de se acostumar a tirar a mão do mouse) ou para de usar Linux; essas são as três opções disponíveis


9. Re: Por que o APT faz esse tipo de coisa?

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 17/01/2016 - 15:08h

conectadohost escreveu:

Olá,
se tem uma coisa que eu aprendi administrando servidores linux é que linux não se mexe!
você instala o que você precisa e pronto senão corrompe ou da alguma caquinha.
se quiser brincar de programar tem que ser maquina virtual.



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


Se tem uma coisa que 19 anos me ensinaram é que o melhor administrador de uma máquina GNU/Linux é aquele que sabe ler e pensar. Não adianta nada achar que o sistema vai fazer tudo sozinho por você. No Slackware, o SO te obedece cegamente. Se você quiser um # removepkg kernel-huge kernel-generic kernel-firmware kernel-modules ele vai remover sem nem pedir confirmação - ele assume que você sabe o que está fazendo (bem, com um comando desses é difícil dizer que você saiba, mas ok).

Nos apt da vida o conceito de metapacote é simplesmente pavoroso. Um pacote cuja função é depender de outros que dependem dele! Circularidade na sua mais destrutiva forma! Engraçado que tanto o dnf quanto o zypper usam grupos de pacote: você manda instalar o grupo, o programa lê numa lista quais pacotes pertencem àquele grupo e o instala. Sem metapacotes. Simples, não?

De todos o portage é o que mais pega na mão do usuário. Mas também, pudera: sem isso não há como usar o Gentoo sem ter uma bola de cristal à tiracolo...

--
Dino®
Vi veri universum vivus vici
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


10. Re: Por que o APT faz esse tipo de coisa?

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 17/01/2016 - 15:13h

Mas qual é a vantagem do Slackware nessas horas? Simples: ele acostuma o usuário a saber resolver esse tipo de cagada que nem a tópico citado. Eu li as mensagens, vi quais pacotes do apt dançaram, instruí o cara a baixá-los e reinstalá-los na mão e a coisa voltou a funcionar. É claro, não perdi a chance de zoar, mas faz parte de ser o Dino® :-)
--
Dino®
Vi veri universum vivus vici
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


11. Re: Por que o APT faz esse tipo de coisa?

Clodoaldo Santos
clodoaldops

(usa Linux Mint)

Enviado em 17/01/2016 - 15:13h

Usei nunca quebrei ubuntu, mint, Debian usando apt-get conscientemente
Quando quero me aventurar uso minha partição de testes onde me permito fazer @#$%&


12. Re: Por que o APT faz esse tipo de coisa?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/01/2016 - 16:29h

Acho que dá para definir como blacklist um pacote para ele nunca ser removido, atualizado ou instalado. Pelo menos no slackware dá em /etc/slackpkg/blacklist.

Deve existir um método em cada distro.



  
01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts