Repository 32bit  Forum
Repository 64bit  Wiki

Gestione dei pacchetti su Slackware GNU/Linux

Da Slacky.eu.
Versione delle 22:46, 8 set 2006, autore: 5m0k3r (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Indice

Gestione dei pacchetti su Slackware GNU/Linux

Come ben sapete la Slackware possiede un sistema di pacchettizzazione tutto suo: i .tgz. A differenza di molti altri sistemi di pacchettizazzione (ed esempio .deb, .rpm, etc...) i .tgz non possiedono alcuno script di controllo delle dipendenze e, se questo da un lato ci obbliga a prestare più attenzione quando installiamo qualcosa, dall'altro ci offre una flessibilità che le altre distribuzioni GNU/Linux non possiedono.
I pacchetti .tgz vengono creati tramite gli SlackBuild. Gli SlackBuild sono degli script bash i quali, tramite i sorgenti, e tramite una combinazione di vari tar,gzip e altri programmi ci restituiscono il pacchetto bello e pronto per essere installato.

Nomenclatura dei pacchetti .tgz

La nomenclatura di un pacchetto prevede tale struttura:

<nome-software>-<versione-software>-<architettura>-<build>.tgz

Ma vediamo di fare un esempio concreto. Prendiamo ad esempio un pacchetto a caso dal repository di Slacky.it :

inkscape-0.44.1-i486-1sl.tgz

Analizziamolo in ogni sua parte.

  • La prima parte ci dice il nome del software (inkscape)
  • La seconda parte ci dice qual'è la versione del software (0.44.1)
  • La terza parte ci dice per quale architettura è stato compilato questo software (i486)
  • La quarta ed ultima parte ci dice chi ha scritto lo SlackBuild con cui è stato compilato tale pacchetto. (1sl equivale a Loris)

Dove reperire i pacchetti

I pacchetti possono essere trovati nei repository. I repository non sono altro che dei veri e propri depositi di pacchetti. Voi entrate nel repository e prendete ciò che vi serve. Potete anche contribuire e scrivere gli SlackBuild per i pacchetti facendo un piacere a tutti quelli a cui serviva un determinato pacchetto ma non sapevano come scrivere lo SlackBuild. Due fra i repository di .tgz più famosi della rete sono:
http://www.slacky.it
http://www.linuxpackages.net/

Perchè i pacchetti?

Ma qual'è il motivo principale dell'esistenza dei pacchetti? La risposta è molto semplice, per una facile installazione, un facile aggiornamento, e una facile disinstallazione mantenendo il sistema pulito e scattante.
Per installare/disinstallare/aggiornare un pacchetto occorrono diritti di root quindi ogni volta che vi dirò come installare/disinstallare/aggiornare un pacchetto è sottinteso che voi siate root. Per diventare utenti root seguite questa procedura:

#su -
[inserite la password di root]

Installare un pacchetto

Per installare un pacchetto si utilizza il comando:

installpkg [opzioni] <nome-pacchetto>.tgz

Questo comando installerà il pacchetto che gli passeremo come argomento. Ad esempio se volessimo installare il pacchetto che abbiamo analizzato in precedenza (inkscape) allora il comando da lanciare (da root) è il seguente:

#installpkg inkscape-0.44.1-i486-1sl.tgz

Nel caso in cui volessimo visualizzare lo "storico" dei pacchetti installati allora basterà lanciare il comando:

#less /var/log/packages
  • Opzioni per installpkg
    • -m Esegue un makepkg (utility per la creazione di pacchetti) nella directory corrente
    • -r Installa ricorsivamente tutti i pacchetti presenti all'interno della directory corrente e nelle sue sotto-directory
    • -warn Visualizza i cambiamenti che subirà il sistema nel caso in cui si decida di installare il pacchetto specificato

Rimuovere un pacchetto

Nel caso in cui vogliate disinstallare un programma avrete l'esigenza di rimuovere il pacchetto corrispondente. Il comando per rimuovere i pacchetti fuziona in modo del tutto simile al comando per installare i pacchetti. Il comando in questione è:

removepkg [opzioni] <nome-pacchetto>.tgz

Se volessimo disinstallare il pacchetto precedentemente installato (inkscape) allora il comando da lanciare sarebbe:

#removepkg inkscape-0.44.1-i486-1sl.tgz

Nel caso in cui volessimo visualizzare lo "storico" delle rimozioni dei pacchetti allora basterà lanciare il comando:

#less /var/log/removed_packages
  • Opzioni per removepkg
    • -copy Con questa opzione il pacchetto non viene rimosso ma viene copiato nella directory /var/log/setup/tmp/preserved_packages
    • -keep Tiene traccia dei file temporanei durante la procedura di rimozione (viene utilizzato soprattutto per scopi di debugging)
    • -preserve Il pacchetto viene rimosso ma prima ne viene fatta una copia di sicurezza nella directory /var/log/setup/tmp/preserved_packages
    • -warn Visualizza eventuali problemi che potrebbero insorgere a causa della rimozione del pacchetto

Aggiornare un pacchetto

Avete una versione nuova di un pacchetto e volete aggiornare quella vecchia? Facile!! ;) Il comando è del tutto simile ai precedenti:

upgradepkg <nome-pacchetto>.tgz

Ad esempio se ci fosse una versione nuova del pacchetto chiamata:

inkscape-0.44.2-i486-1sl.tgz

e volete aggiornare quella vecchia, il comando da lanciare è:

#upgradepkg inkscape-0.44.2-i486-1sl.tgz
  • Opzioni per upgradepkg
    • --install-new Controlla che il pacchetto esista prima di aggiornare, se non esiste allora installa anzichè aggiornare

Pkgtool

Questi comandi per gestire i pacchetti sono una bella comodità, che diventa ancora più bella quando ci viene offerta una pseudo-gui in ncurses che ci permette di installare, rimuovere, aggiornare, visualizzare la lista dei pacchetti installati mediante le freccette, barra spaziatrice e invio. L'interfaccia del pkgtool è fatta così:

Interfaccia del pkgtool

Per lanciare pkgtool basta lanciare questo comando:

#pkgtool

e l'interfaccia appena mostrata apparirà. Ecco una descrizione delle opzioni che pkgtool offre:

  • Current Viene utilizzato per installare i pacchetti all'interno della directory corrente. Se i pacchetti presenti all'interno della directory corrente sono più di uno verrà richiesta conferma per ognuno di essi
  • Other Viene utilizzato per installare pacchetti che risiedono all'interno di una directory diversa da quella corrente e anche in questo caso in più di un pacchetto verrà chiesta conferma per ogni pacchetto
  • Floppy Serve per installare pacchetti che si trovano sul floppy
  • Remove Viene utilizzato per la rimozione di uno o più pacchetti sul sistema. Verrà interrogato il database dei pacchetti e verrà presentata la lista dei pacchetti che sarà possibile eliminare. L'utente sceglierà uno o più pacchetti con la BARRA SPAZIATRICE e confermerà l'eliminazione con INVIO
  • View Mostra la lista dei pacchetti installati con la relativa descrizione
  • Setup Grazie a questo setup sarà possibile accedere alla configurazione della Slackware.
    • install-kernel Serve per l'installazione di un kernel da floppy
    • make-bootdisk Consente di creare un disco di avvio per il sistema
    • modem-device Consente di scegliere su quale porta impostare il modem
    • hotplug Consente di attivare o disattivare il supporto ad hotplug
    • mouse Consente di configurare il mouse
    • netconfig Consente di configurare la rete
    • services Consente di selezionare quale servizi avviare all'avvio del sistema
    • setconsolefont Consente di selezionare il tipo di carattere da utilizzare per la shell
    • timeconfig Consente la configurazione del fuso orario
    • xwmconfig Consente di selezionare il desktop environment di default
  • Exit

Convertire un pacchetto .rpm in un .tgz

Slackware mette a disposizione un tool con cui è possibile convertire un pacchetto .rpm in un pacchetto .tgz : rpm2tgz. Questo tool è veramente facile da utilizzare, si utilizza in questo modo:

rpm2tgz <nome-pacchetto>.rpm

A differenza degli altri comandi questo non richiede privilegi di root in quanto non installerà nulla, bensì si limiterà alla conversione del pacchetto.

Strumenti personali
Namespace

Varianti