Capitolo 5. Problemi di cui essere al corrente per wheezy

Indice

5.1. Supporto LDAP
5.2. Stato della sicurezza dei browser web
5.3. ConsoleKit e display manager alternativi
5.4. Cambiamenti e supporto nel desktop GNOME
5.5. Modifiche al desktop KDE
5.6. NetworkManager
5.7. perl-suid rimosso
5.8. Versioni di Request Tracker
5.9. Modifiche in bootlogd
5.10. /etc/mtab e _netdev
5.11. La transizione da pdksh a mksh
5.12. Compatibilità con puppet 2.6 / 2.7
5.13. Implicazioni del multiarch per la toolchain
5.14. Backend SQL per Cyrus SASL
5.15. Firmware per driver di rete e video

A volte i cambiamenti introdotti da un nuovo rilascio comportano effetti collaterali che non si possono ragionevolmente evitare o che espongono a errori da altre parti. In questa sezione sono documentati i problemi noti. Si leggano anche le errata corrige, la documentazione dei pacchetti interessati, le segnalazioni di errori e altre informazioni riportate in Sezione 6.1, «Ulteriori letture».

5.1. Supporto LDAP

Una funzionalità nelle librerie crittografiche usate dalle librerie LDAP impedisce ai programmi che usano LDAP di modificare i propri privilegi quando sono connessi a un server LDAP con TLS o SSL. Questo può creare problemi su sistemi con libnss-ldap per i programmi setuid quali sudo, su o schroot e per i programmi setuid che fanno ricerche LDAP quali sudo-ldap.

Si raccomanda di sostituire il pacchetto libnss-ldap con libnss-ldapd, una nuova libreria che utilizza un demone separato (nslcd) per tutte le ricerche LDAP. Il sostituto di libpam-ldap è libpam-ldapd.

Notare che libnss-ldapd raccomanda il demone di caching NSS (nscd); prima di installarlo è necessario valutare se è adatto al proprio sistema. Come alternativa a nscd è possibile usare unscd.

Ulteriori informazioni sono disponibili nelle segnalazioni d'errore #566351 e #545414.

5.2. Stato della sicurezza dei browser web

Debian 7.0 contiene diversi motori per browser che sono affetti da varie vulnerabilità di sicurezza. L'alto tasso di vulnerabilità e la parziale mancanza di supporto a lungo termine da parte degli autori originali complica l'attività di supporto di questi browser tramite l'applicazione delle correzioni di sicurezza alle versioni precedenti. Inoltre la dipendenza reciproca delle librerie rende impossibile aggiornare a una nuova versione. Perciò, in Wheezy sono presenti browser basati sui motori webkit, qtwebkit e khtml, ma non sono coperti dal supporto di sicurezza. Non si dovrebbe usare questi browser con siti web non fidati.

Per la navigazione su web si raccomandano i browser basati sul motore Mozilla xulrunner (Iceweasel e Iceape) oppure Chromium.

Xulrunner ha dimostrato nella storia delle versioni precedenti di avere una buona portabilità all'indietro. Chromium, pur essendo costruito sulla base di codice Webkit, è un pacchetto foglia, che sarà mantenuto aggiornato ricompilando le attuali versioni contenute nel rilascio stabile.

5.3. ConsoleKit e display manager alternativi

Consolekit in Debian 7.0 non considera come locali le sessioni avviate usando startx o display manager non integrati con consolekit (ad es. xdm o slim); ciò potrebbe impedire l'accesso ad alcuni device.

Si raccomanda di usare invece uno fra gdm3, kdm o lightdm.

5.4. Cambiamenti e supporto nel desktop GNOME

Alcuni strumenti per l'accessibilità non sono abilitati in modo predefinito nel display manager di GNOME (gdm3). Il modo più semplice per abilitare lo zoom o una tastiera visuale è di attivare il greeter della «shell».

Per farlo, modificare il file /etc/gdm3/greeter.gsettings decommentando la seguente riga:

session-name='gdm-shell'

e commentando

session-name='gdm-fallback'

Notare che serve una scheda grafica compatibile 3D, che è il motivo per cui non è abilitato in modo predefinito.

5.5. Modifiche al desktop KDE

Il pacchetto knetworkmanager è deprecato ed è stato sostituito da plasma-widget-networkmanagement nel nuovo KDE Plasma Workspace.

Se si usa l'applicazione indipendente deprecata knetworkmanager, bisogna prepararsi a modificare manualmente la configurazione dopo l'aggiornamento. Potrebbe essere necessario aggiungere manualmente plasma-widget-networkmanagement al proprio pannello o desktop.

Inoltre, se la connessione di rete non deve dipendere dall'esecuzione di un widget per la gestione della rete, potrebbe essere una buona idea impostarla come «connessione di sistema».

5.6. NetworkManager

NetworkManager può rilevare se un'interfaccia di rete è gestita da ifupdown in modo da evitare conflitti, ma non è in grado di farlo con altri programmi di gestione della rete come wicd-daemon. Possono verificarsi problemi e comportamenti inattesi se due di questi demoni stanno gestendo la stessa interfaccia mentre si tenta di stabilire una connessione di rete.

Per esempio, se wicd-daemon e NetworkManager sono entrambi in esecuzione e si tenta di usare un client wicd per stabilire una connessione, questa fallirà con il seguente messaggio di errore:

Connection Failed: bad password

Allo stesso modo, se si tenta di usare un client NetworkManager, questo fallirà con il messaggio:

NetworkManager is not running.  Please start it.

Si raccomanda agli utenti di GNOME di installare e provare NetworkManager, ma possono disabilitare permanentemente, se vogliono, il demone NetworkManager usando il seguente comando:

# update-rc.d network-manager disable

Dopo aver disabilitato il demone, si raccomanda di esaminare i contenuti di /etc/resolv.conf. Questo file è usato per specificare i server DNS per la risoluzione dei nomi e i contenuti di questo file potrebbero essere stati modificati da NetworkManager.

5.7. perl-suid rimosso

suidperl è stato rimosso a monte con la versione 5.12, perciò il pacchetto perl-suid che veniva distribuito da Debian è stato anch'esso rimosso. Fra le possibili alternative vi è l'uso di un semplice wrapper setuid in C per eseguire uno script Perl da una posizione fissa o l'uso di uno strumento più generico come sudo.

5.8. Versioni di Request Tracker

Se request-tracker3.8 è installato sul proprio sistema squeeze, notare che questo pacchetto è stato rimosso da wheezy ed è stato sostituito da request-tracker4. Sono necessarie alcune operazioni manuali per aggiornare da request-tracker3.8 a request-tracker4: installare request-tracker4 insieme all'installazione esistente di request-tracker3.8 e consultare le note all'installazione e all'aggiornamento contenute in /usr/share/doc/request-tracker4/README.Debian.gz (sezione: «Upgrading from request-tracker3.8 to request-tracker4»).

Lo stesso consiglio vale se sono presenti request-tracker3.6 o pacchetti più vecchi da precedenti rilasci di Debian ancora in uso; in questo caso di raccomanda di aggiornare passo per passo, seguendo l'opportuna documentazione sull'aggiornamento.

5.9. Modifiche in bootlogd

bootlogd è stato spostato da sysvinit-utils in un pacchetto bootlogd separato. Se si vuole continuare a usare bootlogd, bisogna installare il pacchetto bootlogd. Notare che il file di configurazione /etc/default/bootlogd e la sua opzione BOOTLOGD_ENABLE non esistono più; se non si vuole far girare bootlogd, rimuovere il pacchetto bootlogd.

5.10. /etc/mtab e _netdev

Il file /etc/mtab, usato per memorizzare la lista dei file system attualmente montati, è stato modificato in un collegamento simbolico a /proc/mounts. In quasi tutti i casi questo porterà ad avere un sistema più robusto in quanto la lista non può mai essere diversa dalla realtà. Tuttavia, se si usa l'opzione _netdev in /etc/fstab per indicare che un file system è un file system di rete e quindi richiede un trattamento speciale, questo non verrà più impostato in /proc/mounts dopo il riavvio. Ciò non darà problemi ai file system standard di rete come NFS, che non si appoggiano all'opzione _netdev. I file system che non sono interessati da questo problema sono ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 e smbfs. Per i file system che davvero si appoggiano a _netdev per venire smontati correttamente allo spegnimento, per esempio quando si usa un NBD, l'unico modo per usare _netdev in wheezy è usare un mtab statico. Se si ha una simile configurazione, dopo aver completato l'aggiornamento a wheezy si deve ripristinare un /etc/mtab statico in questo modo:

  • Modificare /etc/init.d/checkroot.sh e commentare queste righe:

            if [ "$rootmode" != "ro" ]; then
                    mtab_migrate
            fi
    

  • Se si riavvia il sistema e /etc/mtab è adesso un collegamento simbolico:

    # rm /etc/mtab
    # cp /proc/mounts /etc/mtab
    

    Riaggiungere l'opzione _netdev rimontando i file system interessati:

    # mount -o remount file system
    

    /etc/mtab sarà ricreato completamente al successivo riavvio del sistema.

5.11. La transizione da pdksh a mksh

La shell Korn di pubblico dominio (pdksh, Public Domain Korn Shell) verrà ritirata dal rilascio successivo a wheezy, dal momento che pdksh non è più mantenuta (non è più sviluppata attivamente dal 1999).

Il pacchetto MirBSD Korn Shell (mksh) contiene la sua successore, evolutosi dalla Public Domain Korn Shell e mantenuta aggiornata con lo standard POSIX sulla shell. In Debian wheezy, pdksh è un pacchetto di transizione che usa lksh, una variante di mksh compilata con speciali opzioni per la compatibilità per fornire un collegamento simbolico binario a pdksh. Questo binario di compatibilità si comporta in modo molto più simile alla tradizionale Public Domain Korn Shell dell'attuale mksh. Tuttavia, poiché contiene delle correzioni che ne modificano il comportamento, non è un sostituto identico. Pertanto si consiglia di cambiare i propri script

#!/bin/pdksh

in

#!/bin/mksh

e collaudarli. Se la prova fallisce, si consiglia di correggere gli script. Se per qualche motivo ciò non fosse possibile, si può modificarli in script

#!/bin/lksh

e collaudarli di nuovo. Questa prova ha più possibilità di successo senza modificare gran parte del codice. Si tenga tuttavia presente che in futuro il pacchetto di transizione sarà rimosso da Debian.

Il binario di compatibilità non è adatto per un uso interattivo, pertanto come amministratori di sistema si deve modificare la shell di login dei propri utenti che usino la Korn Shell. Per ridurre al minimo le interruzioni di servizio, si consiglia di farlo prima dell'aggiornamento del sistema operativo: installare manualmente il pacchetto mksh e modificare le shell di login e/o interattive degli utenti che usano pdksh in mksh. Inoltre, si consiglia di copiare /etc/skel/.mkshrc nelle loro directory home: questo fornisce alcune funzioni di shell come pushd, popd e dirs e un bel

PS1

(prompt di shell).

5.12. Compatibilità con puppet 2.6 / 2.7

Quando si aggiorna un sistema gestito con Puppet da squeeze a wheezy, bisogna assicurarsi che il puppetmaster corrispondente esegua almeno Puppet versione 2.7. Se il master esegue puppetmaster di squeeze, il sistema wheezy in gestione non sarà in grado di collegarvisi.

Tale combinazione porterà al seguente messaggio d'errore durante un'esecuzione di puppet agent:

Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST

Per risolvere questo problema bisogna aggiornare il puppetmaster. Un master 2.7 è in grado di gestire un sistema client 2.6.

5.13. Implicazioni del multiarch per la toolchain

L'introduzione del multiarch (come descritto in Sezione 2.3.2, «Multiarch») modifica i percorsi di alcuni file, il che potrebbe violare alcune ipotesi fatte dai componenti della toolchain. La toolchain di Debian è stata aggiornata, ma gli utenti che tentino di compilare o usare compilatori esterni devono esserne al corrente.

Alcuni suggerimenti per aggirare questi problemi si possono trovare in /usr/share/doc/libc0.1/NEWS.Debian.gz e nella segnalazione #637232.

5.14. Backend SQL per Cyrus SASL

La configurazione dei motori di backend di SQL per Cyrus SASL, fornita dal pacchetto libsasl2-modules-sql, è passata da una configurazione specifica per database (per es. mysql) al plugin auxprop generico sql.

I file di configurazione per le applicazioni che usano SASL devono essere aggiornati, per esempio:

auxprop_plugin: mysql

deve essere sostituito da:

auxprop_plugin: sql
sql_engine: mysql

Inoltre, nella query SQL (se usata) si deve sostituire %u con %u@%r, perché l'utente e il realm sono ora forniti separatamente.

5.15. Firmware per driver di rete e video

Alcuni driver hardware, compresi driver per schede di rete (con cavo o wireless), così come il driver per i chipset video ATI/AMD, richiedono un firmware caricabile per poter funzionare correttamente.

Quel firmware spesso non è software libero e come tale è disponibile solo nell'archivio non-free, nel pacchetto firmware-linux e altri pacchetti.