Home > GNU/Linux, newbie > Guida per principianti a GNU/Linux: capire APT e vivere felici

Guida per principianti a GNU/Linux: capire APT e vivere felici

In principio esistevano i .tar.gz. Gli utenti dovevano compilare ogni programma che volevano usare sui loro sistemi GNU/Linux. Quando fu creata Debian, fu ritenuto necessario che il sistema incorporasse un metodo di gestione dei pacchetti installati sulla macchina. A questo sistema fu dato il nome dpkg. Fu così che nacque il famoso “pacchetto” nel mondo GNU/Linux, poco prima che Red Hat decidesse di creare il proprio “rpm”.

Rapidamente un nuovo dilemma si fece strada nelle menti degli sviluppatori di GNU/Linux. A loro serviva un modo rapido, pratico ed efficiente per installare i programmi, che gestisse automaticamente le dipendenze e che avesse cura di mantenere i file di configurazione esistenti mentre si effettuavano i vari aggiornamenti. Ancora una volta Debian ha aperto la strada dando vita a APT (Advanced Packaging Tool).

Così recita l’introduzione di APT-HOWTO il manuale di Debian per APT, ovvero il sistema di gestione dei pacchetti di Debian e derivate, compresa Ubuntu.

Se mi chiedessero di dire in cosa GNU/Linux è superiore (tecnicamente parlando) a Windows, potrei fare un lungo elenco: sicurezza, stabilità, velocità, ecc. Ma se mi domandassero in cosa GNU/Linux è più facile di Windows, non avrei dubbi: nell’installazione dei programmi.

Quando studiavo informatica alle scuole superiori, anche se erano i primi anni ’90, il libro di testo risaliva agli anni ’70. Ricordo che la definizione di sistema operativo, allora, comprendeva anche un compilatore. Eppure io usavo MS DOS e non c’era alcun compilatore (solo uno striminzito interprete BASIC), usavo Windows 3.1 e anche lì niente compilatore di default. I compilatori li faceva, all’epoca, la Borland: Turbo Pascal, Turbo C, ecc. La Microsoft avrebbe poi creato da lì a poco il Visual Basic, ma si vendeva a parte.

In effetti negli anni ’70 tutto il software era libero e gli utenti compilavano i programmi per conto proprio. Per questo un compilatore era indispensabile. Quando il software libero è tornato in auge grazie a GNU/Linux, si è posto lo stesso problema: come rendere più facile l’installazione dei programmi? E così, dall’installazione per semi-hacker si è passati ad un sistema talmente semplice da far spavento. Eppure tanti neo-utenti GNU/Linux non l’apprezzano e credono che sia complicato installare i programmi… questo solo perché il modo di farlo è diverso, molto diverso, ma più efficiente, veloce e facile.

Bando alle ciance e arriviamo al punto. Come funziona?

In primo luogo bisogna mettersi in testa il concetto di repository. I repository sono dei normalissimi siti web strutturati in un modo preciso, definito dallo standard di APT. In sostanza, essi contengono i programmi già compilati da parte dei manutentori delle distribuzioni. Oltre ai programmi possono contenere anche set di icone, temi, librerie, pagine di manuale, testi e qualsiasi cosa che possa servire agli utenti.

Non c’è quindi bisogno di cercare su Internet il sito del programma, scaricarlo, installarlo. Basta controllare se c’è nei repository. Se il programma non è proprio sconosciuto e se la distribuzione in uso è abbastanza diffusa, quasi sicuramente il programma c’è già. Se non c’è, vedremo come “arrangiarci”.

Per accedere ai repository potremmo in effetti scaricare i vari pacchetti e poi installarli singolarmente. Ma per come è fatto GNU/Linux, la cosa potrebbe essere impegnativa. Ogni pacchetto contiene solo lo stretto indispensabile, mentre tutte le librerie necessarie al funzionamento del programma sono solitamente esterne. Differentemente dal mondo del software proprietario, infatti, i programmi possono tranquillamente utilizzare le librerie pensate per altri programmi. In effetti creare un programma open source vuol dire in ultima analisi saper usare al meglio l’enorme quantità di librerie già esistenti.

Potremmo quindi trovarci di fronte alla spiacevole situazione di dover scaricare anche i pacchetti necessari al nostro programma (le cosiddette dipendenze) i quali a loro volta potrebbero necessitare di altri pacchetti, e così via.

Debian risolve brillantemente il tutto tramite APT. Esso è composto da una serie di programmi che ci permettono di automatizzare il tutto. Il più noto di essi è apt-get.

Dato il comando

apt-get install amule

il sistema scorrerà l’indice dei pacchetti alla ricerca di quella che si chiama “amule”. Una volta trovato, scaricherà il pacchetto .deb corrispondente, controllerà se necessita di altri pacchetti (le dipendenze) ed eventualmente scaricherà anche quelle, se non sono già presenti nel sistema. Una volta finiti i download, passerà i vari pacchetti al programma dpkg, che li installerà. Il tutto avviene in pochi minuti e di norma non richiede intervento da parte dell’utente.

Ma APT fa di più. I manutentori dei pacchetti, ogni tanto, li aggiornano. Vuoi perché è necessario apportare una correzione, vuoi perché è uscita la nuova versione del programma. APT permette di centralizzare tutti gli aggiornamenti. Una comodità che Windows non potrà mai avere, poiché nel software proprietario l’aggiornamento si paga e, soprattutto, di norma non è legale distribuire software altrui. Insomma abbiamo un sistema di aggiornamenti di tutto ciò che abbiamo sul computer, automatizzato. Non solo il sistema operativo, ma tutti i programmi installati con APT. Bello no?

Ma c’è ancora di più. Una distribuzione, in fondo, è solo una collezione di pacchetti. Il kernel, il software GNU, eventualmente Xorg, Gnome, Kde, ecc. E allora l’aggiornamento del sistema ad una nuova versione non è altro che l’aggiornamento dei pacchetti e ci pensa sempre APT. Il sistema funziona talmente bene che alcune distribuzioni sono in aggiornamento continuo, ovvero non hanno versioni, ma i pacchetti si aggiornano appena disponibili. Ad esempio Debian Sid si installa una volta e rimane sempre aggiornata per tutta la vita…

Capito questo, alcuni suggerimenti pratici per chi usa Ubuntu:

a) leggetevi questa guida: https://guiodic.wordpress.com/2008/07/23/usare-ubuntu-senza-terminale-installare-i-programmi/

b) attenetevi a queste regole pratiche per installare i programmi:

  1. Attivate tutti i repository della prima scheda su Sistema/Amministrazione/Sorgenti software
  2. Prima di tutto cercate il nome del programma su Synaptic (o Adept se usate KDE). Se lo trovate, installatelo da lì. Controllate anche se ci sono dei pacchetti suggeriti, ma prima di installarli leggete la loro descrizione.
  3. Se non lo trovate, provate su getdeb.net, il portale con vari programmi utili già pacchettizzati. Una volta scaricati i pacchetti basta cliccarci sopra due volte.
  4. Se non c’è neppure su getdeb.net, provate a cercare su Google le parole repository, ubuntu, nome del programma. Se trovate un repository, accertatevi che sia per la versione di Ubuntu che usate, dopodiché aggiungetelo tramite Sorgenti software (scheda “software di terze parti”). Per ubuntu esistono molti repository su launchpad, i cosiddetti PPA. Questo è il motore di ricerca per i PPA
  5. Se non trovate un repository, provate a cercare su google: deb package ubuntu nome del programma è possibile che qualcuno abbia già pacchettizzato il programma che cercate magari sul proprio blog.
  6. Se anche questo tentativo fallisce, provate con i pacchetti per Debian Sid: http://packages.debian.org ATTENZIONE: se Gdebi vi dà errore, meglio desistere.
  7. Se neppure Debian ha il pacchetto che vi serve, allora visitate il sito del programma. Cercate se esiste un repository per Ubuntu e/o Debian mantenuto da loro, oppure, un pacchetto deb
  8. Solo se tutti questi tentativi falliscono, allora rassegnatevi a compilare il programma per conto vostro.

Devo dire che, nella pratica, capita abbastanza raramente di arrivare al punto 8.

Serve aiuto? LQH!

  1. Trinità
    5 agosto 2008 alle 10:52

    Semplice e chiaro,complimenti.
    Stai facendo un gran bel lavoro su questo blog,e il tutto è comprensibile anche da chi è a digiuno di informatica.

    Bravo ;D

    "Mi piace"

  2. danilo
    5 agosto 2008 alle 12:34

    Ciao… è un po che segue le tue guide e devo dire che sono semplici e intuitive.
    Sarebbe bello che tu creassi dei pdf per ogni lezione o addirittura, cosa ancora migliore, un unico file pdf che raggruppa tutte le lezioni e ogni volta che scrivi una nuova guida la aggiungi al pdf e lo rimetti in download avvisando gli utenti con un semplicissimo post!!!
    Spero che la mia idea possa piacere a tutti… almeno a me farebbe molto comodo!!! 😀
    Ciao

    "Mi piace"

  3. guiodic
    5 agosto 2008 alle 12:39

    @danilo: è un ottima idea, e in effetti qualcuno lo ha già fatto per i post sui virus:

    http://www.uielinux.org/downloads/doc_download/30-le-infezioni-e-gnulinux.html

    Penso che chiederò a uielinux di fare altrettanto con il ciclo “guida per principianti”.

    "Mi piace"

  4. danilo
    5 agosto 2008 alle 12:45

    Sono contento che la cosa sia di gradimento!!

    La guida che hai segnalato la conosco e devo dire che anche quella è fatta bene!!

    Spero di vedere molto presto la guida per principianti in pdf!!!

    "Mi piace"

  5. 5 agosto 2008 alle 12:56

    Ottima spiegazione come sempre! Sconoscevo tutti i punti dal 3 in poi 😉

    "Mi piace"

  6. 78sara78
    5 agosto 2008 alle 13:15

    guiodic scrive:

    Se non c’è neppure su getdeb.net, provate a cercare su Google le parole repository, ubuntu, nome del programma. Se trovate un repository, accertatevi che sia per la versione di Ubuntu che usate, dopodiché aggiungetelo tramite Sorgenti software (scheda “software di terze parti”).

    Non si dovrebbe fare attenzione con i repository di terze parti?
    Come facciamo ad essere sicuri dell’affidabilità di questi repo?

    "Mi piace"

  7. guiodic
    5 agosto 2008 alle 13:31

    @sara: con l’intuito 🙂
    Ad esempio io mi fido dei repository su ppa di ubuntu, così come di quelli di bloggers molto bravi come Trevino.
    Mi fido anche di pollycoke, ma un po’ meno perché non è che sia una cima tecnicamente parlando 😉

    "Mi piace"

  8. DrTux
    5 agosto 2008 alle 14:57

    Mi aggiungo anche io nel farti i complimenti per l’articolo, ben fatto molto facile da leggere e da capire.

    P.S. Per chi chiedeva dei PDF vi segnalo un’estensione per firefox che potrebbe esservi utile. Si chiama PDF Download tra le altre cose permette anche di salvare le pagine web in formato PDF.

    "Mi piace"

  9. Xiao Hu
    5 agosto 2008 alle 16:54

    L’articolo è molto bello anche per la parte storica.
    Vorrei anche esporti un problema riguardo agli altri pacchetti che sono installati (forse dovrei dire da cui dipende) un pacchetto selezionato.
    Sarebbe bello che tali pacchetti fossero automaticamente disinstallati quando si disinstalla il pacchetto con il quale sono stati installati.
    In altri termini sarebbe utile disinstallare il disinstallabile automaticamente controllando che i pacchetti non siano usati da altri ma questo dovrebbe essere dedotto dall’albero delle dipendenze.
    Mi chiedo come mai non è stata implementata questa possibilità

    "Mi piace"

  10. guiodic
    5 agosto 2008 alle 17:15

    @xiao: è stata implementata. Puoi dare

    sudo apt-get remove nomepacchetto --auto-remove

    oppure

    sudo aptitude remove nomepacchetto

    e farà esattamente come chiedi 😉

    "Mi piace"

  11. Xiao Hu
    5 agosto 2008 alle 17:25

    Grazie, ci proverò.

    "Mi piace"

  12. anon
    5 agosto 2008 alle 18:24

    @ Xiao Hu
    per rimuovere i pacchetti orfani che hai in giro per il sistema puoi usare
    apt-get autoremove
    da root ovviamente (o comando equivalente con aptitude che non ricordo).
    C’è anche una specifica voce di synaptic dove essi vengono elencati.

    Ocio comunque ad usare repository non ufficiali e/o deb vari, potrebbero essere pericolosi!

    Piccola nota: c’è un’atra via che non è stata citata, alcune volte (troppo poche) alcuni programmi son distribuiti anche con un installer particolare (tipo klik, autopackage, zeroinstall…) che installa il software nella propria home directory senza bisogno di permessi di root e indipendentemente dalla distro (vedi amsn con autopackage).

    Arch rulez 😛 con la mia distro non ho bisogno di tutto questo 😛

    "Mi piace"

  13. guiodic
    5 agosto 2008 alle 18:55

    @anon: Dio ci liberi da autopackage e similari…

    "Mi piace"

  14. anon
    5 agosto 2008 alle 21:46

    Beh, se sei in qualche laboratorio informatico e hai bisogno di qualche programma, autopackage e similare possono essere utili 🙂
    E comunque beccati questo http://www.linuxfoundation.org/en/Burgdorf_Packaging_API
    Presto (si spera) non avremo più tempo di “autopackage e similari” 😉

    "Mi piace"

  15. anon
    5 agosto 2008 alle 21:47

    Ehm volevo dire “non avremo più bisogno di…”

    -_-‘

    "Mi piace"

  16. guiodic
    5 agosto 2008 alle 23:02

    Vedremo… per ora s’è mosso ancora molto poco.

    "Mi piace"

  17. sid9477
    9 agosto 2008 alle 19:41

    perchè non abbiamo un solo tipo di pacchetti? tipo i deb? ma abbiamo anche gli rpm, i tgz ecc?

    "Mi piace"

  18. guiodic
    9 agosto 2008 alle 20:22

    Perché ogni distribuzione usa quello che ritiene il migliore, o comunque quello usato dalla distribuzione “madre”.
    Non è un gran problema, nella maggior parte dei casi è facile convertire un rpm in deb.

    "Mi piace"

  19. Alberto
    22 agosto 2008 alle 12:09

    Io sono daccordo con te.
    Ho scoperto Ubuntu da mio cugino, che voleva installarlo sul suo portatile.
    Il giorno dopo sono andato a casa sua per vedere com’era, e quando gli ho detto che volevo installarlo lui ha detto:”ma guarda che è difficile ubuntu, soprattutto nell’installazione dei programmi”.
    Io non gli ho dato retta e l’ho installato.
    Quando il giorno dopo ho controllato gli aggiornamenti e ne ho visti tanti mi sono detto “oddio dovrò compilarli tutti come mi ha detto mio cugino” invece apro il gestore aggiornamenti, clicco su installa e mi fa tutto da solo.
    Una cosa così Windows se la sogna.

    "Mi piace"

  20. silvia
    5 novembre 2008 alle 15:34

    Grazie,grazie,grazie..
    Mi stavo impicciando a scaricare uno per volta tutte quelle librerie per installare i programmi e invece bastava cercarlo con synaptic..
    Continua così con le tue guide..

    "Mi piace"

  21. gianna
    6 dicembre 2009 alle 23:05

    Mi sono sempre chiesto se quando si installa un pacchetto tipo progfigo 1.1 con un pacchetto deb, senza repository, quando esce una versione successiva esempio progfigo 1.2 sempre su pacchetto deb, bisogna disinstallare la versione precedente prima di procedere all’installazione oppure no?

    ciao!

    "Mi piace"

  22. 7 giugno 2013 alle 7:36

    Wonderful web site. Plenty of useful information here. I am sending it to some friends ans additionally sharing in delicious.

    And of course, thanks on your sweat!

    "Mi piace"

  23. 18 novembre 2013 alle 1:34

    Every weekend i used to pay a visit this web site, because i want
    enjoyment, for the reason thjat this this web page
    conations truly fastidious funny data too.

    "Mi piace"

  24. 2 gennaio 2014 alle 10:50

    Woah! I’m really loving the template/theme of this blog.
    It’s simple, yet effective. A lot of times it’s challenging to
    get that “perfect balance” between usability and appearance.

    I must say you’ve done a very good job with this.
    In addition, the blog loads very fast for me on Internet explorer.
    Superb Blog!

    "Mi piace"

  25. 4 marzo 2014 alle 20:57

    Way cool! Some extremely vlid points! I appreciate yyou penniing
    thks article annd the rest oof the webszite is really good.

    "Mi piace"

  1. 6 dicembre 2009 alle 8:08

Lascia un commento