Índice
libinput
dbgsym
net-tools
será depreciado
em favor do iproute2
_netdev
é recomendada ao utilizar
dispositivos AoE (ATA over ethernet)Por vezes, as alterações introduzidas num novo lançamento têm efeitos secundários que não podemos evitar razoavelmente, ou porão a descoberto bugs noutro lado. Esta secção documenta os problemas que conhecemos. Por favor leia a errata, a documentação dos pacotes relevantes, relatórios de bugs e outra informação mencionada em Secção 6.1, “Leitura adicional”.
Esta seção cobre itens relacionados com a actualização de jessie para stretch.
![]() | Nota |
---|---|
Esta secção apenas é aplicável a sistemas que utilizem um kernel
personalizado, onde |
Montar /usr
utilizando apenas ferramentas que se
encontram em /
já não é suportado. Isto funcionou
apenas para algumas configurações especificas no passado, e agora é
explicitamente não suportadas.
Isto significa que para stretch todos os sistemas onde
/usr
esteja numa partição separada necessitam de
utilizar um gerador de initramfs que monte /usr
. Todos
os geradores de initramfs em stretch fazem-no.
Os mirrors alojados de Debian irão deixar de disponibilizar acesso FTP. Se
tem utilizado o protocolo ftp:
no seu sources.list, então
por favor migre para http:
. Por favor considere o
seguinte exemplo para a migração:
deb http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian-security stretch/updates main # tor variant (requires apt-transport-tor) # deb tor+http://vwakviie2ienjx6t.onion/debian stretch main # deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates main
Os exemplos acima não incluem as non-free
e
contrib
. Por favor lembre-se de incluir estes se
necessitar desses componentes activos.
Para mais informação, por favor refira-se ao anúncio Shutting down public FTP services.
Os seguintes são uma lista de pacotes conhecidos e relevantes que são obsoletos (para uma descrição, veja Secção 4.8, “Pacotes obsoletos” ).
A lista de pacotes obsoletos inclui:
A maioria dos pacotes -dbg
foi removida do arquivo
principal. Estes foram substituídos por pacotes -dbgsym
que estão disponíveis a partir do arquivo
debian-debug
. Por favor veja Secção 2.2.8, “Um novo arquivo para símbolos de debug”.
Os gestores de palavras-passe fpm2
e
kedpm
já não são mantidos pelos
autores. Por favor utilize outro gestor de palavras-passe como o pass
, keepassx
ou keepass2
. Assegure-se que extrai as suas
palavras-passe do fpm2
e do
kedpm
antes de remover os pacotes.
O pacote net-tools
está a ser
depreciado em favor do iproute2
. Para mais informações veja Secção 5.3.9, “O pacote net-tools
será depreciado
em favor do iproute2
” ou o
Debian reference manual.
As ferramentas de monitorização nagios3
foram removidas do stretch. O pacote
icinga
é o substituto mais
próximo. Este lê os seus ficheiros de configuração a partir de um caminho
diferente do nagios, mas são compatíveis.
Quando apt-get dist-upgrade
tiver terminado, a
actualização “formal” estará completa. Para o upgrade para
stretch não é necessário tomar ações especiais antes de reiniciar.
Por predefinição, o compilador GNU GCC 6 disponibilizado por Debian stretch irá compilar todos os executáveis como independentes de posição. Isto fornece mitigação para uma classe inteira de vulnerabilidades.
Infelizmente, o kernel Linux disponibilizado em Debian 8 (até à 8.7) tem um
problema que pode fazer com que alguns programas compilados como executáveis
independentes de posição possam crashar com um problema sem descrição tal
como segmentation fault
. Este problema foi resolvido na
versão de Linux disponibilizada na 8.8 (versão 3.16.43 ou posterior) e o
kernel disponibilizado em Debian 9 (versão 4.9 ou posterior).
We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel from Debian 8.8 or newer, you are not affected by this issue.
Se durante a actualização estiver a correr uma versão afectada do kernel, recomendamos fortemente que reinicie para utilizar o kernel do stretch logo após a actualização para evitar encontrar este problema.
![]() | Nota |
---|---|
Esta secção destina-se principalmente a desenvolvedores ou administradores de sistema. É improvável que os utilizadores de Ambientes de Trabalho sejam afectados por esta secção. |
O acima também leva a algumas alterações que vale a pena estar a par.
A ferramenta file (entre outras) irá classificar tais binários como “shared object” em vez de “executable”. Se tiver filtros baseados em ficheiros binários então estes podem necessitar de serem actualizados (e.g. filtros de spam).
As bibliotecas estáticas que sejam compiladas em executáveis agora também necessitam de ser compiladas como código independente de posição. A seguinte mensagem de erro do linker é um simtoma disto:
relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
Note que apesar da mensagem de erro dizer -fPIC, é suficiente recompilar com -fPIE (que é o predefinido nos pacotes GCC 6 que fazem parte do stretch).
Historicamente, os executáveis independentes de posição eram associados com
uma perda de performance em algum hardware. Notavelmente na arquitectura
i386
(máquinas Intel de 32-bit). Apesar de GCC 5 e GCC 6
terem
melhorado muito a performance para executáveis independentes de posição em
Intel de 32-bit, esta optimização poderá não ser aplicável a todas
as arquitecturas. Por favor considere analisar a performance do seu código
se tiver como alvo máquinas de arquitecturas com um número muito limitado de
registos.
Devido a falta de interesse e teste, Debian removeu a vasta maioria dos pacotes de compatibilidade Linux Standard Base (LSB).
Debian irá continuar a disponibilizar uns poucos utilitários LSB chave
utilizados internamente e externamente, tais como lsb-release
e as funções sysvinit init em
lsb-base
. Além disso, Debian
continua firmemente a suportar o Filesystem
Hierarchy Standard (FHS) version 2.3 com alterações menores descritas no
Debian Policy Manual.
Existem alguns pacotes onde Debian não pode prometer disponibilizar backports mínimos para problemas de segurança. Estes estão cobertos nas seguintes subsecções.
Note que o pacote debian-security-support
ajuda a seguir o estado
do suporte de segurança dos pacotes instalados.
Debian 9 inclui vários motores de navegador de internet que são afectados por um fluxo regular de vulnerabilidades de segurança. A alta taxa de vulnerabilidades e a falta parcial de suporte dos autores sob a forma de branches por longos períodos de tempo torna muito difícil suportar estes navegadores através da adaptação de correcções de segurança (backports). Além disso, as interdependências entre bibliotecas tornam impossível actualizar para novos lançamentos mais recentes. Por isso, os navegadores criados sob os motores webkit, qtwebkit e khtml estão incluídos no stretch, mas não estão cobertos pelo suporte de segurança. Estes navegadores não devem ser utilizados para aceder a sites que não sejam de confiança.
Para um navegador web recomendamos o Firefox ou Chromium.
Chromium - apesar de construído sobre o código do Webkit - é um pacote leaf, o qual irá ser mantido actualizado ao recompilar os actuais lançamentos do Chromium para stable. O Firefox e Thunderbird também irão ser mantidos actualizados ao recompilar os actuais lançamentos ESR para stable.
A plataforma Node.js é construída sob libv8-3.14
, a qual experimenta um grande volume
de problemas de segurança, mas actualmente não existem voluntários dentro do
projecto ou da equipa de segurança suficientemente interessados e
disponíveis para utilizar uma grande quantidade de tempo necessário para
resolver esses problemas.
Infelizmente, isto significa que libv8-3.14
, nodejs
, e o ecossistema de pacotes node-*
associados actualmente não devem ser utilizados com conteúdo não-confiável,
tal como dados por tratar da Internet.
Além disso, estes pacotes não irão receber quaisquer actualizações de segurança durante o tempo de vida do lançamento stretch.
Na maioria dos casos, a actualização dos pacotes deve ser suave entre jessie e stretch. Existe um pequeno número de casos onde poderá ser necessária alguma intervenção, quer antes ou depois da actualização; Estes estão detalhados abaixo, por pacote.
O lançamento OpenSSH 7 desabilitou por defeito, algumas cifras mais antigas e o protocolo SSH1. Por favor tenha cuidado ao actualizar as máquinas onde tenha acesso apenas por SSH.
Além disso, a opção por defeito da configuração "UseDNS" mudou de sim para não. Isto pode fazer com que os utilizadores que utilizam a funcionalidade "from=" em authorized_keys para limitar o acesso ssh a máquinas, possam ser deixados de fora, o que é especialmente problemático se estiver a actualizar remotamente.
Para mais informação por favor veja a documentação do OpenSSH.
Esta secção cobre algumas alterações incompatíveis ao APT que possam afectar o seu sistema.
O APT agora irá tentar descartar todos os privilégios de root antes de obter ficheiros a partir dos mirrors. O APT pode detectar alguns casos onde isto irá falhar e como recurso irá obter os ficheiros como root mas com um aviso. No entanto, isto poderá não detectar algumas configurações mais exóticas (e.g. regras de firewall por UID específico).
Se experimentar problemas com esta funcionalidade, por favor mude para o
utilizador _apt
e verifique que:
tem acesso a ficheiros em /var/lib/apt/lists
e
/var/cache/apt/archives
.
tem acesso de leitura à trust store do APT
(/etc/apt/trusted.gpg
e
/etc/apt/trusted.gpg.d/
)
consegue resolver nomes de DNS e obter ficheiros. Métodos de exemplo para testar:
# Do pacote dnsutils (se utilizar tor, por favor verifique em vez disso com tor-resolve). $ nslookup debian.org >/dev/null || echo "Cannot resolve debian.org" $ wget -q https://debian.org/ -O- > /dev/null || echo "Cannot download index page of debian.org"
Para problemas com DNS, por favor verifique que
/etc/resolv.conf
é legível.
O APT 1.1 introduziu um novo motor de pinning que agora coincide com a descrição na página do manual.
O antigo motor atribuía uma prioridade de pin por pacote; o novo atribui prioridades de pin por versão. Depois escolhe a versão com o pin mais alto que não seja um downgrade ou que tenha um pin > 1000.
Isto altera o efeito de alguns pins, especialmente dos negativos. Anteriormente, fazer pinning a uma versão para -1 efectivamente prevenia que o pacote fosse instalado (o pin do pacote era -1), agora apenas previne que a versão deste pacote seja instalada.
![]() | Nota |
---|---|
Esta secção apenas se aplica se tiver activos (ou quiser utilizar) repositórios de terceiros ou se mantiver um repositório APT. |
Para melhorar a estabilidade do download e assegurar a segurança do conteúdo obtido, o APT agora necessita do seguinte a partir de um repositório APT:
O ficheiro InRelease tem de estar disponível.
Todos os metadados têm de incluir, pelo menos, informação de controlo SHA256 de todos os itens. Isto inclui a assinatura GPG do ficheiro InRelease.
As assinaturas do ficheiro InRelease devem ser feitas com uma chave de tamanho 2048 bits ou superior.
Se depender de algum repositório de terceiros que não possa cumprir com o acima, por favor incite-os a actualizar o repositório. Está disponível mais informação acerca do ficheiro InRelease, que pode ser encontrada no Debian Wiki.
![]() | Nota |
---|---|
Esta secção apenas é relevante se alterou ou necessitar alterar a configuração predefinida da configuração de input do Xorg. |
Em Jessie, o driver de input predefinido para o Xorg é o
evdev
. Em Stretch, o predefinido mudou para o driver
libinput
. Se tiver uma configuração do Xorg que dependa
do driver evdev
, deve convertê-la para o driver
libinput
ou reconfigurar o seu sistema para o utilizar o
driver evdev
.
O seguinte é uma configuração de exemplo para o libinput
para habilitar a funcionalidade “Emulate3Buttons”.
Section "InputClass" Identifier "mouse" MatchIsPointer "on" Driver "libinput" Option "MiddleEmulation" "on" EndSection
Insira-a no
/etc/X11/xorg.conf.d/41-middle-emulation.conf
, reinicie
a máquina (ou reinicie o Xserver) e deve passar a estar activa.
O driver evdev
ainda está disponível no pacote
xserver-xorg-input-evdev
.
Devido à falta de mantenedores do software original, o sistema de init Upstart foi removido de Stretch. Se o seu sistema depender deste pacote, deve notar que este não irá ser actualizado durante o tempo de vida de Debian 9 e que a partir de Debian 10 (buster), os jobs do Upstart poderão ser removidos dos pacotes.
Por favor considere mudar para um sistema init suportado, como o systemd ou OpenRC.
![]() | Nota |
---|---|
Esta secção destina-se principalmente a desenvolvedores ou organizações que compilem os seus próprios pacotes debian. |
O conjunto de ferramentas debhelper agora irá gerar pacotes
dbgsym
por defeito para binários ELF. Se desenvolver e
empacotar binários, por favor verifique que as suas ferramentas suportam
estes pacotes extra que são automaticamente gerados.
Se utilizar o reprepro
, irar querer
actualizar pelo menos para a versão 4.17.0. Para o aptly
, irá necessitar pelo menos da versão
1.0.0, a qual infelizmente não está disponível em Debian stretch.
Se as suas ferramentas não forem capazes de lidar com isto graciosamente,
pode pedir ao debhelper para desabilitar esta funcionalidade ao acrescentar
“noautodbgsym
” na variável DEB_BUILD_OPTIONS
do seu serviço de compilação. Para mais informações por favor veja a
manpage dh_strip.
A aplicação openssl espera argumentos de opções antes dos argumentos que não opções. Por exemplo, isto já não funciona:
openssl dsaparam 2048 -out file
enquanto que isto ainda funciona:
openssl dsaparam -out file 2048
O comando openssl enc mudou o digest predefinido (utilizado para criar a chave da frase-passe) de MD5 para SHA256. O digest pode ser especificado com a opção -md no caso de ficheiros antigos que necessitem ser desencriptados com um OpenSSL mais recente (ou ao contrário).
As cifras 3DES e RC4 já não estão disponíveis para comunicação TLS/SSL. Os servidores linkados a OpenSSL não os podem oferecer e os clientes não se conseguem ligar aos servidores que oferecem apenas estes. Isto significa que o OpenSSL e o Windows XP já não partilham uma cifra em comum.
O pacote libssl-dev
disponibiliza
ficheiros header para compilar contra o OpenSSL 1.1.0. A API mudou muito e é
possível que o software já não consiga ser compilado. Existe um resumo das
alterações. Se não conseguir actualizar o seu software, existe
também o libssl1.0-dev
que
disponibiliza headers contra o OpenSSL 1.0.2.
![]() | Nota |
---|---|
Esta secção aplica-se a código mantido fora de Debian - local, de terceiros ou scripts e módulos antigos de Perl. |
Alguns módulos foram removidos do core Perl e são agora distribuídos em
pacotes separados. Exemplos notáveis são CGI
, disponível
no pacote libcgi-pm-perl
e
Module::Build
, disponível no pacote libmodule-build-perl
.
O directório de trabalho atual (.
) foi removido da
lista predefinida de directórios incluídos, @INC
. Isto
pode afectar a utilização de require()
,
do()
etc., onde os argumentos sejam ficheiros no
directório atual.
Todos os programas e módulos perl distribuídos por Debian foram corrigidos para dar resposta a quaisquer incompatibilidades causadas pelo acima; por favor registe bugs se este não for o caso. Como a mudança agora feita em perl 5.26.0, o software de terceiros também terão de ser corrigidas. Informação para os developers sobre como corrigir este problema é disponibilizada nas perl 5.26 release notes (veja a secção SECURITY).
Se necessário pode restablecer temporariamente .
globalmente em @INC
ao comentar a linha em
/etc/perl/sitecustomize.pl
, mas só deve fazer isto
percebendo os potenciais riscos. Esta alternativa irá ser removida em
Debian 10. Também pode definir a variável de ambiente
PERL_USE_UNSAFE_INC
num contexto específico que terá o
mesmo efeito.
A lista completa de alterações em Perl desde a versão em Debian 8 está disponível em perl522delta e perl524delta.
O pacote de linguagem procedimental PL/Perl, em jessie, é incompatível com a
versão de Perl em stretch. O pacote postgresql-plperl-9.4
será removido durante a
actualização, tornando os procedimentos de Perl no servidor
disfuncionais. Actualizando para PostgreSQL 9.6 não deverá ser afectado, os
procedimentos irão funcionar no novo cluster PostgreSQL se o pacote
postgresql-plperl-9.6
estiver
instalado. Se não estiver seguro, faça uma cópia de segurança dos seus
clusters PostgreSQL 9.4 antes de actualizar para stretch.
O pacote net-tools
já não fará
parte, por defeito, das novas instalações, já que a sua prioridade foi
baixada de importante para opcional. Os utilizadores, em vez disso, são
aconselhados a utilizar o conjunto de ferramentas moderno iproute2
(o qual já fazia parte das novas
instalações desde à alguns lançamentos). Se preferir continuar a utilizar os
programas do net-tools
pode sempre
instalar através de
apt install net-tools
Aqui está um sumário de comandos net-tools, em conjunto com o seu equivalente iproute2:
comandos do antigo net-tools | comandos do substituto iproute2 |
---|---|
arp | ip n (vizinho ip) |
ifconfig | ip a (ip addr), ip link, ip -s (ip -stats) |
iptunnel | ip tunnel |
nameif | ip link |
netstat | ss, ip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g) |
route | ip r (ip route) |
![]() | Nota |
---|---|
Isto é aplicável apenas a sistemas que tenham dispositivos ATA over ethernet (AoE) montados. Se o sistema não tiver shares de rede, pode saltar esta secção em segurança. |
Devido a uma limpeza na forma como é lidada a desconfiguração de rede, os
dispositivos AoE em uso já não são lidados conforme era esperado durante o
desligar, possivelmente resultando em bloqueios e/ou perda de dados. Para
mitigar esta situação, é sugerido montar tais dispositivos utilizando a
opção de mount _netdev
. Esta opção também está disponível
ao utilizar swap sobre AoE.
Durante a actualização, poderá ver alguns avisos como:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72. Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.
Estes são inofensivos e acontecem se perl-base
for actualizado antes do pacote
debconf
.
![]() | Nota |
---|---|
Esta secção apenas se aplica a sistemas que estejam a utilizar SELinux, o qual não está activo por defeito. |
Em stretch, a policy store de SELinux foi movida de
/etc/selinux/
para
<policy_name>
/var/lib/selinux/
.
Além disso, o formato utilizado dentro do store foi alterado.
<policy_name>
As políticas disponibilizadas por Debian (e.g. do pacote selinux-policy-default
) serão automaticamente
migradas. No entanto, as políticas especificas do sistema têm de ser
migradas manualmente.
O pacote semanage-utils
disponibiliza o script
/usr/lib/selinux/semanage_migrate_store
para fazer esta
transição.
O iSCSI Enterprise Target (IET), empacotado em lançamentos anteriores no
pacote iscsitarget
, já não está em
Debian. Já que não irá funcionar com versões recentes do kernel, e o
projecto não tem tido actividade de desenvolvimento nos anos recentes.
Os utilizadores de IET são encorajados a mudar para a stack LIO, a qual é
totalmente suportada em Debian stretch. O pacote targetcli-fb
disponibiliza o utilitário de
configuração para o alvo LIO iSCSI.
Como a stack LIO foi desenvolvida independentemente da IET, a configuração tem de ser migrada manualmente.