Differenze tra le versioni di "Compilare Gambas"
Riga 63: | Riga 63: | ||
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. | ||
− | # | + | # Copiamo il codice yaml su cui è basata la nostra distribuzione. |
Ad esempio se noi utilizzassimo Mint 22, dovremmo copiare il codice di Ubuntu Noble sulla quale Mint 22 è basata. | Ad esempio se noi utilizzassimo Mint 22, dovremmo copiare il codice 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, siate certi di copiare tutto. | 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. | ||
− | # | + | # 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 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 averle incollate le librerie vanno cambiate in modo che siano separate da uno spazio eliminando così eventuali tabulazioni e/o gli accapo. | Dopo averle incollate le librerie vanno cambiate in modo che siano separate da uno spazio eliminando così eventuali tabulazioni e/o gli accapo. | ||
− | ## | + | ## 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 | git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambas-stable | ||
Per la versione sviluppo chiamata master il comando è: | Per la versione sviluppo chiamata master il comando è: | ||
git clone --depth=1 https://gitlab.com/gambas/gambas.git gambasdevel | 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 | cd gambas-stable | ||
Per la versione sviluppo chiamata master il comando è: | Per la versione sviluppo chiamata master il comando è: | ||
cd gambasdevel | cd gambasdevel | ||
− | ## | + | ## Gli altri comandi incollati rimangono invariati, vale a dire: |
./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 |
Versione delle 15:12, 10 dic 2024
Indice
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 siete 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 vi 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 trovate 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 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 1 ed è attualmente presente su GitLab a questo indirizzo: 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). 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. 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 nella giusta versione. 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. 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 compilare, 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 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, siate certi 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 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 averle incollate le librerie vanno cambiate in modo che siano separate da uno spazio eliminando così eventuali tabulazioni e/o gli accapo.
- 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
- 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
- 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:
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 del nostro esempio è Manjaro Linux. 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.
Ecco 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:
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 usate la versione stabile dovete 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.