Como posso obter uma lista com os pacotes selecionados pelo apt-get autoremove?

13

Existe algum comando que imprima apenas o nome dos pacotes que apt-get autoremoveseleciona? Estou criando um script que atualiza o kernel, remove o kernel antigo e os pacotes desnecessários ( apt-get autoremove), mas quero imprimir na tela a lista de pacotes que serão removidos apt-get autoremove, como posso fazer isso?

Afonso Sousa
fonte
Você deve apenas ser capaz de começar a correr sudo apt-get autoremove -ye deve autoremove qualquer coisa necessária para ser removido ...
Tente ler aqui, [Isso pode ser de ajuda.] [1] [1]: serverfault.com/questions/433250/…
Doug
Para obter a lista de pacotes sem removê-los realmente você pode fazersudo apt-get --dry-run autoremove
heemayl
Eu só quero obter o nome dos pacotes, não toda a saída do comando ....
Afonso Sousa

Respostas:

13

Como , de acordo com seu comentário, você deseja listar apenas os pacotes que serão removidos:

apt-get --dry-run autoremove | grep -Po '^Remv \K[^ ]+'

grep repartição do comando:

  • -P: Interpreta o padrão fornecido como um padrão PCRE (Perl Compatible Regular Expression)
  • -o: Imprime apenas a sequência correspondente em vez da linha inteira

Repartição do Regex:

  • ^: corresponde ao início da linha
  • Remv: corresponde a uma Remvsequência
  • \K: exclui a substring correspondida anteriormente da sequência correspondida
  • [^ ]+: corresponde a um ou mais caracteres que não
$ apt-get --dry-run autoremove | grep -Po 'Remv \K[^ ]+'
libapache2-mod-php5
php5-readline
php5-cli
libonig2
libqdbm14
php5-json
php5-common 
kos
fonte
1
@GeekLynxAfonso, você não precisa usar sudoa --dry-runopção
Jarno
@jarno Faz sentido, o fato de que provavelmente não era necessário não me ocorreu. Graças
kos
2

Na verdade, você só precisa filtrar a saída do seu

sudo apt-get autoremove --dry-run 

comando.

Por exemplo, você pode fazer isso com

sudo apt-get autoremove --dry-run  | head -n 5 | tail -n 1
limões
fonte
Seu comando também funciona !! Mas eu prefiro o comando do kos ... Mas obrigado da mesma forma !! :)
Afonso Sousa