Remover lista de pacotes do Portage

Publicado por Darlan de Campos 30/04/2007

[ Hits: 3.975 ]

Homepage: http://www.iteracao.info

Download remove_lista.pl




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".

  



Esconder código-fonte

#!/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 (!@rmv) {
   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";
      }
   }
}

Scripts recomendados

Wallpapers aleatórios no Fluxbox

Login AUDIT

Monitor Process

Weather Channel for Torsmo

Diminuir ou aumentar o brilho de notebook


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts