Capitolo 5. Software disponibile nel sistema Debian

# Capitolo 5. Software disponibile nel sistema Debian

## 5.1. Quali tipi di applicazioni e software di sviluppo sono disponibili per Debian GNU/Linux?

Come la maggior parte delle distribuzioni Linux, Debian GNU/Linux fornisce:

- le principali applicazioni GNU per lo sviluppo del software, la manipolazione dei file e l'elaborazione testi, inclusi gcc, g++, make, texinfo, Emacs, la shell Bash e numerose utilità Unix aggiornate;

- Perl, Python, Tcl/Tk e vari programmi correlati, moduli e librerie per ognuno di essi;

- TeX(LaTeX) e Lyx, dvips, Ghostscript;

- il sistema a finestre Xorg, che fornisce un'interfaccia grafica orientata alla rete per Linux ed innumerevoli applicazioni per X inclusi gli ambienti desktop GNOME, KDE e Xfce;

- una completa suite di applicazioni per la rete, inclusi server per protocolli Internet come HTTP (WWW), FTP, NNTP (news), SMTP e POP (posta) e DNS (server dei nomi); database relazionali come PostgreSQL e MySQL; sono inoltre forniti browser web inclusi i vari prodotti Mozilla;

- un insieme completo di applicazioni per l'ufficio, inclusi la suite di produttività LibreOffice, Gnumeric e altri fogli di calcolo, editor WYSIWYG, calendari.

Sono inclusi nella distribuzione più di 63879 pacchetti che spaziano dai server e lettori per le news al supporto per il suono, programmi per FAX, programmi per database e fogli di calcolo, programmi per l'elaborazione delle immagini, comunicazione, rete e utilità per la posta elettronica, server Web e persino programmi per i radioamatori. Altre 1082 suite di software sono disponibili come pacchetti Debian, ma non fanno formalmente parte di Debian a causa di restrizioni delle licenze.

## 5.2. Chi ha scritto tutto questo software?

Per ogni pacchetto gli autori del programma (o dei programmi) sono menzionati nel file `/usr/doc/PACCHETTO/copyright`, dove PACCHETTO è il nome del pacchetto.

I manutentori che impacchettano questo software per il sistema Debian GNU/Linux sono elencati nel file di controllo Debian (si veda Sezione 7.4, «Cos'è un file di controllo Debian?») che è fornito con ogni pacchetto. Anche il changelog Debian, in `/usr/share/doc/PACCHETTO/changelog.Debian.gz`, nomina coloro che hanno lavorato alla creazione del pacchetto Debian.

## 5.3. Come si può ottenere una lista aggiornata dei programmi che sono stati impacchettati per Debian?

Una lista completa è disponibile in tutti i mirror Debian, nel file `indices/Maintainers`. Quel file contiene i nomi dei pacchetti e i nomi e gli indirizzi di posta elettronica dei rispettivi manutentori.

L'interfaccia WWW ai pacchetti Debian riassume in modo pratico i pacchetti in ciascuna delle circa trenta "sezioni" dell'archivio Debian.

## 5.4. Come si può installare un ambiente di sviluppo per compilare pacchetti?

Se si desidera compilare pacchetti nel proprio sistema Debian è necessario avere un ambiente di sviluppo base, incluso un compilatore C/C++ ed alcuni altri pacchetti essenziali. Per installare questo ambiente è sufficiente installare il pacchetto `build-essential`: esso è un metapacchetto o pacchetto segnaposto che dipende dagli strumenti standard di sviluppo che sono necessari per compilare un pacchetto Debian.

È comunque possibile che qualche software possa aver bisogno di software aggiuntivo per essere ricompilato, inclusi header di libreria o strumenti addizionali come autoconf o gettext. Debian fornisce molti degli strumenti necessari per compilare ulteriore software in forma di pacchetti Debian.

Scoprire precisamente quale software sia necessario può tuttavia essere problematico, a meno che non si desideri ricompilare pacchetti Debian. Quest'ultimo compito è piuttosto facile, dato che i pacchetti ufficiali devono includere un elenco del software aggiuntivo (oltre ai pacchetti in `build-essential`) necessario per compilare il pacchetto; questo elenco è noto come `Build-Dependencies` (dipendenze di compilazione). Per installare tutti i pacchetti necessari per compilare un dato pacchetto sorgente e quindi effettivamente compilarlo basta eseguire:

    # apt-get build-dep pippo
    # apt-get source --build pippo

Si noti che se si desiderano compilare i kernel Linux distribuiti da Debian si dovrà installare anche il pacchetto `kernel-package`. Per maggiori informazioni si veda Sezione 10.2, «Quali strumenti fornisce Debian per costruire kernel personalizzati?».

## 5.5. Cosa manca da Debian GNU/Linux?

Esiste un elenco di pacchetti che sono ancora da impacchettare per Debian, l'elenco Work-Needing and Prospective Packages.

Per maggiori dettagli sull'aggiunta di cose mancanti, si veda Capitolo 13, Contribuire al Progetto Debian.

## 5.6. Perché ricevo il messaggio "ld: cannot find -lpippo" quando compilo i programmi? Perché non c'è alcun file libpippo.so nei pacchetti delle librerie Debian?

La Debian Policy richiede che tali collegamenti simbolici (a libpippo.so.x.y.z o simile) siano posti in un pacchetto di sviluppo separato. Questi pacchetti di solito si chiamano libpippo-dev o libpippoX-dev (ammettendo che il pacchetto libreria si chiami libpippoX e che X sia un numero intero).

## 5.7. Debian supporta Java? (E come?)

Diverse implementazioni libere della tecnologia Java sono disponibili come pacchetti Debian e forniscono sia Java Development Kit sia ambienti Runtime. Usando Debian si possono scrivere programmi Java, eseguirli e farne il debug.

L'esecuzione di un'applet Java richiede un browser web con la capacità di riconoscerla ed eseguirla. Diversi browser web disponibili in Debian, come Mozilla o Konqueror, supportano i plug-in Java che abilitano l'esecuzione di applet Java al loro interno.

Si faccia riferimento alla Debian Java FAQ per maggiori informazioni.

## 5.8. Come si può verificare di stare usando un sistema Debian e che versione è?

Per assicurarsi che il proprio sistema sia stato installato dai veri dischi di base di Debian usare il comando

    lsb_release -a

Esso visualizzerà il nome della distribuzione (nel campo Distributor ID) e la versione del sistema (nei campi Release e Codename). Questo è un esempio di esecuzione in un sistema Debian:

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 7.4 (wheezy)
    Release:    7.4
    Codename:   wheezy

Si può anche controllare l'esistenza del file `/etc/debian_version` che contiene una singola voce di una riga che fornisce il numero di versione del rilascio, come definito dal pacchetto `base-files`.

Gli utenti dovrebbero comunque essere consci del fatto che il sistema Debian consiste di molte parti, ognuna delle quali può essere aggiornata (quasi) indipendentemente. Ogni "rilascio" Debian è formato da un contenuto ben definito e invariato. Gli aggiornamenti sono disponibili separatamente. Per una descrizione su un'unica riga dello stato di installazione del pacchetto `pippo`, si usi il comando `dpkg --list pippo`. Per una descrizione più prolissa, usare:

    dpkg --status pippo

Per vedere le versioni di tutti i pacchetti installati eseguire:

    dpkg -l

Notare che l'esistenza del programma `dpkg` mostra che si dovrebbe essere in grado di installare pacchetti Debian sul proprio sistema. Tuttavia, dato che sono stati fatti port del programma su molti altri sistemi operativi e architetture, questo non è più un metodo affidabile per determinare se un sistema è Debian GNU/Linux.

## 5.9. Come supporta Debian le lingue diverse dall'inglese?

- Debian GNU/Linux è distribuita con mappe di tastiera per quasi due dozzine di tastiere e con utilità (nel pacchetto `kbd`) per installare, vedere e modificare le tabelle.

  L'installazione chiede all'utente di specificare la tastiera da usare.

- Quasi tutto il software in Debian gestisce UTF-8 come insieme di caratteri. Insiemi di caratteri datati, come ISO-8859-1 o ISO-8859-2, dovrebbero essere considerati obsoleti.

- Attualmente è disponibile il supporto per le pagine di manuale nelle lingue tedesco, spagnolo, francese, ungherese, italiano, giapponese, coreano, olandese, polacco, portoghese, russo, turco e cinese attraverso i pacchetti `manpages-LANG` (dove LANG è il codice ISO a due lettere della nazione). Per accedere alla pagina di un manuale NLS, l'utente deve impostare la variabile LC_MESSAGES della shell alla stringa appropriata.

  Per esempio, nel caso delle pagine di manuale in lingua italiana, LC_MESSAGES deve essere impostato a "italian". Il programma man cercherà poi le pagine di manuale in italiano sotto la directory `/usr/share/man/it/`.

## 5.10. I have a device that requires non-free firmware. What should I do?

Firmware refers to embedded software which controls electronic devices. Many devices require firmware to operate. Historically, firmware would be built into the device's ROM or Flash memory, but more and more often, a firmware image has to be loaded into the device RAM by a device driver during device initialisation.

Some devices require non-free firmware to work properly. And there could be firmware updates in the future.

In Debian release 11 (bullseye) and older, Debian did not include non-free firmware on official images and live installations. For Debian 12 onwards, all the packaged non-free firmware binaries that Debian can distribute have been moved to a new component in the Debian archive, called `non-free-firmware`. If you're upgrading from an older release of Debian and you need these firmware binaries, make sure that your sources.list uses this new component:

    http://deb.debian.org/debian trixie main non-free-firmware contrib non-free

For more information please refer to Firmware information in the Debian Wiki.

## 5.11. Ho una scheda di rete wirelesse che non funziona con Linux. Cosa fare?

Comprarne una che funzioni :)

In alternativa, usare `ndiswrapper` per usare un driver per Windows (se lo si ha) sul proprio sistema Linux. Si veda la pagina su ndiswapper nel Debian Wiki per maggiori informazioni.

Capitolo 4. Problemi di compatibilità |  | Capitolo 6. Gli archivi Debian