Vedi se l'articolo nel blog: https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/ (https://blog.lazaruspascal.it/2022/03/03/installazione-in-linux-risoluzione-problemi/) ti è utile.
Mancano le path dove vengono posti i sorgenti e i compilati di Lazarus (.lazarus ?? ), vanno eliminate anche quelle prima di reinstallare Lazarus.
L'articolo ha già linkato i curl per l'ultima realease stabile di Lazarus / FPC.
Perfetto, ho seguito ancora una volta il percorso di installazione di Lazarus con curl, tenendo conto che esiste già il file
relativo al cerificato.
Tuttavia, non sono sicuro che L'installazione sia andata bene perchè, in coda, è apparso un messaggio per me incomprensibile.
Riporto pertanto le righe iniziali e finali dell'installazione.
petrus@petrus13:~$ curl -L https://cloud.dyn-o-saur.com/lazarus-ide | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 714 100 714 0 0 1311 0 --:--:-- --:--:-- --:--:-- 1312
Downloading Lazarus and FPC packages
--2023-02-02 14:43:47-- https://cloud.dyn-o-saur.com/fpc-laz_3.2.2-210709_amd64.deb
Risoluzione di cloud.dyn-o-saur.com (cloud.dyn-o-saur.com)... 217.198.132.230, 2a00:6d43:601:e600:3e37:12ff:feaa:da7
Connessione a cloud.dyn-o-saur.com (cloud.dyn-o-saur.com)|217.198.132.230|:443... connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: 39280196 (37M) [text/html]
Salvataggio in: ‘fpc-laz_3.2.2-210709_amd64.deb’
fpc-laz_3.2.2-21070 100%[===================>] 37,46M 5,75MB/s in 6,8s
. . .
. . .
Rebuilding /usr/share/applications/bamf-2.index...
Elaborazione dei trigger per desktop-file-utils (0.26-1ubuntu3)...
Configurazione di libxau-dev:amd64 (1:1.0.9-1build5)...
Configurazione di libice-dev:amd64 (2:1.0.10-1build2)...
Elaborazione dei trigger per gnome-menus (3.36.0-1ubuntu3)...
Configurazione di libsm-dev:amd64 (2:1.2.3-1build2)...
Elaborazione dei trigger per libglib2.0-0:amd64 (2.72.4-0ubuntu1)...
Configurazione di libxdmcp-dev:amd64 (1:1.1.3-0ubuntu5)...
Configurazione di libatk1.0-dev:amd64 (2.36.0-3build1)...
Configurazione di libgdk-pixbuf-2.0-dev:amd64 (2.42.8+dfsg-1ubuntu0.2)...
Configurazione di libharfbuzz-dev:amd64 (2.7.4-1ubuntu3.1)...
Configurazione di libxcb1-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libx11-dev:amd64 (2:1.7.5-1)...
Configurazione di libxfixes-dev:amd64 (1:6.0.0-1)...
Configurazione di libxcb-shm0-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libxcb-render0-dev:amd64 (1.14-3ubuntu3)...
Configurazione di libxext-dev:amd64 (2:1.3.4-1build1)...
Configurazione di libxi-dev:amd64 (2:1.8-1build1)...
Configurazione di libxrender-dev:amd64 (1:0.9.10-1build4)...
Configurazione di libxft-dev:amd64 (2.3.4-1)...
Configurazione di libxdamage-dev:amd64 (1:1.1.5-2build2)...
Configurazione di libxcomposite-dev:amd64 (1:0.4.5-1build2)...
Configurazione di libxcursor-dev:amd64 (1:1.2.0-2build4)...
Configurazione di libxrandr-dev:amd64 (2:1.5.2-1build1)...
Configurazione di libxinerama-dev:amd64 (2:1.1.4-3)...
Configurazione di libcairo2-dev:amd64 (1.16.0-5ubuntu2)...
Configurazione di libpango1.0-dev:amd64 (1.50.6+ds-2)...
Configurazione di libgtk2.0-dev:amd64 (2.24.33-2ubuntu2)...
Configurazione di lazarus-project (2.2.4)...
N: Lo scaricamento è eseguito come root, ma non in una sandbox, poiché l'utente "_apt" non ha accesso al file "/home/petrus/lazarus-project_2.2.4-0_amd64.deb". - pkgAcquire::Run (13: Permesso negato)
petrus@petrus13:~$
Io non ricordo se, anche in passato è stato prodotto tale messaggio.
Ho riavviato il sistema e non ho trovato l'icona d'avvio di Lazarus nelle schermate di gnome. Esiste tuttavia presente fra le applicazioni preferite e Lazarus si avvia senza anomalie.
C'è qualcosa che non và. avrebbe dovuto scaricare ed "eseguire" 3 file, invece li ne è stato scaricato ed eseguito solo 1 mi pare.
Il fatto che funzioni apparentemente tutto non và bene. Manca sicuramente da installare l'ultimo pacchetto (dato l'errore visualizzato).
Ciò significa che non hai tutto ciò che ti serve installato, oppure che una vecchia versione di Lazarus è rimasta.
Prova ad "eseguire" a mano i tre file scaricati secondo la sequenza indicata nel blog.
Eseguito, almeno spero di avere fatto bene, quanto mi hai indicato:
petrus@petrus13:~$ sudo dpkg -i fpc-laz_3.2.2-210709_amd64.deb
[sudo] password di petrus:
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre fpc-laz_3.2.2-210709_amd64.deb...
Estrazione di fpc-laz (3.2.2) su (3.2.2)...
Configurazione di fpc-laz (3.2.2)...
Running on linux
Write permission in /etc.
Writing sample configuration file to /etc/fpc.cfg
Saved old "fpc.cfg" to "fpc.bak"
Writing sample configuration file to /usr/lib/fpc/3.2.2/ide/text/fp.cfg
Saved old "fp.cfg" to "fp.bak"
Writing sample configuration file to /usr/lib/fpc/3.2.2/ide/text/fp.ini
Saved old "fp.ini" to "fp.bak"
Writing sample configuration file to /etc/fppkg.cfg
Saved old "fppkg.cfg" to "fppkg.bak"
Writing sample configuration file to /etc/fppkg/default
Saved old "default" to "default.bak"
Elaborazione dei trigger per man-db (2.10.2-1)...
petrus@petrus13:~$ sudo dpkg -i fpc-src_3.2.2-210709_amd64.deb
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre fpc-src_3.2.2-210709_amd64.deb...
Estrazione di fpc-src (3.2.2) su (3.2.2)...
Configurazione di fpc-src (3.2.2)...
petrus@petrus13:~$ sudo dpkg -i lazarus-project_2.2.4-0_amd64.deb
(Lettura del database... 269090 file e directory attualmente installati.)
Preparativi per estrarre lazarus-project_2.2.4-0_amd64.deb...
Estrazione di lazarus-project (2.2.4) su (2.2.4)...
Configurazione di lazarus-project (2.2.4)...
Elaborazione dei trigger per bamfdaemon (0.5.6+22.04.20220217-0ubuntu1)...
Rebuilding /usr/share/applications/bamf-2.index...
Elaborazione dei trigger per mailcap (3.70+nmu1ubuntu1)...
Elaborazione dei trigger per gnome-menus (3.36.0-1ubuntu3)...
Elaborazione dei trigger per desktop-file-utils (0.26-1ubuntu3)...
Elaborazione dei trigger per shared-mime-info (2.1-2)...
Elaborazione dei trigger per man-db (2.10.2-1)...
petrus@petrus13:~$
Ho riportato la sequenza intera dei comandi. Ho guardato i messaggi generati durante l'esecuìzione dei file e mi pare che l'installazione di fpc-src_3.2.2-210709_amd64.deb non sia andata bene, ma io non sono in grado di capire se ho interpretato bene. Di conseguenza non so ora il mio ambiente Lazarus sia completo.
A me pare che sia andato tutto bene. Ha riscritto anche i file di configurazione, quindi devresti essere a posto.
Va bene.
Allora, dovrei essere pronto per installare ZeosLib. E qui conviene, secondo me, modificare il procedimento perchè l'ultima installazione apparentemente sembrava essere andata bene, invece poi, nell'esecuzione in prova è comparso il messaggio con l'errore di "eccezione di classe".
Ho potuto accertare che l'errore si manifesta , subito dopo l'avvio, dopo i controlli preliminari sul file di database, al momento dell'esecuzione della prima istruzione del seguente gruppo:
procedure TForm1.Panel1Enter(Sender: TObject);
var
totRecQry: Integer;
msgErro, msgScelta, sql: String;
begin
Menu2.Enabled:= False;
if not FileExists(dbOrig) then
begin
ShowMessage('DB ' + dbOrig + ' INESISTENTE - il Programma verra'' chiuso');
Halt; // Halt interrompe BRUTALMENTE l'esecuzione del programma e restituisce il controllo al chiamante
end;
. . .
sql:= 'SELECT IdRiepMovg FROM riepmovg';
DataModule1.ZReadOnlyQuery1.Active:= False; // <-- istruzione che provoca l'errore di "ECCEZIONE DI CLASSE"
DataModule1.ZConnection1.Database := dbCorr;
Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
DataModule1.ZReadOnlyQuery1.Active:= True;
if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
begin
. . .
La prima incertezza è:
- Se reinstallo da IDE -> Pacchetto -> Online Package Manager per selezionare ZeosDBO ed installare, sicuramente mi si ripresenterà il problema.
- Se scarico da SourceForge il file zeosdbo-7.2.14-stable.zip per installarlo manualmente, poi non sono in grado di procedere all'installazione, perchè non l'ho mai fatto e non ho trovato una guida o una nota che mi spiegasse come fare.
Ho trovato proprio poco fa questa guida (https://wiki.freepascal.org/ZeosDBO) ed ho seguito le indicazioni fino all'esecuzione dei comandi indicati per Linux subversion, però l'IDE di Lazarus non è stato aggiornato.
Sono, perciò, al punto di prima.
Ma dopo avere compilato ed installato (che immagino siano andati a buon fine) ... hai ricompilato l'IDE ?
No, veramente no.
Ho provato a ricostruire l'IDE, ma mi ha dato il seguente ERRORE:
"Il progetto richiede il pacchetto "pack_powerpdf"
Ma non è stato trovato, Vedere progetto -> Analizzatore progetti."
Riepilogo quanto fatto: Ho eseguito i seguenti comandi:
sudo apt-get install subversion
cd zeosdbo
1162 svn co http://svn.code.sf.net/p/zeoslib/code-0/trunk
1163 sudo apt update
1164 sudo apt upgrade
sotto zeosdbo c'è:
zeosdbo
petrus@petrus13:~$ cd zeosdbo
petrus@petrus13:~/zeosdbo$ dir
trunk
petrus@petrus13:~/zeosdbo$ cd trunk
petrus@petrus13:~/zeosdbo/trunk$ dir
artwork COPYING.ZEOS documentation packages zeosbugtemplate
build database examples src
COPYING developer_diary lib test
petrus@petrus13:~/zeosdbo/trunk$
Ho cercato il pack_powerpdf, ma non l'ho trovato.
Sono assolutamente disorientato, perchè potrebbe essere che:
- pack_powerpdf non sia un pacchetto di Zeos e ciò potrebbe signicare che l'installazione di Lazarus non sia stata conclusa correttamente,
- la directory zeosdbo che ho creato non sia riconosciuta, magari perchè creata fuori dal percorso di ricerca dell'IDE di Lazarus.
Ho guardato infine in IDE -> Pacchetto -> Online Package Manager e sulla riga di Zeosdbo compare la dicitura "installato parzialmente"
:o
Non prendertela, non è che non ti credo. Il problema è che può essere che quel tipo di errore derivi ad esempio dal progetto (.lpi) che per qualche motivo viene letto in modo errato o ha qualche configurazione che fà l'override della configurazione di base corrente di Lazarus / fpc .....
Quindi per verificare al volo se l'ambiente Lazarus è corretto si può partire con un nuovo progetto al volo banale e verificare che ci sia o no il problema.
Più che altro sono stanco. Non riesco a capire perchè si è manifestata un'anomalia che prima non esisteva.
Comunque, prima di riguardare il programma corrente, ho caricato in Lazarus un altro progettino che esegue la lettura di particolari record di una tabella dello stesso database e, trovandoli, ne comanda la cancellazione.
Per costringerne la compilazione ho aggiunto una variabile ed ho avviato.
Ebbene, il programma ha funzionato alla perfezione, senza errori.
Ho allora riguardato pazientemente il programma che mi scatena l'Errore e non ho trovato niente che possa spiegarmi la segnalazione d'eccezione di classe.
Riporto qui il codice dove si genera l'errore col messaggio di writeln della variabile contenente il percorso relativo al database impiegato
procedure TForm1.Panel1Enter(Sender: TObject);
. . .
sql:= 'SELECT IdRiepMovg FROM riepmovg';
Writeln('dbCorr ="' + dbCorr + '"');
DataModule1.ZConnection1.Database:= dbCorr; <== ERRORE
DataModule1.ZConnection1.Connected:= True;
DataModule1.ZReadOnlyQuery1.Active:= False;
Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
DataModule1.ZReadOnlyQuery1.Active:= True;
if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
begin
Contenuto della Console:
procedure TForm1.FormCreate
procedure TForm1.Panel1Enter
dbCorr ="/media/dirdati/dativari/contabfam/ContabFamdb_prove"
Rilevazione estremi file da terminale:
petrus@petrus13:~$ ls -l /media/dirdati/dativari/contabfam/ContabFam*
-rwxrwxrwx. 1 petrus petrus 11922432 feb 7 15:49 /media/dirdati/dativari/contabfam/ContabFamdb
-rwxrwxrwx 1 petrus petrus 11922432 feb 7 15:50 '/media/dirdati/dativari/contabfam/ContabFamdb(copia)'
-rwxrwxrwx 1 petrus petrus 11922432 feb 7 17:04 /media/dirdati/dativari/contabfam/ContabFamdb_prove
Veramente, NON capisco e non so che fare.
Sei sicuro che il DataModule1 sia stato istanziato al momento della chiamata? Non è che semplicemente lo chiami prima che venga creato ? Nel file di progetto il DataModule1 non viene creato automaticamente ....
Non sono in grado di dirti esattamente quando venga richiamata la procedura "TDataModule1.DataModuleCreate", però posso dirti che, dalle righe Writeln di controllo che sono abituato ad usare per capire e verificare dati e sequenze procedurali, la prima procedura che si avvia subito dopo la "procedure TForm1.FormCreate" è la "procedure TForm1.Panel1Enter", cioè quella in cui eseguo il 1° accesso al DB con il gruppo di istruzioni seguente:
DataModule1.ZReadOnlyQuery1.Active:= False;
DataModule1.ZConnection1.Database := dbCorr;
Writeln('DataModule1.ZConnection1.Database= "' + DataModule1.ZConnection1.Database + '"');
sql:= 'SELECT IdRiepMovg FROM riepmovg';
DataModule1.ZReadOnlyQuery1.SQL.Text:= sql;
DataModule1.ZReadOnlyQuery1.Active:= True;
if (DataModule1.ZReadOnlyQuery1.RecordCount) > 0 then
begin
Ecco, quando viene eseguita la prima istruzione di tale procedura, il DataModule1 è stato già creato, come puoi vedere nella finestra della Console di Lazarus, allegata.
C'è qualcosa che non và ... il progetto che hai postato non ha il datamodule creato automaticamente:
program DomusRatio;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, datetimectrls, memdslaz, runtimetypeinfocontrols, zcomponent,
pack_powerpdf, FrmMain, Frm2, Frm3, Frm4, Frm5, utilmie, Frm7, Frm6, Frm8,
UModuloDatiDB, Frm9;
{$R *.res}
begin
RequireDerivedFormResource:=True;
Application.Scaled:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1); <---- Creazione automatica
Application.CreateForm(TForm9, Form9); <---- Creazione automatica
Application.Run;
end.