Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: eddy16391 - Febbraio 18, 2019, 10:15:39 am

Titolo: Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 10:15:39 am
Ciao a tutti,
ho scritto una semplice applicazione che vorrei far girare su un server virtuale che non ha ovviamente il display e quindi le librerie annesse.
Se provo a lanciare il programma mi ritorna questo errore:
Codice: [Seleziona]
error while loading shared libraries: libgdk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Come posso risolvere?
Grazie mille in anticipo!
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: guest1752 - Febbraio 18, 2019, 10:22:13 am
Ciao, dovresti essere piu preciso:
il server virtuale, a giudicare dal tipo di errore, immagino sia essere una macchina virtuale linux?
Quali componenti stai usando?

Tuttavia mi sembra un errore risolto cosi:

http://forum.lazarus.freepascal.org/index.php?topic=3397.0
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 10:39:30 am
il server virtuale, a giudicare dal tipo di errore, immagino sia essere una macchina virtuale linux?

Si, esatto.

Ho visto il link che mi hai girato, però io non riscontro problemi nella compilazione ma nell'esecuzione sul server.

La mia domanda è, si può compilare un'applicazione scritta con Lazarus per essere eseguita solo su terminale? E quindi sul server che non contempla la parte grafica?

Non so se mi sono spiegato meglio ora.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 18, 2019, 10:43:43 am
Ciao, si ovviamente deve essere una console application per poter girare senza un interfaccia grafica. Però mi sorge un dubbio, che componenti hai messo in tale programma? Per caso hai usato lazreport? Perchè lazreport ingloba la LCL che carica le librerie grafiche. Ergo se usi lazreport non puoi farlo girare su un server linux senza X installato sopra.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 10:46:53 am
Vi scrivo qui sotto i componenti usati:

TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
MySQL57Connection1: TMySQL57Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
IdMessage: TIdMessage;
IdPOP3: TIdPOP3;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
ListBox1: TListBox;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);

Potrebbe essere un problema del listbox?
Perchè sinceramente a me non interessa di vedere niente a livello grafico mi serve solo come contenitore di stringhe.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 18, 2019, 11:28:08 am
E' un problema in senso concettuale. Le Form richiedono un interfaccia grafica per essere eseguite. Non puoi usare una form e pretendere che funzioni nel terminale se il server in questione non ha un interfaccia grafica. Se un computer/server non ha interfaccia grafica puoi usare solo le console application come tipi di progetti di lazarus. Quindi niente form e componenti visuali.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 11:30:50 am
Ah ok, quindi devo fare new console application, giusto?
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 18, 2019, 11:37:18 am
Si, ma da li puoi solo creare programmi da riga di comando.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 11:49:30 am
e quindi non posso usare i componenti del pacchetto indy?
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 18, 2019, 12:02:34 pm
Quelli di Indy si, basta che li istanzi da codice e non lo trascini su una form.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 12:07:23 pm
e invece di una listbox che tipo di variabile devo utilizzare?
perchè questa applicazione deve leggere il body delle email che arrivano ad un indirizzo e poi parsarlo riga per riga.
per questo utilizzavo il listbox
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 18, 2019, 12:10:34 pm
Una tstringlist. Che poi è quello che usa sotto il suo cofano la listbox.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 18, 2019, 12:21:20 pm
ok, grazie.
provo a trasformare questa benedetta (o maledetta ?!) applicazione.
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: guest1752 - Febbraio 18, 2019, 12:38:09 pm
guarda che bel documentino :

http://wiki.freepascal.org/Overview_of_Free_Pascal_and_Lazarus
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 21, 2019, 10:17:51 am
Scusate ragazzi, ho fatto un New->Program ma non riesco a capire come utilizzare i componenti Indy e soprattutto il timer che deve far partire la procedura ogni 3 minuti.

Non è che per caso avete un programma del genere come esempio?

guarda che bel documentino :

http://wiki.freepascal.org/Overview_of_Free_Pascal_and_Lazarus

Questo l'avevo già letto, grazie comunque!
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 21, 2019, 10:23:31 am
Scusa ma non uso le Indy e non ho nulla di fatto al riguardo. Quello che devi però capire che in un programma console non ti serve il timer. Usa un ritardo al posto. Concettualmente è qualcosa di simile

Codice: [Seleziona]
while 1=0 do
begin

        //codice che devi eseguire
        Sleep(1000); //ritardo di un secondo

end;
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: eddy16391 - Febbraio 21, 2019, 10:51:46 am
Ah giusto,
quindi faccio un ciclo infinito impostando un ritardo di tot secondi alla fine.
Grazie per lo spunto!  ;)
Titolo: Re:Lanciare applicazione Lazarus su Ubuntu Server
Inserito da: xinyiman - Febbraio 21, 2019, 10:54:27 am
Figurati