Ir diretamente para o conteúdo

Definições de cookies

Escolha que tipos de cookies permite. Pode alterar a sua escolha a qualquer momento em Definições de cookies, no fundo de cada página. Política de privacidade

Necessários

Sempre ativos

Necessários para iniciar sessão, manter o seu carrinho e memorizar as suas escolhas. Estão sempre ativos.

Que cookies?
  • weboke_sessie, weboke_klant, weboke_remember: a sua sessão e manter a sessão iniciada
  • weboke_basket: o seu carrinho
  • wkBtwIncl: mostrar preços com ou sem IVA
  • wok_cookies: a sua escolha de cookies, 12 meses

Mede que anúncio leva a uma visita ou encomenda, para não pagarmos por anúncios que não dão resultado.

Que cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), até 90 dias
  • OpenAI Ads, anúncios no ChatGPT
  • wok_aff: através de que parceiro chegou até nós (programa de afiliados), 60 dias

4,6

País e idioma

Cada país tem o seu próprio site, com os preços e o IVA desse país.

Ver

Gestão de pacotes com apt

Módulo 4: Software e atualizações · Tempo de leitura: 10 minutos

Objetivo de aprendizagem: Depois desta lição, saberá instalar, atualizar e remover software com apt, ver de onde vem um pacote e reconhecer quais as atualizações que são atualizações de segurança.

Conceitos-chave: pacote, fonte de pacotes (repository), sources.list, ficheiro .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, fonte de segurança, dnf

Porquê um gestor de pacotes?

No Windows, descarrega um programa de instalação de um site. Num servidor Linux, isso quase nunca acontece. O software chega como pacote a partir de uma fonte de pacotes (repository): um servidor da distribuição com milhares de programas, todos compilados e testados para a sua versão de Debian ou Ubuntu. O programa que obtém, instala e atualiza esses pacotes chama-se gestor de pacotes. No Debian e no Ubuntu é o apt (com o dpkg por baixo), no AlmaLinux e no Rocky Linux é o dnf.

Isto tem três grandes vantagens:

  1. Um só comando atualiza tudo. O servidor web, o servidor SSH, as bibliotecas e o kernel vêm da mesma fonte. Não precisa de verificar em cada site se existe uma nova versão de cada programa.
  2. A origem é verificada. Cada fonte de pacotes é assinada com uma chave. O apt recusa pacotes cuja assinatura não esteja correta.
  3. As dependências são tratadas automaticamente. Se o nginx precisar de uma biblioteca, o apt instala-a automaticamente e, mais tarde, volta a removê-la.

As fontes de pacotes: de onde vem o software?

As fontes que o apt utiliza estão em /etc/apt/. Durante muito tempo, era um único ficheiro sources.list com linhas como:

deb http://deb.debian.org/debian bookworm main

O Ubuntu 24.04 e posteriores, as imagens cloud do Debian e cada vez mais instalações novas utilizam o formato mais recente deb822: ficheiros separados com a extensão .sources em /etc/apt/sources.list.d/. É possível converter um sources.list antigo com sudo apt modernize-sources (apt 3, Debian 13). Por exemplo, no Debian 13:

anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Leia assim: a suite é a versão (trixie é o Debian 13; noble é o Ubuntu 24.04), o component é uma parte da fonte (main no Debian; main, universe, restricted e multiverse no Ubuntu), e Signed-By indica com que chave a fonte tem de estar assinada. Este último ponto é importante: uma chave pertence a uma fonte, não a todas as fontes ao mesmo tempo. Se mais tarde adicionar uma fonte de um fabricante (Docker, Caddy, PostgreSQL), esta recebe o seu próprio ficheiro de chave e a sua própria linha Signed-By (lição 9.2).

A fonte com -security no nome é a fonte de segurança. É daí que vêm as atualizações de segurança, normalmente no mesmo dia em que uma falha se torna pública. No Ubuntu, essa suite chama-se noble-security (ou o nome da sua versão).

Se ainda utilizar o antigo sources.list, tudo continua a funcionar normalmente. Apenas não misture a mesma fonte nos dois formatos, porque o apt queixa-se de linhas duplicadas.

update, upgrade e full-upgrade

A diferença entre estes três conceitos é a primeira armadilha para quem está a começar.

ComandoO que faz
apt updateObtém a lista dos pacotes e versões disponíveis nas fontes. Não instala nada.
apt upgradeAtualiza os pacotes instalados para a versão mais recente dessa lista. Nunca remove nada. Uma atualização que obrigaria a remover outro pacote é ignorada.
apt full-upgradeO mesmo, mas também pode remover pacotes ou instalar novos, se necessário. É necessário numa atualização de versão da distribuição (lição 4.3) e, por vezes, com um novo kernel.

Portanto, primeiro sempre update e depois upgrade:

anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1]

(Os números de versão acima são um exemplo.) A seguir ao nome está indicada a suite de onde vem a nova versão. Tudo o que tem -security é uma atualização de segurança: essas devem ser instaladas o mais depressa possível. -updates são outras atualizações estáveis, como novos dados de fusos horários.

Em seguida:

anna@web1:~$ sudo apt upgrade

O apt mostra o que vai mudar e pede confirmação. Leia essa lista. Se aparecer "The following packages will be REMOVED" (os pacotes seguintes serão removidos), passa-se algo invulgar e convém saber primeiro porquê.

Instalar, remover e limpar

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # programa removido, a configuração em /etc mantém-se
anna@web1:~$ sudo apt purge nginx        # programa e configuração removidos
anna@web1:~$ sudo apt autoremove         # limpar o que já ninguém precisa

A diferença entre remove e purge é útil: se quiser remover algo temporariamente e voltar a instalá-lo mais tarde com as mesmas definições, utilize remove. Se quiser mesmo começar do zero, utilize purge.

Pesquisar e obter mais informações:

anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
  Installed: 1:10.0p1-7
  Candidate: 1:10.0p1-7+deb13u1
  Version table:
     1:10.0p1-7+deb13u1 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
 *** 1:10.0p1-7 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages

apt-cache policy é o comando a utilizar quando quer saber de onde vem um pacote e que versão o apt vai escolher. O *** aparece junto da versão instalada, Candidate é o que uma atualização instalaria.

Versões do Debian e a versão de um programa

Uma queixa frequente: "O Debian traz uma versão antiga do nginx." É verdade e é propositado. O Debian e o Ubuntu congelam as versões no lançamento de uma release e, a partir daí, apenas acrescentam correções de segurança e reparações graves, sem novas funcionalidades. Por isso, um pacote com um número de versão "antigo" pode ter todas as correções de segurança recentes: estas foram retroportadas (backport) para a versão antiga. Reconhece-se isso pelo sufixo, como +deb13u1 ou ubuntu0.1.

Por isso, nunca compare apenas o número de versão com o site do fabricante para avaliar se está vulnerável. Consulte os avisos de segurança da sua distribuição: o Debian Security Tracker (security-tracker.debian.org) e as Ubuntu Security Notices (ubuntu.com/security/notices) indicam, para cada falha, se a sua versão foi corrigida.

Algumas regras para um servidor tranquilo

  • Instale apenas o que precisa. Cada pacote é código que tem de ser atualizado e, por vezes, um serviço que fica à escuta (lição 5.1).
  • Prefira a distribuição a um site. Um programa que compila por si ou descarrega como ficheiro avulso não é atualizado pelo apt upgrade. Nesse caso, terá de acompanhar os avisos de segurança por conta própria.
  • Uma fonte adicional apenas do próprio fabricante, com uma chave própria e Signed-By. Nunca adicione uma chave "para tudo" e nunca uma fonte de um site desconhecido (lição 4.3).
  • Leia o que o apt pergunta. Numa atualização, o apt pode perguntar se quer substituir um ficheiro de configuração alterado pela nova versão do fabricante. Se não souber o que alterou, escolha "keep the local version" (manter a versão local, a opção predefinida) e veja mais tarde a diferença com diff: a nova versão fica ao lado como .dpkg-dist.

No AlmaLinux e no Rocky Linux

Aí, o gestor de pacotes chama-se dnf e os pacotes são .rpm. Os comandos são semelhantes aos do apt: dnf check-update (a lista), dnf upgrade (atualizar, update e upgrade num só), dnf install, dnf remove, dnf info. As fontes estão em /etc/yum.repos.d/*.repo. Muito software adicional (como o fail2ban) vem da fonte separada EPEL, que ativa primeiro com dnf install epel-release. Para mostrar apenas as atualizações de segurança, utilize dnf updateinfo list --security.

Na prática: o ecrã do VPS

Na WebOké, e na maioria dos outros fornecedores, a instalação do seu VPS já configura corretamente as fontes predefinidas da distribuição. Normalmente, não precisa de alterar nada. Atualize o servidor logo após o primeiro início de sessão com apt update e apt upgrade (lição 1.2) e, antes de grandes alterações, crie um snapshot no painel do seu fornecedor.

Resumo

  • No Debian e no Ubuntu, o software vem de fontes de pacotes assinadas; o apt obtém, instala, atualiza e limpa.
  • apt update apenas obtém a lista; apt upgrade atualiza sem remover; apt full-upgrade também pode remover.
  • As atualizações de segurança vêm da suite com -security no nome; apt list --upgradable e apt-cache policy mostram de onde vem uma versão.
  • Um número de versão antigo com +deb13u1 ou ubuntu0.x pode ter todas as correções (backport): consulte os avisos de segurança da sua distribuição.
  • Uma fonte adicional apenas do próprio fabricante, com uma chave própria em Signed-By.

Questionário

1. Escreve sudo apt upgrade num servidor onde não faz nada há uma semana, e o apt indica que está tudo atualizado. No entanto, sabe que ontem saiu uma atualização do OpenSSH. Qual é a explicação mais provável?



2. Qual é a diferença entre apt remove e apt purge?



3. Em apt list --upgradable aparece openssh-server/noble-security .... O que indica a parte noble-security?



4. O site de um programa indica a versão 2.8, enquanto o Debian fornece a 2.6 com +deb13u2. Um colega diz: "Então o Debian está vulnerável a todas as falhas corrigidas na 2.7 e na 2.8." O que é correto?



5. Porque é que uma fonte de pacotes adicional deve ter uma chave própria com Signed-By?



Exercício

Exercício Z4.1: Que atualizações são atualizações de segurança? O ficheiro de exemplo apt-upgradable.txt contém a saída de apt list --upgradable e apt-cache policy de um servidor Debian 13. Responda: que pacotes vêm da fonte de segurança, que pacote vem de uma fonte de um fabricante em vez do Debian, que versão de openssh-server está instalada neste momento, e que pacote é uma atualização estável normal sem motivo de segurança? O programa compara com a chave fixa. Se já tiver um servidor próprio, execute os mesmos comandos e veja o que obtém.

Exercício Z4.1: Que atualizações são atualizações de segurança?

Ficheiro deste exercício: apt-upgradable.txt





O que preenche e o que encontramos não ficam guardados. O seu navegador memoriza as suas respostas e se concluiu o exercício com sucesso. Se tiver sessão iniciada, guardamos apenas que concluiu o exercício (quase) com sucesso em Os meus cursos; aí também o pode eliminar.

Para saber mais

Um momento…

Configurar os seus domínios

Para cada domínio, defina os servidores de nomes, a ligação ao seu alojamento e quem fica como titular.

A carregar os seus domínios…