Como manter o Debian automaticamente atualizado com as correções de segurança

No mundo do software livre, as atualizações de segurança chegam a uma velocidade muito grande.
Comumente, os security patches estão disponíveis já no momento em que a vulnerabilidade é anunciada.
A questão é como obter a atualização o mais rápido possível?

A usuários normais (como eu, por exemplo), basta seguir o cronograma natural de atualizações do seu sistema.
Esta liberdade não se aplica a administradores de servidores, na rede. Quanto mais importante, maior a responsabilidade e a urgência.

As atualizações de que estamos falando aqui, são as referentes à segurança do sistema e a correções de bugs.
Computadores de usuários comuns, em geral, podem esperar uma semana para obtê-las. Já os servidores, não.
Neste post, vou mostrar um procedimento que irá fazer o download e upgrade dos patches de segurança em segundo plano, assim que estiverem disponíveis nos repositórios da sua distro, sem perguntar “se pode” — você será apenas avisado de que o seu sistema foi atualizado.

Por que as atualizações de segurança devem ocorrer em segundo plano

Obviamente, se o meu sistema operacional fosse atualizado por uma grande corporação, como a Oracle ou a Microsoft, a conversa seria bem diferente, aqui.
Contudo, há motivos sólidos para confiar na comunidade de desenvolvedores Debian — e o principal destes motivos é o fato de que todo o trabalho da comunidade pode ser 100% auditado, por qualquer pessoa.
Não dá para dizer o mesmo de empresas que repassam código essencialmente proprietário — caso em que nunca sabemos realmente o que está sendo modificado em nosso sistema.

Aplicar atualizações com frequência é prática importante para manter nossos sistemas seguros.

Como comportamento padrão, o Debian pede para que o administrador do sistema faça as atualizações ou as autorize manualmente.
Mas você pode optar pelo download e instalação automáticos dos updates de segurança mais importantes.

A instalação

O nome do pacote a ser instalado é ‘unattended-upgrades’.
Ele sugere a instalação dos pacotes ‘bsd-mailx’ – para enviar email, informando o adm de que houve uma atualização de segurança – e ‘needrestart’, que verifica junto aos daemons do seu sistema quais precisam ser reiniciados.
Opcionalmente, também podemos instalar o ‘apt-listchanges’ que, neste caso, atua como um plugin — que compara as versões instaladas dos pacotes às novas, lendo os changelogs e os news fles.
Veja como instalá-los:


sudo apt install unattended-upgrades apt-listchanges bsd-mailx needrestart

Configuração

Para poder receber mensagens via email, é necessário alterar o arquivo de configuração ’50unattended-upgrades’. Use o seu editor favorito para isso:


sudo editor /etc/apt/apt.conf.d/50unattended-upgrades 

Descomente a linha abaixo, removendo os ‘//’:


//Unattended-Upgrade::Mail "root";

Se deixar, do jeito que está, as mensagens serão encaminhadas ao root. Mas você pode inserir uma conta de email no lugar da string “root” (entre as aspas).
A seguir, apenas verifique se o arquivo ’20auto-upgrades’ bate com o conteúdo abaixo:


cat /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Você pode configurar o arquivo ’20auto-upgrades’ adequadamente com a seguinte linha de comando:


sudo dpkg-reconfigure -plow unattended-upgrades

Replacing config file /etc/apt/apt.conf.d/20auto-upgrades with new version

captura de tela debian unattended upgrades

captura de tela debian unattended upgrades

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://www.cyberciti.biz/faq/how-to-keep-debian-linux-patched-with-latest-security-updates-automatically/.

5 razões para atualizar o kernel do seu sistema.

Se você está usando um distro Linux, tal como o Debian, Ubuntu, Fedora etc., então estará (muito provavelmente) também usando um kernel Linux.
Este é o núcleo que faz da sua distro uma autêntica distribuição Linux.
Linux tux

Para quem está chegando do Windows, este sistema operacional também tem o seu kernel.
Mais o Linux tem uma característica modular mais forte e, portanto, o kernel pode ser tratado com uma das peças do sistema operacional — que pode, inclusive ser trocada.

Quando usuários (mais avançados) do Linux falam em “compilar o kernel”, estão falando de retirar de dentro do núcleo o que não é necessário e agregar o que é.
Esta é uma das formas de ajustar o kernel, com mais perfeição, ao hardware que se tem em mãos — como consequência, esta peça do sistema operacional poderá funcionar com muito mais eficiência, rapidez e estabilidade.
O comum, no entanto, é atualizar o kernel como um todo. Ou seja, você baixa um pacote genérico para a sua distribuição e o instala. Este site tem
alguns textos que ensinam a lidar com o kernel
.
Mais comum, ainda, é aplicar as atualizações periódicas da sua distro Linux — através das quais as atualizações de segurança, drivers e recursos são oferecidas.
Portanto, se você já mantém o seu sistema atualizado, então já está se beneficiando da maioria dos motivos de que vou falar neste post.
O texto é voltado para quem gostaria de se adiantar às atualizações programadas pela sua distribuição e deseja aplicar uma versão específica ou mais nova do kernel, mas ainda não se sente totalmente seguro(a) sobre se deve ou não fazer isto.
Espero que você saiba que este procedimento pode trazer grandes benefícios, mas também pode causar transtornos e contraria as recomendações para ter um sistema GNU/Linux estável.

Atualizações de segurança

Este motivo se refere à situação mais comum — das atualizações periódicas, programadas pela equipe de desenvolvedores da sua distro.
Tudo o que você precisa fazer, aqui, é aceitar, sempre que aparecer uma mensagem na sua tela avisando de que há atualizações disponíveis.
Se você estiver no meio de um trabalho importante e sentir que baixar as atualizações vai sobrecarregar a sua rede, procure fazer a atualização manualmente, assim que for possível.
Praticamente toda a atualização de kernel vai ter ajustes de segurança, que eliminam vulnerabilidades que foram descobertas.
Não saberia como frisar o suficiente, o quanto isto é importante.

Atualizações de drivers

O seu hardware é um conjunto de vários dispositivos de hardware — tais como, placa de rede ethernet, wifi, placa de vídeo, controladora de rádio Bluetooth etc.
Comumente, fabricantes ou a comunidade de desenvolvedores, em torno do dispositivo, libera atualizações de drivers.
Estes drivers podem vir em módulos acopláveis ao kernel, dentro do próprio kernel ou como simples arquivos de drivers (como se vê no Windows).
Quando adquiri um notebook Dell 5448, com placa gráfica híbrida Intel/AMD, não havia suporte completo a este tipo de dispositivo, entre as distribuições Linux.
Tampouco, o suporte à controladora de rede wireless Intel 7265 não era completo.
Tive que esperar um tempo para, de atualização em atualização, melhorar o suporte ao meu hardware no Linux.

A comunidade de desenvolvedores faz o possível; O Linux é um sistema operacional de código 100% aberto etc.
Estas condições são mais do que propícias para os fabricantes de hardware criarem drivers para seus dispositivos funcionarem perfeitamente no Linux.
Deixo registrada minha crítica a esta aparente falta de boa vontade em relação aos clientes que preferem usar software livre.

O fato é que, após uma atualização dos drivers, tudo pode funcionar bem melhor no seu sistema.
Como contraponto a este argumento, há o fato de que código novo pode trazer bugs novos.
Rodar um kernel que você ainda não experimentou, pode ameaçar a estabilidade do seu sistema.
Portanto, as atualizações em servidores ou desktops em produção, devem ser feitas com cuidado redobrado.
Já, para os usuários comuns, as possibilidades de ganho em desempenho e novos recursos superam as de as coisas darem errado.

Novas funções dentro do kernel

Ocasionalmente, as principais atualizações do kernel Linux, também trazem novas funcionalidades.
Entre estas, contam-se partes do kernel que os programas podem passar a usar para realizar algumas tarefas ou operações.
Claro que pode acontecer de algumas funções preexistentes terem seu funcionamento alterado ou serem simplesmente suprimidas. Isto pode deixar alguns de seus programas mais antigos sem funcionar adequadamente.
Se isto acontecer, procure por uma versão mais nova do programa ou reverta a atualização do kernel.

Um sistema mais eficiente

Por último – e não menos importante – muitas das principais atualizações do kernel têm o objetivo de melhorar a eficiência do sistema.
Algumas mudanças podem ser bastante sutis, outras podem ser um pouco mais evidentes e fazer uma grande diferença pro tipo de aplicação que você usa.
Como regra geral, atualizar o kernel traz um aproveitamento maior do seu hardware — e ter um computador mais veloz é sempre bem vindo.

Conclusão

Para concluir, vale a pena atualizar o kernel do Linux, sempre que possível — embora, tirando as atualizações da sua distribuição, não seja uma necessidade.
No meu caso, que não tenho ainda um hardware 100% suportado (por culpa da Dell, Intel e AMD), procurar o kernel stable mais atual é algo que eu encaro como uma necessidade.
Em ambientes de produção, como já disse, é preciso ser mais criterioso com esta opção.
Me conte sobre as suas próprias políticas de atualização do kernel. Qual a sua distribuição favorita? Você acredita que as atualizações feitas nela são o suficiente para as suas necessidades ou você prefere buscar sempre versões mais novas do seu kernel?

Como atualizar o Fedora.

Há inúmeras maneiras de atualizar o Fedora.
Uma delas é não fazer nada — você espera o aviso de atualização e confirma, com um toque na tela.
Contudo, há casos em que é necessário “pular” a atualização e deixá-la para depois. Quando você está envolvido em alguma atividade que já está fazendo uso intensivo da rede, por exemplo.
Fedora logo
Para este e muitos outros casos, sempre é possível atualizar o Fedora manualmente (como qualquer outra distro GNU/Linux).
Você pode usar o ambiente gráfico ou pode abrir um terminal e usufruir de toda a flexibilidade da linha de comandos — e este será o método adotado neste post.
Os exemplos deste artigo se baseiam em uma instalação do Fedora 24 — só para nos situarmos. Tudo deve funcionar igual em outras versões atuais do sistema operacional.

Como verificar se há atualizações para o Fedora

O dnf provê uma gestão de pacotes avançada e cômoda no Fedora. Se você está chegando aqui, do Ubuntu ou do Debian, vai se sentir em casa.
Se você vem de outros sistemas operacionais, que não sejam UNIX-like, pode precisar de um tempo para se adaptar — só até entender a lógica do procedimento.
Para verificar se há atualizações para o seu sistema, comece rodando o dnf com a opção “check-update”. Veja o exemplo:

dnf check-update

O resultado pode demorar (dependendo da sua conexão) e pode ser bastante extenso — principalmente, se esta for a primeira vez que o comando estiver sendo executado no seu sistema.
O meu resultado (parcial) foi o seguinte:

Last metadata expiration check: 2:24:42 ago on Mon Aug  1 09:50:54 2016.

GeoIP-GeoLite-data.noarch              2016.05-1.fc24            fedora         
GeoIP-GeoLite-data.noarch              2016.07-1.fc24            updates        
ModemManager.x86_64                    1.6-0.3.rc3.fc24          fedora         
ModemManager.x86_64                    1.6.0-1.fc24              updates-testing

...

NetworkManager.x86_64                  1:1.2.2-1.fc24            fedora         
NetworkManager.x86_64                  1:1.2.2-2.fc24            updates        
NetworkManager-adsl.x86_64             1:1.2.2-1.fc24            fedora   

Complementarmente (e opcionalmente), você também pode inquirir o sistema sobre as atualizações que há para fazer. Veja como fazer isto:

dnf updateinfo

O comando acima irá retornar informações genéricas sobre as atualizações disponíveis para o seu sistema. Veja um resultado típico:

Last metadata expiration check: 3:07:16 ago on Mon Aug  1 09:50:54 2016.
Updates Information Summary: available
    29 Security notice(s)
    87 Bugfix notice(s)
    45 Enhancement notice(s)
     1 other notice(s)

Acima, é possível ver um resumo das informações sobre as atualizações (se estiverem) disponíveis. Vamos tentar explicá-las melhor, abaixo:

  • a última verificação dos metadados dos pacotes dos repositórios;
  • resumo das informações de atualização: available (ou disponível);
  • 29 notificações de segurança;
  • 87 correções de bugs (ou erros);
  • 45 notificações de melhorias;
  • 1 outra notificação.

Se usar o comando dnf -v updateinfo o gestor irá fornecer informações ainda mais detalhadas.
As 29 notificações de segurança e as 87 correções de erros, no sistema exemplificado, já são motivos suficientes para atualizá-lo de imediato.
Fedora 24 screenshot

Como aplicar a atualização do sistema no Fedora

O exemplo usado é o de um sistema recém instalado e que ainda não foi atualizado — há mais de 400 MB de coisas para baixar, aqui.
A atualização é feita com a opção “upgrade”:

sudo dnf upgrade

Note que o comando precisa ser dado com privilégios administrativos.
Fedora 24 terminal update
Você pode rolar a lista de atualizações com o mouse e, se quiser, confirmar que o dnf prossiga.

Como atualizar Debian e Ubuntu com o comando apt

O comando apt, vem sendo introduzido como padrão no Debian e no Ubuntu nos últimos anos.
Embora você possa realizar todos estes procedimentos com os tradicionais apt-get ou aptitude, não vai fazer mal investir algum tempo em aprender a usar o apt.
Se quiser se aprofundar um pouco mais no assunto, sugiro que leia 10 exemplos de uso do comando apt.
Debian & Ubuntu badges together

A importância de manter o sistema atualizado

Em outro post, mostramos o quanto é importante manter seu sistema em dia.
Além disto, verificar se os repositórios estão sincronizados e o sistema atualizado é uma tarefa simples e recomendada antes de começar algum procedimento de instalação de softwares novos no seu sistema. Desta forma, se garante que novos programas cheguem e encontrem um ambiente sempre fresco.
O sistema irá avisar, automaticamente, quando houver atualizações. Mas, se você perder alguma e não quiser esperar pelo próximo aviso, pode abrir um terminal e executar o apt por conta própria.

Como atualizar o sistema com o comando apt

Este post foi escrito e testado em máquinas rodando o Debian 9 Stretch (Testing) e Ubuntu 16.04 LTS Xenial Xerus. O procedimento, para os dois casos é exatamente o mesmo.
Se você usa versões anteriores destes sistemas operacionais, leia o artigo Como atualizar o Ubuntu manualmente.
Abra o terminal e rode estes 3 comandos:

# para atualizar os repositórios
sudo apt update

# opcionalmente, se quiser ver o que será atualizado (pressione 'q' para sair da lista):
sudo apt list --upgradable | less

# por fim, para aplicar as atualizações necessárias (se houver):
sudo apt full-upgrade

Se preferir, é possível rodar tudo na mesma linha de comando, também:

sudo apt update; sudo apt full-upgrade

Você pode minimizar o terminal, enquanto o sistema baixa e atualiza os pacotes.

Qual a diferença entre apt upgrade e full-upgrade

O manual do apt vai mostrar dois métodos para realizar a atualização: através do ‘upgrade’ ou do ‘full-upgrade’.
No exemplo acima, escolhi usar o segundo — e “na vida real” é o que costumo usar sempre.
Segue as funções de cada um, de acordo com a documentação oficial:

  • upgrade — é usado para baixar e instalar atualizações disponíveis de todos os pacotes de softwares presentes no sistema — a partir das fontes, conforme a configuração contida em sources.list.
    Se houver novos pacotes disponíveis – e se forem necessários – estes serão instalados para satisfazer dependências.
    Contudo, pacotes de softwares existentes não são removidos do sistema.
    Ainda que uma atualização requeira a remoção de um pacote, esta ação terá que ser feita manualmente.
    Equivale ao apt-get upgrade.
  • full-upgrade — realiza o mesmo trabalho do método anterior, com a diferença de que este remove os pacotes que forem necessários para realizar uma atualização completa do sistema.
    Equivale ao apt-get dist-upgrade.

De forma resumida, em termos de eficiência no processo de atualização, tanto faz.
O método upgrade é mais conservador e é indicado para quem deseja se manter no lado seguro e deseja ter maior controle sobre os procedimentos.
O full-upgrade é a opção automática e indicada para quem prefere ter um sistema mais limpo, sem pacotes de softwares “sobrando” por aí.
Para finalizar, a execução periódica do comando apt, com a opção ‘autoremove’, se faz necessária nos dois casos, se quiser ter um sistema enxuto.

10 exemplos de uso do comando APT no Debian e Ubuntu

Você pode usar o comando apt para instalar novos aplicativos no seu sistema Ubuntu, Debian e distribuições derivadas.
A ferramenta trabalha com o gestor de pacotes padrão do Debian, dpkg, e é usada também para manter o seu sistema atualizado.
O apt tem as mesmas funcionalidades que o aptitude e a apt-get.
Este texto se baseia na versão 1.2.9, presente no Ubuntu 16.04 LTS Xenial Xerus. Vale destacar que o desenvolvimento do apt é um trabalho em progresso — e funcionalidades podem ser acrescentadas, modificadas ou retiradas em versões futuras — mas acho que isto vale para qualquer software.
Há 2 bons motivos para usar o apt, em vez das outras duas mais conhecidas:

  1. Você pode digitar menos, se optar pelo apt, na linha de comando.
  2. Esta será uma ferramenta padrão no Ubuntu, a partir da versão 16.04 LTS Xenial Xerus e no Debian.

A sigla APT, quer dizer Advanced Package Tool — ferramenta de pacotes avançada, numa tradução livre.
É constituída de uma séria de ferramentas, que fazem parte do núcleo do sistema Debian e Ubuntu.
O comando apt provê uma interface limpa e bonita, na linha de comando, com barra de progresso e cores para identificar itens da interface.

Use a ferramenta para instalar e atualizar aplicativos ou todo o sistema

A sintaxe do comando apt

Se você já conhece e usa o aptitude e o apt-get, será fácil se adaptar a esta ferramenta.
A sintaxe básica se resume a:
apt opções comando nome-do-pacote
ou (caso queira instalar mais de um pacote)
apt opções comando nome-do-pacote1 nome-do-pacote2
É possível usar curingas, para instalar múltiplos pacotes, com o mesmo prefixo:
apt install nome-do-pac*

O conjunto de ferramentas do APT, para realizar tarefas administrativas, requer privilégios. Portanto, você precisa se autenticar como superusuário (root) ou usar o sudo para executar o utilitário apt.

Se quiser entender a diferença entre o su e o sudo, leia este artigo.
Vamos aos exemplos práticos.

Como sincronizar pacotes com o apt

Para baixar informações sobre pacotes de todas as fontes configuradas, use apt update:

apt update

Este procedimento é recomendável antes de iniciar uma instalação ou um upgrade. Ou seja, antes de executar um install, use um update, conforme o exemplo anterior.
Ao final do relatório do comando, é possível localizar uma linha falando quantos pacotes (packages) há para ser atualizados.

Get:1 http://br.archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Hit:2 http://br.archive.ubuntu.com/ubuntu xenial-updates InRelease             
Hit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease       
Hit:4 http://br.archive.ubuntu.com/ubuntu xenial-backports InRelease    
Get:5 http://br.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [7.392 kB]
Get:6 http://br.archive.ubuntu.com/ubuntu xenial/universe i386 Packages [7.373 kB]
Get:7 http://br.archive.ubuntu.com/ubuntu xenial/universe Translation-en [4.299 kB]
Fetched 19,3 MB in 10s (1.911 kB/s)                                            
Reading package lists... Done
Building dependency tree       
Reading state information... Done
156 packages can be upgraded. Run 'apt list --upgradable' to see them.

Como atualizar o sistema com o apt

Use o comando ‘upgrade’ para realizar a atualização de todos os pacotes atualmente instalados em seu sistema (desde que haja atualizações disponíveis).
Este comando segue algumas regras:

  • Ele instalará pacotes adicionais, que sejam requeridos para satisfazer as dependências.
  • Pacotes já existentes e instalados, não serão removidos pelo processo de upgrade.
  • Não instala a nova versão de algum pacote se houver a necessidade de remover outro pacote conflitante ou desatualizado.
apt upgrade

Se você preferir, pode optar pelo uso do ‘full-upgrade’ — que remove pacotes instalados, caso seja necessário para atualizar o sistema como um todo.

apt full-upgrade

A opção ‘full-upgrade’ é necessária para atualizar, por exemplo, o Ubuntu 16.04 para 16.04.1.
Ele não vai atualizar a sua distro de 16.04 para 16.10, contudo.
Se quiser apenas obter uma lista de pacotes que podem ser atualizados no seu sistema, use o comando assim:

apt list --upgradable

Como instalar novos pacotes de aplicativos

O comando ‘install’ realiza a instalação de novos pacotes no seu sistema.
Para instalar o editor de áudio Audacity, use o seguinte comando, por exemplo:

apt update
apt install audacity

Como remover pacotes de aplicativos do sistema

Para remover, use o ‘remove’:

apt remove audacity

ou

apt purge audacity

O ‘purge’ desinstala, além dos pacotes, seus arquivos de configuração.

Como encontrar o pacote de aplicativos que eu quero

Se você não sabe exatamente qual o nome de determinado pacote ou aplicação, use o mecanismo de busca do apt.
Com o comando ‘search’ é possível fazer busca por palavras dentro das descrições dos pacotes nos repositórios.

apt search audio

Você pode combinar o comando grep, para obter uma busca mais refinada:

apt search audio | grep -C 2 -i blue
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

  Bandlimited wavetable-based oscillator plugins for LADSPA hosts

bluedevil/xenial 4:5.5.4-0ubuntu1 amd64
  KDE Bluetooth stack

bluez-btsco/xenial 1:0.50-0ubuntu6 amd64
  Bluez Bluetooth SCO tool

bplay/xenial 0.991-10 amd64
--
  jQuery plugin that plays and controls audio files in a webpage

jquery-jplayer-bluemonday/xenial,xenial 2.7.0-1 all
  Blue Monday skin for jPlayer

Como exibir informações sobre pacotes antes de instalar

Se você quiser obter informações específicas sobre algum destes pacotes, use o comando ‘show’:

apt show bplay
Package: bplay
Version: 0.991-10
Priority: optional
Section: universe/sound
Origin: Ubuntu
Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Original-Maintainer: Carlos Laviola <claviola@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 73,7 kB
Depends: libc6 (>= 2.6.1-1)
Download-Size: 18,8 kB
APT-Sources: http://br.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
Description: Buffered audio file player/recorder
 The bplay package provides a simple command-line utility for playing
 and recording audio files in raw sample, VOC and WAV formats.
 .
 To use this program you need a soundcard of some kind and the
 appropriate driver configured into your kernel.
 .
 When run the program creates two processes which share a memory
 buffer.  It does reading/writing on the disk and the sound device
 simultaneously, in order to be less liable to `pause' because the
 disk is too slow or too busy.

Os comandos ‘apt search’, ‘apt show’ e ‘apt list’, entre outros, não requerem privilégios administrativos para serem executados.
Somente aqueles capazes de produzir alterações no sistema, irão pedir seu “crachá de superusuário”.

Como listar pacotes disponíveis para instalação nos repositórios

Você pode obter uma lista completa de pacotes através da opção ‘list’.
Se você quiser encontrar os pacotes relacionados ao PHP 7, use o comando desta forma:

apt list 'php7*'
Listing... Done
php7.0/xenial,xenial 7.0.4-5ubuntu2 all
php7.0-bcmath/xenial 7.0.4-5ubuntu2 amd64
php7.0-bz2/xenial 7.0.4-5ubuntu2 amd64
php7.0-cgi/xenial 7.0.4-5ubuntu2 amd64

...

php7.0-sqlite3/xenial 7.0.4-5ubuntu2 amd64
php7.0-sybase/xenial 7.0.4-5ubuntu2 amd64
php7.0-tidy/xenial 7.0.4-5ubuntu2 amd64
php7.0-xml/xenial 7.0.4-5ubuntu2 amd64
php7.0-xmlrpc/xenial 7.0.4-5ubuntu2 amd64
php7.0-xsl/xenial,xenial 7.0.4-5ubuntu2 all
php7.0-zip/xenial 7.0.4-5ubuntu1 amd64

ubuntu 16.04 list php7 packages
Esta forma é equivalente à opção combinada ao comando grep:
apt list | grep php7. A opção é sua.

Jogue fora o lastro, para voar mais alto

Remova os pacotes de bibliotecas e aplicativos desnecessários do seu sistema.

Em computadores e carros: não basta ter potência. Tem que ser leve!

Tirar tudo o que não se precisa, é a chave para ter um sistema rápido e seguro.
O ‘autoremove’ ajuda a enxugar o seu sistema, removendo pacotes de bibliotecas instaladas (por que eram necessárias para a instalação de outros programas), que não são mais requeridas por nenhum outro pacote.
Pode ser usado para encontrar e remover versões antigas do kernel (que ocupam espaço considerável) no seu sistema.
Veja como usar:

apt autoremove

Uma opção mais completa (radical) é a seguinte:

apt --purge autoremove

Como editar as fontes dos pacotes

Se você sabe o que está fazendo pode editar as fontes dos repositórios — de onde o sistema irá baixar seus softwares.

sudo apt edit-sources 

Ubuntu 16.04 edit sources