Remover lista de pacotes do Portage
Publicado por Darlan de Campos 30/04/2007
[ Hits: 3.711 ]
Homepage: http://www.iteracao.info
Este script remove um pacote e as suas dependências (não todas, apenas as que foram instaladas junto com o pacote).
Serve para o caso de ter instalado um pacote com várias dependências e querer remover todas. O modo de usar é simples:
# ./remove_lista.pl <pacote>
O pacote indicado deve conter a versão completa e ser o último da lista a ser eliminada, p.ex. "sys-fs/fuse-2.2.2".
#!/usr/bin/perl -w # Autor: Darlan Campos # O autor não se responsabiliza por nenhum efeito # causado por este script use strict; use Term::ReadKey; # Módulo requerido my $pkg = $ARGV[0] or die <<EOF; Uso: ./remove_lista.pl <pacote> O pacote indicado deve conter a versão completa e ser o último da lista a ser eliminada, p.ex. "sys-fs/fuse-2.2.2". Note que o script perguntará antes de remover os pacotes. EOF my $log = "/var/log/emerge.log"; open FILE,$log or die "Impossível abrir log. Verifique se está logado como root --"; my @file = reverse <FILE>; my ($found,$total,@rmv,$opt); # Prepara a lista para remoção for my $line (@file) { if ($line =~ m/>>> emerge \(([0-9]+) of \1\) ($pkg*) to/) { push @rmv, $2; $found = 1 if $1 != 1; $total = $1 } elsif ($found && $line =~ m/>>> emerge \(([0-9]+) of $total\) (.*) to/) { push @rmv, $2; if ($1 == 1) { $found = undef; last } } } # Remove os pacotes if ([email protected]) { print "Nenhum pacote a remover encontrado.\n"; exit } else { print "Pacotes a serem removidos ($total):\n\n"; for (@rmv) { print " * $_\n" } print "\nDeseja prosseguir com a remoção? [s/n] "; while (not defined ($opt = ReadKey(-1))) { } if ($opt eq 's') { print "Removendo pacotes...\n"; for (@rmv) { system "emerge --unmerge $_"; # A linha seguinte elimina os pacotes .tbz2 # unlink "/usr/portage/packages/All/$_.tbz2"; } } }
Nenhum comentário foi encontrado.
Relato de experiência: contribuição para tradução de um artigo da Wikipédia
Melhores Distribuições Linux Voltadas Para Servidores
Gerando Pacote do QMPlay2 20.12.16 no Slackware Current Facilmente
Clonando uma tag específica no GIT
Converter vários vídeos em lote facilmente
Renomeado em Massa com GPRename