Compilare un programma in Linux

Pubblicato il 07/10/2021

In questo articolo descrivo l’esperienza di compilare un programma partendo dai sorgenti su Linux, in particolare su Ubuntu.

L’articolo ha due scopi:

  1. documentare i passaggi per la compilazione e installazione del player musicale Pragha,
  2. 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:

Screen pragha 1

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

Screen pragha 2

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.

Screen pragha 3

  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT