Compilare un programma in Linux
In questo articolo descrivo l’esperienza di compilare un programma partendo dai sorgenti su Linux, in particolare su Ubuntu.
L’articolo ha due scopi:
- documentare i passaggi per la compilazione e installazione del player musicale Pragha,
- documentare più in generale la compilazione di un programma su Linux.
Pragha
Pragha è un player musicale per ambienti GTK+3 sviluppato in C. Il suo obiettivo è la leggerezza e la minimalità dell’interfaccia. L’applicazione è sviluppata e gestita dal suo creatore.
L’ho scoperta per puro caso mentre ero alla ricerca di un’alternativa più leggera a Rhythmbox. Utilizzo il player musicale solamente per ascoltare i file musicali presenti sul mio server DLNA casalingo. Pragha sembrava fare al caso mio grazie a un suo plugin ufficiale.
Ho già avuto problema con Rythmbox nel gestire musica proveniente da un server DLNA (maggiori dettagli qui) e trovare la soluzione è stata una lenta ricerca in rete, così ho pensato che un’alternativa più indipendente e non legata strettamente all’ambiente Gnome poteva fare più al caso mio.
Pragha è presente nei repository universe di Ubuntu 20.04 in una versione piuttosto aggiornata (la 1.3.4
, quindi la penultima a disposizione), ma purtroppo senza plugin.
Ho trovato un personal repository che metteva a disposizione l’ultima versione (la 1.3.99
), ma non ho potuto provarla in quanto il gestore non ha più aggiornato i pacchetti dopo Ubuntu 18.10.
Così, per provarla, non mi è restata che la strada di installare l’applicazione direttamente dai sorgenti.
Come procedere
I seguenti passi di installazione si riferiscono a Ubuntu 20.04.
ATTEZIONE: ho utilizzato per l’installazione l’archivio messo a disposizione per la distribuzione dei sorgenti, quindi con all’interno già presenti
lo script configure
e il Makefile
per la compilazione. Ho provato a partire dal sorgente presente sul master del repository e creare da me questi file necessari
con autoreconf
ma mi sono bloccatto nel processo per alcuni errori che non sono riuscito al momento a risolvere.
Installare i pacchetti di distribuzione che generalmente servono per compilare programmi su Ubuntu
sudo apt-get install build-essential intltool pkg-config
Scaricare la versione dei sorgenti disponibile dal repository Github del progetto.
wget https://github.com/pragha-music-player/pragha/releases/download/v1.3.99.1/pragha-1.3.99.1.tar.bz2
Scompattare l’archivio
tar xf pragha-1.3.99.1.tar.bz2
Installare alcune dipendenze necessarie per la compilazione del progetto
sudo apt-get install libgstreamer1.0-dev libgtk-3-dev libtagc0-dev libsqlite3-dev
Lanciare il comando ./configure
per controllare di avere soddisfare i requisiti necessari all’installazione.
Una schermata del risultato del momento:
Installare altre dipendenze opzionali (ma necessarie a raggiungere il mio obiettivo)
sudo apt-get install libpeas-dev # necessario per utilizzare i plugins
sudo apt-get install libgrilo-0.3-dev # necessario per client e server DLNA
sudo apt-get install libgstreamer-plugins-base1.0-dev # controllo del volume migliorato
Schermata dopo aver lanciato nuovamente ./configure
A questo punto lanciamo un’ultima volta il comando di configurazione con alcune opzioni utili.
Ho deciso di abilitare il debug con l’opzione --enable-debug
per vedere un po' di messaggi in più (visto che sono in fase di studio dell’applicazione)
e d' installare l’applicazione in una cartella specifica con --prefix=PATH_FOLDER
per facilitarne lo spostamento
il comando che ho utilizzato
./configure --enable-debug --prefix=/opt/pragha
Tempo di compilare ed installare applicazione
make
sudo make install
Proviamo ad eseguire l’applicazione
/opt/pragha/bin/pragha
Ecco l’applicazione in azione con la possibilità di leggere la musica da un server DLNA.