Differenze tra le versioni di "Compilare Gambas"

Da Gambas-it.org - Wikipedia.
 
(10 versioni intermedie di un altro utente non mostrate)
Riga 2: Riga 2:
 
== I Repository ==
 
== I Repository ==
  
Per chi viene da altri sistemi operativi l’installazione di un programma in Linux può apparire poco chiara.
+
Per chi viene da altri sistemi operativi l’installazione di un programma in Linux può apparire poco chiara.<br>
Ormai, visto che tutti abbiamo uno smartphone, l’idea di uno Store, cioè di un luogo virtuale da cui scaricare un’applicazione che ci serve, non è più una novità e infatti il sistema è stato copiato da Linux e dai suoi Repository.
+
Ormai, visto che tutti abbiamo uno smartphone, l’idea di uno ''Store'', cioè di un luogo virtuale da cui scaricare un’applicazione che ci serve, non è più una novità e infatti il sistema è stato copiato da Linux e dai suoi '''Repository'''.<br>
Se in Linux serve un dato programma basta sceglierlo nel repository, fra le tante applicazioni del genere disponibili liberamente, installarlo e siete subito operativi.
+
Se in Linux serve un dato programma basta sceglierlo nel repository, fra le tante applicazioni del genere disponibili liberamente, installarlo e siamo subito operativi.
  
Purtroppo date le tante distribuzioni che arricchiscono Linux, non sempre i programmi ivi presenti sono all’ultima versione, questo accade per i programmi più diffusi figurarsi per quelli di nicchia come Gambas.
+
Purtroppo date le tante distribuzioni che arricchiscono Linux, non sempre i programmi ivi presenti sono all’ultima versione, questo accade per i programmi più diffusi figurarsi per quelli di nicchia come ''Gambas''.
  
Quindi se si vuole l’ultima versione di Gambas, Stable oppure Master quella fresca di giornata con tutti gli ultimi fix, non vi rimane altra scelta che compilare.
+
Quindi se si vuole l’ultima versione di ''Gambas'', ''Stable'' oppure ''Master'' quella fresca di giornata con tutti gli ultimi ''fix'', non rimane altra scelta che compilare.
  
Invero per chi usa Ubuntu o una sua derivata tipo Mint esistono dei repository speciali chiamati PPA, quello di Gambas è curato direttamente da Benoit Minisini ideatore di Gambas.
+
Invero per chi usa Ubuntu o una sua derivata tipo Mint esistono dei repository speciali chiamati '''PPA''', quello di Gambas è curato direttamente da ''Benoit Minisini'' ideatore di ''Gambas''.<br>
Normalmente 24 ore dopo l’uscita, la nuova versione è disponibile.
+
Normalmente 24 ore dopo l’uscita, la nuova versione è disponibile.<br>
A questo link trovate i comandi per il terminale:
+
A questo link troviamo i comandi per il terminale:<br>
 
https://gambaswiki.org/wiki/install/ubuntu#t1
 
https://gambaswiki.org/wiki/install/ubuntu#t1
  
Riga 18: Riga 18:
 
== Cosa significa compilare ==
 
== Cosa significa compilare ==
  
Compilare è una semplicissima operazione che permette di trasformare un file di codice sorgente in un file binario eseguibile dalla nostra distribuzione.
+
Compilare è una <u>semplicissima operazione</u> che permette di trasformare un file di codice sorgente in un file binario eseguibile dalla nostra distribuzione.
  
L’operazione consiste nell’inviare al compilatore gcc attraverso il terminale alcuni comandi che eseguono degli script di shell e delle macro che automatizzano il tutto.
+
L’operazione consiste nell’inviare al compilatore ''gcc'' attraverso il terminale alcuni comandi che eseguono degli ''script'' di shell e delle ''macro'' che automatizzano il tutto.<br>
Per prima cosa vengono eseguiti gli script che predispongono il codice per la nostra distribuzione quindi le funzioni (macro) che creano e installano l’eseguibile.
+
Per prima cosa vengono eseguiti gli ''script'' che predispongono il codice per la nostra distribuzione quindi le funzioni (''macro'') che creano e installano l’eseguibile.
  
Compilare un programma in Linux consiste in pratica nel dare tre comandi da terminale (configure [script], make e make install [funzioni]), quale è dunque il motivo che spaventa i più?
+
Compilare un programma in GNU/Linux consiste in pratica nel dare tre comandi da terminale (''configure'' [script], ''make'' e ''make install'' [funzioni]), quale è dunque il motivo che spaventa i più?
  
Credo che quello principale sia che Windows ci ha abituato a fare tutto attraverso le finestre e pertanto scrivere comandi in un terminale ci appare una cosa aliena, però se abbiamo velleità di programmazione la cosa risulta risibile, visto che programmare altro non è che scrivere comandi, i nostri comandi.
+
Credo che quello principale sia che ''Windows'' ci ha abituato a fare tutto attraverso le finestre e pertanto scrivere comandi in un terminale ci appare una cosa aliena, però se abbiamo velleità di programmazione la cosa risulta risibile, visto che programmare altro non è che scrivere comandi, i nostri comandi.
  
Gambas, come tutte le applicazioni open source viene rilasciato sotto forma di codice sorgente [[1]] ed è attualmente presente su GitLab a questo indirizzo:
+
''Gambas'', come tutte le applicazioni ''open source'' viene rilasciato sotto forma di codice sorgente <SUP>&#091;[[#Note|Nota 1]]&#093;</sup> ed è attualmente presente su ''GitLab'' a questo indirizzo:<br>
 
https://gitlab.com/gambas/gambas
 
https://gitlab.com/gambas/gambas
  
GitLab si apre sulla versione Master (in corso di sviluppo), ma agendo sul pulsante menu è possibile scegliere la versione stabile (Stable).
+
''GitLab'' si apre sulla versione ''Master'' (quella in corso di sviluppo), ma agendo sul pulsante menu è possibile scegliere la versione stabile (''Stable'').<br>
Quindi il suo codice può essere scaricato da li, anche graficamente, come file compresso: Tarball (con estensione .tar.gz, .tar.bz2 o .tar) oppure Zip (.zip).
+
Quindi il suo codice può essere scaricato da li, anche graficamente, come file compresso: ''Tarball'' (con estensione .tar.gz, .tar.bz2 o .tar) oppure ''Zip'' (.zip).
  
Dopo aver scaricato il file nella cartella desiderata, tipicamente la home, si può decomprimerlo usando il tasto destro del mouse e l’apposita voce di menu, ma visto che comunque per compilare dai sorgenti si dovrà fare uso del terminale e più avanti verrà descritta l’intera operazione di scaricamento da GitLab, scaricare il file in questo modo appare inutile, a meno che stiate cercando una versione precedente l’attuale.
+
Dopo aver scaricato il file nella cartella desiderata, tipicamente la nostra ''home'', si può decomprimerlo usando il tasto destro del mouse e l’apposita voce di menu, ma visto che comunque per compilare dai sorgenti si dovrà fare uso del terminale e più avanti verrà descritta l’intera operazione di scaricamento da ''GitLab'', scaricare il file in questo modo appare inutile, a meno che si stia cercando una versione precedente l’attuale.<br>
Quindi è comunque bene sapere che anche da GitLab sotto la voce Comit si può scaricare in forma compressa qualunque Gambas precedente sia stabile che di sviluppo.
+
Quindi è comunque bene sapere che anche da ''GitLab'' sotto la voce ''Comit'' si può scaricare in forma compressa qualunque ''Gambas precedente'' sia stabile che di sviluppo.
  
 
== Le librerie dinamiche ==
 
== Le librerie dinamiche ==
  
Tutto troppo facile, vero?
+
Tutto troppo facile, vero?<br>
Uno potrebbe immaginare che vengano celate delle difficoltà !
+
Uno potrebbe immaginare che vengano celate delle difficoltà !<br>
E infatti, la difficoltà del caso si chiama Libreria.
+
E infatti, la difficoltà del caso si chiama '''Libreria'''.<br>
Un programma per funzionare ha bisogno che nel sistema siano installate determinate librerie, esattamente quelle nella giusta versione.
+
Un programma per funzionare ha bisogno che nel sistema siano installate determinate librerie, esattamente quelle della giusta versione.<br>
Pertanto installare un programma è semplice, trovare le librerie di cui necessita per quella determinata distribuzione lo è un po’ meno e non perché sia difficile installarle ma perché è difficile capire come è stata nominata quella specifica libreria dalla distribuzione in nostro uso.
+
Pertanto installare un programma è semplice, trovare le librerie di cui si necessita per la distribuzione in nostro uso lo è un po’ meno e non perché sia difficile installarle ma perché è difficile capire come è stata nominata quella specifica libreria.<br>
Gambas oltre che un programma è anche un linguaggio di programmazione e va da se che si basi su moltissime librerie.
+
''Gambas'' oltre che un programma è anche un linguaggio di programmazione e va da se che si basi su moltissime librerie.
  
 
== Niente panico ==
 
== Niente panico ==
  
La stragrande maggioranza delle distribuzioni deriva da poche altre distribuzioni, per le più importanti le librerie utili a Gambas sono elencate nel file di configurazione YAML a questo indirizzo:
+
La stragrande maggioranza delle distribuzioni deriva da poche altre distribuzioni, per le più importanti le librerie utili a ''Gambas'' sono elencate nel file di configurazione YAML a questo indirizzo:<br>
 
https://gitlab.com/gambas/gambas/-/blob/master/.gitlab-ci.yml
 
https://gitlab.com/gambas/gambas/-/blob/master/.gitlab-ci.yml
  
   '''Nota''': il tipo di desktop in uso non è importante per compilare, quello che conta riguardo alle librerie da scaricare è la distribuzione che è il modo in uso a GNU/Linux di chiamare il sistema operativo.
+
   '''Nota''': il tipo di desktop in uso non è importante per la compilazione, quello che conta riguardo alle librerie da scaricare è la '''distribuzione''' che è il modo in uso a GNU/Linux di chiamare il sistema operativo.
  
  
 
== I passaggi per compilare Gambas ==
 
== I passaggi per compilare Gambas ==
  
   '''Nota''': la compilazione va fatta su una distribuzione pulita, vale a dire che Gambas non può essere già presente anche se scaricato dai repository. Se è già presente, prima di poter compilare Gambas occorre rimuoverlo completamente.
+
<br>
 +
   '''Nota''': la compilazione va fatta su una distribuzione pulita, vale a dire che ''Gambas'' non può essere già presente anche se scaricato dai repository.<br>Se è già presente, prima di poter compilare ''Gambas'' occorre <u>rimuoverlo completamente</u>.
  
Qui come esempio useremo una distribuzione basata su Arch Linux, tipo Manjaro, Endeavour oltre che naturalmente a Arch stesso.
+
Qui come esempio useremo una distribuzione basata su ''Arch Linux'', tipo ''Manjaro'', ''Endeavour'' oltre che naturalmente a ''Arch'' stesso.<br>
Attualmente Benoit Minisini utilizza Manjaro con KDE.
+
Attualmente ''Benoit Minisini'' utilizza ''Manjaro'' con ''KDE''.
  
Quanto qui descritto si può adattare a qualunque altra distribuzione ed è indirizzato a programmatori dilettanti come lo scrivente, se siete dei professionisti il consiglio è di dare un’occhiata comunque.
+
''Quanto qui descritto si può adattare a qualunque altra distribuzione ed è indirizzato a programmatori dilettanti come lo scrivente, se siete dei professionisti il consiglio è di dare un’occhiata comunque''.<br>
 
Quello che segue servirà a preparare la giusta lista dei comandi che poi daremo da terminale usando il copia e incolla.
 
Quello che segue servirà a preparare la giusta lista dei comandi che poi daremo da terminale usando il copia e incolla.
  
#1. Copiamo il codice yaml su cui è basata la nostra distribuzione.  
+
* Copiamo il codice ''yaml'' su cui è basata la nostra distribuzione.<br>Ad esempio se noi utilizzassimo ''Mint 22'', dovremmo copiare il codice yaml di ''Ubuntu Noble'' sulla quale ''Mint 22'' è basata.<br>'''Attenzione''': le librerie in ''yaml'' sono scritte in modo differente in base alla distribuzione, alcune sono incolonnate come quelle di ''Arch'' altre scritte sequenzialmente in un unica lunga stringa vedi ''Ubuntu'', dobbiamo accertarci di copiare tutto.
Ad esempio se noi utilizzassimo Mint 22, dovremmo copiare il codice di Ubuntu Noble sulla quale Mint 22 è basata.
+
* Incolliamo il codice yaml su un file di testo con l’aiuto di un editor e andiamo a cambiarlo così:
Attenzione: le librerie in yaml  sono scritte in modo differente in base alla distribuzione, alcune sono incolonnate come quelle di Arch altre scritte sequenzialmente in un unica lunga stringa vedi Ubuntu, siate certi di copiare tutto.
+
** eliminiamo le prime quattro righe
#2. Incolliamo il codice yaml su un file di testo con l’aiuto di un editor e andiamo a cambiarlo così:
+
** anteponiamo '''sudo''' davanti al/ai comando che installa le librerie, nel caso di ''Arch'' si dovrà dare due comandi come scritto nel file, se nella nostra distribuzione non abbiamo sudo ci dobbiamo trasformare in utente ''root'' per poter installare le librerie.<br>Dopo averle incollate le librerie vanno cambiate in modo che siano separate fra di loro da uno spazio eliminando così eventuali tabulazioni e/o gli accapo.
##2.1. eliminiamo le prime quattro righe
+
** Ora dipende da quale Gambas desideriamo scaricare e installare,  questo nuovo comando dobbiamo inserirlo, in una nuova riga, nel file di testo subito dopo le librerie e serve a copiare in una nuova cartella all’interno della nostra ''home'' il progetto ''Gambas'' da compilare, per la versione stabile il comando è:<br>git clone --branch stable --depth=1 https&#058;//gitlab.com/gambas/gambas.git gambas-stable<br>Per la versione sviluppo chiamata ''Master'' il comando è:<br>git clone --depth=1 https&#058;//gitlab.com/gambas/gambas.git gambasdevel
##2.2. anteponiamo sudo davanti al/ai comando che installa le librerie, nel caso di Arch dovrete dare due comandi come scritto nel file, se nella vostra distribuzione non avete sudo vi dovrete trasformare in utente root per poter installare le librerie.
+
** Dopo aver aggiunto il comando desiderato, occorre spostarsi all’interno della nuova cartella con uno di questi comandi, per la versione stabile il comando è:<br>cd gambas-stable<br>Per la versione sviluppo il comando è:<br>cd gambasdevel
Dopo averle incollate le librerie vanno cambiate in modo che siano separate da uno spazio eliminando così eventuali tabulazioni e/o gli accapo.
+
** Gli altri comandi incollati rimangono invariati, tranne l'ultimo anch'esso preceduto da '''sudo''', vale a dire:<br>./reconf-all<br>GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl<br>make -j$(nproc)<br>sudo make install
##2.3. Ora dipende da quale Gambas desiderate scaricare e installare,  questo nuovo comando dovrete inserirlo, in una nuova riga, nel file di testo subito dopo le librerie e serve a copiare in una nuova cartella all’interno della vostra home il progetto Gambas da compilare:
 
Per la versione stabile il comando è:
 
git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambas-stable
 
Per la versione sviluppo chiamata master il comando è:
 
git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
 
##2.4. Dopo aver aggiunto il comando desiderato, occorre spostarsi all’interno della nuova cartella con uno di questi comandi:
 
Per la versione stabile il comando è:
 
cd gambas-stable
 
Per la versione sviluppo chiamata master il comando è:
 
cd gambasdevel
 
##2.5. Gli altri comandi incollati rimangono invariati, vale a dire:
 
./reconf-all
 
GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl
 
make -j$(nproc)
 
sudo make install
 
  
A questo punto, se avete scelto la versione di sviluppo (Master), il vostro file di testo dovrebbe assomigliare a questo, da notare gli spazi aggiunti tra un comando e l’altro:
+
A questo punto, se avessimo scelto la versione di sviluppo (''Master''), il nostro file di testo dovrebbe assomigliare a questo, da notare che per facilitare la lettura, ho aggiunto degli spazi tra un comando e l’altro:
  
   sudo pacman -Syu --needed --noconfirm alure autoconf automake bzip2 zstd coreutils curl dbus gcc gdk-pixbuf2 git glew glib2 gmime3 gsl gst-plugins-base gstreamer gtk2 gtk3 imlib2 intltool libffi libgl libgnome-keyring mariadb-libs librsvg libsm libxcursor libxml2 libxslt libxtst mariadb make mesa ncurses pcre
+
   ''sudo pacman -Syu --needed --noconfirm alure autoconf automake bzip2 zstd coreutils curl dbus gcc gdk-pixbuf2 git glew glib2 gmime3 gsl gst-plugins-base gstreamer gtk2 gtk3 imlib2 intltool libffi libgl libgnome-keyring mariadb-libs librsvg libsm libxcursor libxml2 libxslt libxtst mariadb make mesa ncurses pcre''
 
    
 
    
   sudo pacman -Syu --needed --noconfirm pkg-config poppler poppler-glib postgresql postgresql-libs qt5-svg qt5-x11extras sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf sdl_mixer sdl_ttf smpeg sqlite unixodbc v4l-utils xdg-utils zlib gettext qt5-webengine webkit2gtk qt6-svg qt6-webengine mongo-c-driver
+
   ''sudo pacman -Syu --needed --noconfirm pkg-config poppler poppler-glib postgresql postgresql-libs qt5-svg qt5-x11extras sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf sdl_mixer sdl_ttf smpeg sqlite unixodbc v4l-utils xdg-utils zlib gettext qt5-webengine webkit2gtk qt6-svg qt6-webengine mongo-c-driver''
 
    
 
    
   git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
+
   ''git clone --depth=1 https&#058;//gitlab.com/gambas/gambas.git gambasdevel''
 
    
 
    
   cd gambasdevel
+
   ''cd gambasdevel''
 
    
 
    
   ./reconf-all
+
   ''./reconf-all''
 
    
 
    
   GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit –disable-gtkopengl
+
   ''GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl''
 
    
 
    
   make -j$(nproc)
+
   ''make -j$(nproc)''
 
    
 
    
   sudo make install
+
   ''sudo make install''
  
Non ci rimane che copiare e incollare, un comando alla volta, nel terminale della nostra distribuzione che nel caso del nostro esempio è Manjaro Linux.
+
Non ci rimane che copiare e incollare, <u>un comando alla volta</u>, nel terminale della nostra distribuzione che nel caso dell'esempio è ''Manjaro Linux''.<br>
Come detto se la vostra distribuzione non usa sudo occorre che al posto di sudo vi eleviate a utente root, senza mettere sudo nel comando.
+
Come detto se la nostra distribuzione non usa ''sudo'' occorre che al posto di sudo ci eleviamo a utente '''root''', senza mettere '''sudo''' nel comando.
  
  
== Ecco i passaggi per aggiornare ==
+
== I passaggi per aggiornare ==
  
Questo sistema è un po drastico e se avete padronanza di git potete anche saltarlo, sappiate solo che è l’unico sistema che garantisce l’aggiornamento sicuro di Gambas:
+
Questo sistema è un po' drastico e se si ha padronanza di ''git'' possiamo anche saltarlo, occorre solo sapere che è l’unico sistema che garantisce l’aggiornamento sicuro di Gambas:
  
   cd gambasdevel
+
   ''cd gambasdevel''
 
    
 
    
   sudo make uninstall
+
   ''sudo make uninstall''
 
    
 
    
   cd
+
   ''cd''
 
    
 
    
   rm -rf gambasdevel/
+
   ''rm -rf gambasdevel/''
 
    
 
    
   git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
+
   ''git clone --depth=1 https&#058;//gitlab.com/gambas/gambas.git gambasdevel''
 
    
 
    
   cd gambasdevel
+
   ''cd gambasdevel''
 
    
 
    
   ./reconf-all
+
   ''./reconf-all''
 
    
 
    
   GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit –disable-gtkopengl
+
   ''GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl''
 
    
 
    
   make -j$(nproc)
+
   ''make -j$(nproc)''
 
    
 
    
   sudo make install
+
   ''sudo make install''
  
Nota: se usate la versione stabile dovete sostituire gambasdevel con gambas-stable .
+
'''Nota''': se usiamo la versione stabile dobbiamo sostituire ''gambasdevel'' con ''gambas-stable'' .
  
1 È proprio il fatto di dover nascondere il codice per poterlo vendere che in Windows i programmi vengono distribuiti come binari (.exe).
+
 
Sono decisamente facili da installare (meno che da repository) rispetto alla compilazione, ma ammetterete che compilare è molto meno oneroso.
+
==Note==
 +
[1] È proprio il fatto di dover nascondere il codice per poterlo vendere che in Windows i programmi vengono distribuiti come binari (.exe).<br>
 +
Sono decisamente facili da installare (meno che da repository) rispetto alla compilazione, ma dobbiamo ammettere che compilare è molto meno oneroso.

Versione attuale delle 07:26, 11 dic 2024

I Repository

Per chi viene da altri sistemi operativi l’installazione di un programma in Linux può apparire poco chiara.
Ormai, visto che tutti abbiamo uno smartphone, l’idea di uno Store, cioè di un luogo virtuale da cui scaricare un’applicazione che ci serve, non è più una novità e infatti il sistema è stato copiato da Linux e dai suoi Repository.
Se in Linux serve un dato programma basta sceglierlo nel repository, fra le tante applicazioni del genere disponibili liberamente, installarlo e siamo subito operativi.

Purtroppo date le tante distribuzioni che arricchiscono Linux, non sempre i programmi ivi presenti sono all’ultima versione, questo accade per i programmi più diffusi figurarsi per quelli di nicchia come Gambas.

Quindi se si vuole l’ultima versione di Gambas, Stable oppure Master quella fresca di giornata con tutti gli ultimi fix, non rimane altra scelta che compilare.

Invero per chi usa Ubuntu o una sua derivata tipo Mint esistono dei repository speciali chiamati PPA, quello di Gambas è curato direttamente da Benoit Minisini ideatore di Gambas.
Normalmente 24 ore dopo l’uscita, la nuova versione è disponibile.
A questo link troviamo i comandi per il terminale:
https://gambaswiki.org/wiki/install/ubuntu#t1


Cosa significa compilare

Compilare è una semplicissima operazione che permette di trasformare un file di codice sorgente in un file binario eseguibile dalla nostra distribuzione.

L’operazione consiste nell’inviare al compilatore gcc attraverso il terminale alcuni comandi che eseguono degli script di shell e delle macro che automatizzano il tutto.
Per prima cosa vengono eseguiti gli script che predispongono il codice per la nostra distribuzione quindi le funzioni (macro) che creano e installano l’eseguibile.

Compilare un programma in GNU/Linux consiste in pratica nel dare tre comandi da terminale (configure [script], make e make install [funzioni]), quale è dunque il motivo che spaventa i più?

Credo che quello principale sia che Windows ci ha abituato a fare tutto attraverso le finestre e pertanto scrivere comandi in un terminale ci appare una cosa aliena, però se abbiamo velleità di programmazione la cosa risulta risibile, visto che programmare altro non è che scrivere comandi, i nostri comandi.

Gambas, come tutte le applicazioni open source viene rilasciato sotto forma di codice sorgente [Nota 1] ed è attualmente presente su GitLab a questo indirizzo:
https://gitlab.com/gambas/gambas

GitLab si apre sulla versione Master (quella in corso di sviluppo), ma agendo sul pulsante menu è possibile scegliere la versione stabile (Stable).
Quindi il suo codice può essere scaricato da li, anche graficamente, come file compresso: Tarball (con estensione .tar.gz, .tar.bz2 o .tar) oppure Zip (.zip).

Dopo aver scaricato il file nella cartella desiderata, tipicamente la nostra home, si può decomprimerlo usando il tasto destro del mouse e l’apposita voce di menu, ma visto che comunque per compilare dai sorgenti si dovrà fare uso del terminale e più avanti verrà descritta l’intera operazione di scaricamento da GitLab, scaricare il file in questo modo appare inutile, a meno che si stia cercando una versione precedente l’attuale.
Quindi è comunque bene sapere che anche da GitLab sotto la voce Comit si può scaricare in forma compressa qualunque Gambas precedente sia stabile che di sviluppo.

Le librerie dinamiche

Tutto troppo facile, vero?
Uno potrebbe immaginare che vengano celate delle difficoltà !
E infatti, la difficoltà del caso si chiama Libreria.
Un programma per funzionare ha bisogno che nel sistema siano installate determinate librerie, esattamente quelle della giusta versione.
Pertanto installare un programma è semplice, trovare le librerie di cui si necessita per la distribuzione in nostro uso lo è un po’ meno e non perché sia difficile installarle ma perché è difficile capire come è stata nominata quella specifica libreria.
Gambas oltre che un programma è anche un linguaggio di programmazione e va da se che si basi su moltissime librerie.

Niente panico

La stragrande maggioranza delle distribuzioni deriva da poche altre distribuzioni, per le più importanti le librerie utili a Gambas sono elencate nel file di configurazione YAML a questo indirizzo:
https://gitlab.com/gambas/gambas/-/blob/master/.gitlab-ci.yml

 Nota: il tipo di desktop in uso non è importante per la compilazione, quello che conta riguardo alle librerie da scaricare è la distribuzione che è il modo in uso a GNU/Linux di chiamare il sistema operativo.


I passaggi per compilare Gambas


 Nota: la compilazione va fatta su una distribuzione pulita, vale a dire che Gambas non può essere già presente anche se scaricato dai repository.
Se è già presente, prima di poter compilare Gambas occorre rimuoverlo completamente.

Qui come esempio useremo una distribuzione basata su Arch Linux, tipo Manjaro, Endeavour oltre che naturalmente a Arch stesso.
Attualmente Benoit Minisini utilizza Manjaro con KDE.

Quanto qui descritto si può adattare a qualunque altra distribuzione ed è indirizzato a programmatori dilettanti come lo scrivente, se siete dei professionisti il consiglio è di dare un’occhiata comunque.
Quello che segue servirà a preparare la giusta lista dei comandi che poi daremo da terminale usando il copia e incolla.

  • Copiamo il codice yaml su cui è basata la nostra distribuzione.
    Ad esempio se noi utilizzassimo Mint 22, dovremmo copiare il codice yaml di Ubuntu Noble sulla quale Mint 22 è basata.
    Attenzione: le librerie in yaml sono scritte in modo differente in base alla distribuzione, alcune sono incolonnate come quelle di Arch altre scritte sequenzialmente in un unica lunga stringa vedi Ubuntu, dobbiamo accertarci di copiare tutto.
  • Incolliamo il codice yaml su un file di testo con l’aiuto di un editor e andiamo a cambiarlo così:
    • eliminiamo le prime quattro righe
    • anteponiamo sudo davanti al/ai comando che installa le librerie, nel caso di Arch si dovrà dare due comandi come scritto nel file, se nella nostra distribuzione non abbiamo sudo ci dobbiamo trasformare in utente root per poter installare le librerie.
      Dopo averle incollate le librerie vanno cambiate in modo che siano separate fra di loro da uno spazio eliminando così eventuali tabulazioni e/o gli accapo.
    • Ora dipende da quale Gambas desideriamo scaricare e installare, questo nuovo comando dobbiamo inserirlo, in una nuova riga, nel file di testo subito dopo le librerie e serve a copiare in una nuova cartella all’interno della nostra home il progetto Gambas da compilare, per la versione stabile il comando è:
      git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambas-stable
      Per la versione sviluppo chiamata Master il comando è:
      git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
    • Dopo aver aggiunto il comando desiderato, occorre spostarsi all’interno della nuova cartella con uno di questi comandi, per la versione stabile il comando è:
      cd gambas-stable
      Per la versione sviluppo il comando è:
      cd gambasdevel
    • Gli altri comandi incollati rimangono invariati, tranne l'ultimo anch'esso preceduto da sudo, vale a dire:
      ./reconf-all
      GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl
      make -j$(nproc)
      sudo make install

A questo punto, se avessimo scelto la versione di sviluppo (Master), il nostro file di testo dovrebbe assomigliare a questo, da notare che per facilitare la lettura, ho aggiunto degli spazi tra un comando e l’altro:

 sudo pacman -Syu --needed --noconfirm alure autoconf automake bzip2 zstd coreutils curl dbus gcc gdk-pixbuf2 git glew glib2 gmime3 gsl gst-plugins-base gstreamer gtk2 gtk3 imlib2 intltool libffi libgl libgnome-keyring mariadb-libs librsvg libsm libxcursor libxml2 libxslt libxtst mariadb make mesa ncurses pcre
 
 sudo pacman -Syu --needed --noconfirm pkg-config poppler poppler-glib postgresql postgresql-libs qt5-svg qt5-x11extras sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf sdl_mixer sdl_ttf smpeg sqlite unixodbc v4l-utils xdg-utils zlib gettext qt5-webengine webkit2gtk qt6-svg qt6-webengine mongo-c-driver
 
 git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
 
 cd gambasdevel
 
 ./reconf-all
 
 GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl
 
 make -j$(nproc)
 
 sudo make install

Non ci rimane che copiare e incollare, un comando alla volta, nel terminale della nostra distribuzione che nel caso dell'esempio è Manjaro Linux.
Come detto se la nostra distribuzione non usa sudo occorre che al posto di sudo ci eleviamo a utente root, senza mettere sudo nel comando.


I passaggi per aggiornare

Questo sistema è un po' drastico e se si ha padronanza di git possiamo anche saltarlo, occorre solo sapere che è l’unico sistema che garantisce l’aggiornamento sicuro di Gambas:

 cd gambasdevel
 
 sudo make uninstall
 
 cd
 
 rm -rf gambasdevel/
 
 git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel
 
 cd gambasdevel
 
 ./reconf-all
 
 GAMBAS_CONFIG_FAILURE=1 ./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl
 
 make -j$(nproc)
 
 sudo make install

Nota: se usiamo la versione stabile dobbiamo sostituire gambasdevel con gambas-stable .


Note

[1] È proprio il fatto di dover nascondere il codice per poterlo vendere che in Windows i programmi vengono distribuiti come binari (.exe).
Sono decisamente facili da installare (meno che da repository) rispetto alla compilazione, ma dobbiamo ammettere che compilare è molto meno oneroso.