Remover lista de pacotes do Portage

Publicado por Darlan de Campos 30/04/2007

[ Hits: 3.697 ]

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 ([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";
      }
   }
}

Scripts recomendados

Calculadora com Perl com menos de 10 linhas de código

Muda o wallpaper do X-Windows

Verificação se utilizador existe ou não

Check All Process

fonte.pl


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts