Gestione Applicazioni


In Linux i programmi sono distribuiti:

  • in formato binario già compilato con l'utilizzo dei pacchetti:
    • deb per le distribuzioni Debian e derivate
    • rpm per le distribuzioni Red Hat e derivate

  • in formato sorgente da compilare con l'utilizzo dei pacchetti tgz

  • attraverso l'esecuzione diretta di file binari con estensione .run .bin e i file script con estensione .sh


L'installazione di un programma può richiedere l'utilizzo di un solo pacchetto deb che racchiude al suo interno l'eseguibile, la documentazione e le librerie necessarie al suo funzionamento oppure di più pacchetti in gergo le dipendenze, nel caso in cui il pacchetto principale dipenda da altri pacchetti.

I pacchetti deb si differenziano per il tipo di architettura della CPU e la distribuzione appartenente: da ricordare che i pacchetti con lo stesso formato ma appartenenti a distribuzioni differenti non sono tra loro compatibili del tutto.

La gestione dei pacchetti nelle fasi di installazione, aggiornamento, rimozione ed altro è affidato a programmi chiamati Gestori di pacchetti o Package Manager.


Package Manager semplici

Il Package Manager più semplice è l'applicazione dpkg per il formato .deb - Debian e sue derivate

E' utilizzato per la gestione dei singoli pacchetti a riga di comando senza risolvere le dipendenze richieste.

Installazione del pacchetto:

# dpkg -i nome_pacchetto.deb

Disinstallazione pacchetto escluso i file di configurazione:

# dpkg -r nome_pacchetto.deb

Disinstallazione pacchetto incluso i file di configurazione:

# dpkg --purge nome_pacchetto.deb

Verifica se il pacchetto è installato:

# dpkg -l nome_pacchetto.deb

Visualizza tutti i pacchetti installati:

# dpkg -l

Package Manager evoluti

Ad assolvere la limitazione dei Package Manager semplici di non poter risolvere le dipendenze sono i Package Manager evoluti utilizzati a riga di comando come aptitude, apt-get e apt per Debian e derivate.

Essi si appoggiano ad archivi di pacchetti situati in Internet o in locale chiamati repository attraverso liste di pacchetti contenuti in un file in locale da aggiornare.

Per Debian e derivate aptitude, apt-get e apt utilizzano l'elenco e gli indirizzi dei repository a cui accedono dal file /etc/apt/sources.list:

# nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main

Ogni riga è cosi spiegata:

deb Il repository contiene pacchetti binari
deb-src Il repository contiene pacchetti sorgenti
file Il repository è sull'hard disk del PC
cdrom Il repository è sul cdrom del PC
http Il repository è su Internet con protocollo HTTP
ftp Il repository è su Internet con protocollo FTP
Distribuzione Nome della release della distribuzione installata sul PC
Componente

main: pacchetti che rispettano la DFSG

contrib: pacchetti che rispettano la DFSG ma che ha dipendenze non in main

non-free: pacchetti che non rispettano la DFSG


Quando si aggiunge o rimuove un repository è necessario aggiornare la lista dei pacchetti:

# apt update

apt, apt-get e aptitude sono delle applicazioni che permettono la gestione delle applicazioni all'interno del proprio PC.

apt apt-get aptitude Descrizione
apt install app apt-get install app aptitude install app Installazione applicazione
apt remove app apt-get remove app aptitude remove app Disinstallazione applicazione escluso i file di configurazione
apt purge app apt-get --purge remove app aptitude purge app Disinstallazione applicazione incluso i file di configurazione
apt update apt-get update aptitude update Aggiornamento del database delle applicazioni
apt upgrade apt-get upgrade aptitude safe-upgrade Aggiornamento delle applicazioni
apt full-upgrade apt-get dist-upgrade aptitude full-upgrade Aggiornamento ad una nuova release
apt search app apt-cache search app aptitude search app Ricerca applicazione contenente il nome dell'applicazione
apt show app apt-cache show app aptitude show app Ricerca specifica dell'applicazione

Installazione locale di una applicazione .deb:

# apt install ./app.deb

L'installazione di un programma può richiedere l'utilizzo di un solo pacchetto rpm che racchiude al suo interno l'eseguibile, la documentazione e le librerie necessarie al suo funzionamento oppure di più pacchetti in gergo le dipendenze, nel caso in cui il pacchetto principale dipenda da altri pacchetti.

I pacchetti rpm si differenziano per il tipo di architettura della CPU e la distribuzione appartenente: da ricordare che i pacchetti con lo stesso formato ma appartenenti a distribuzioni differenti non sono tra loro compatibili del tutto.

La gestione dei pacchetti nelle fasi di installazione, aggiornamento, rimozione ed altro è affidato a programmi chiamati Gestori di pacchetti o Package Manager.


Package Manager semplici

Il Package Manager più semplice è l'applicazione rpm per il formato .rpm - Red Hat e sue derivate

Sono utilizzati per la gestione dei singoli pacchetti a riga di comando senza risolvere le dipendenze richieste.

Installazione del pacchetto:

# rpm -ivh nome_pacchetto.rpm

Aggiornamento pacchetto:

# rpm -Uvh nome_pacchetto.rpm

Disinstallazione pacchetto:

# rpm -e nome_pacchetto.rpm

Visualizza tutti i pacchetti installati:

# rpm -qa

Verifica se il pacchetto è installato:

# rpm -V nome_pacchetto.rpm

Package Manager evoluti

Ad assolvere la limitazione dei Package Manager semplici di non poter risolvere le dipendenze sono i Package Manager evoluti utilizzati a riga di comando per Red Hat e derivate.

Essi si appoggiano ad archivi di pacchetti situati in Internet o in locale chiamati repository attraverso liste di pacchetti contenuti in un file in locale da aggiornare.

Installazione applicazione:

# dnf install app

Disinstallazione applicazione:

# dnf remove app

Aggiornamento applicazione:

# dnf update app

Aggiornamento delle applicazioni installate:

# dnf update

Verifica la disponibilità di aggiornamento delle applicazioni installate:

# dnf check-update

Installazione locale di una applicazione .rpm:

# dnf localinstall app.rpm

Oltre ai pacchetti rpm e deb con cui si distribuisce il software in formato binario già compilato ci sono i pacchetti tgz con cui si distribuisce il software in formato sorgente da compilare.

Le operazioni necessarie alla compilazione e quindi all'installazione dei programmi in formato sorgente sono:

1. aprire il terminale e installare i programmi necessari alla compilazione:

Debian - Ubuntu

# apt-get install linux-headers-$(uname -r)
# apt-get install build-essential

Fedora

# dnf install kernel-devel

OpenSuse

# zypper install kernel-source
# zypper install kernel-syms

2. scompattare il file:

# tar xvfz nome_programma.tar.gz
# tar xvfj nome_programma.tar.bz2

3. leggere i file README e INSTALL


4. come spiegato nei file README e INSTALL risolvere le dipendenze dovute ed eseguire i comandi come utente:

$ ./configure
$ make
# su
# password di root
# make install

I file con estensione .run o .bin (sono in formato binario non vanno compilati) e i file script con estensione .sh (sono file di testo editabili, inizianti con #!/bin/bash, contenenti una serie di comandi, interpretati dalla bash) possono essere eseguiti in due modi:

Con il permesso di esecuzione all'utente del file:

# chmod u+x file_script.sh
# chmod u+x nome_programma.bin

Esecuzione del file:

# ./file_script.sh
# ./file.bin

Oppure, direttamente, utilizzando il comando sh

# sh file_script.sh
# sh nome_programma.bin