[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Remover Pacotes de um Arquivo
From: |
Salviano de Araujo Leão |
Subject: |
Re: [shell-script] Remover Pacotes de um Arquivo |
Date: |
Wed, 29 Aug 2007 07:30:47 -0300 |
User-agent: |
KMail/1.9.7 |
On Tuesday 28 August 2007 20:43:49 Daniel O. Dantas wrote:
Não entendi bem o seu problema. Veja estes dois comando
$ dpkg --get-selections > Pacotes
# Ele retorna o estado de todos os pacotes do sistema no file Pacotes
$ dpkg --set-selections < Pacotes
$ dselect --> aplica as selecoes anteriores
$ aptitude --> eh so mandar instalar ou remover, que ja está tudo selecionado
O arquivo /var/lib/aptitude/pkgstates mantém um lista completa de todos
os pactes intalados em sua máquina.
Você pode gerar um Pacotes e mudar o estado da selecao do arquivo Pacotes
e posteriormente aplica-las todas de uma única vez.
Abraços
Salviano
> Pessoal, boa noite. Venho mais uma vez pedir ajuda de vocês com um script.
>
> Meu problema: gerei uma lista de todos os pacotes instalados em meu sistema
> (Debian). E gostaria de criar um script que me perguntasse, um a um, se eu
> quero remover esses pacotes, baseado no conteúdo desse arquivo.
>
> Comecei a fazer, mas me perdi na hora de fazer o for, e não me sai muito
> bem. Estou colocando abaixo o que já fiz, e se puderem me ajudar, ficaria
> grato.
>
> #!/bin/bash
> PKGS=/root/auditoria/pacotes
>
> echo "Criando Lista de Pacotes Instalados..."
> # Roda dpkg e gera lista de pacotes instalados no sistema.
> # dpkg -l = Lista pacotes instalados no Debian.
> # awk '{print $2,$3}' = Expressao para que retorna apenas a segunda
> #e terceira coluna.
> # sed '1,7d' = Corta da primeira ate a setima linha.
> dpkg -l | awk '{print $2,$3}' | sed '1,7d' > $PKGS
> sleep 2
> # Retorna o conteudo do arquivo apenas mostrando a primeira coluna
> echo "Exibindo Lista de Pacotes na Tela..."
> sleep 2
> cat $PKGS | sed -n '1,$p' | awk '{print $1}'
> echo Existem `cat $PKGS | wc -l` Pacotes Instalados no Servidor
>
> Esse ultimo echo eu fiz para teste, por que iria pegar o retorno do comando
> cat $PKGS | wc -l para fazer o loop baseado nessa quantia. Mas depois vi
> que é possível fazer esse loop baseado no conteúdo do próprio arquivo. E
> foi ai que enroscou o código pra mim.
>
> Obrigado.