[Lazarus] Lazarus on Linux, which desktop environment?

Mehmet Erol Sanliturk m.e.sanliturk at gmail.com
Mon Nov 22 00:09:18 CET 2021


On Sun, Nov 21, 2021 at 10:55 PM Bo Berglund via lazarus <
lazarus at lists.lazarus-ide.org> wrote:

> On Sun, 21 Nov 2021 14:51:44 +0300, Mehmet Erol Sanliturk via lazarus
> <lazarus at lists.lazarus-ide.org> wrote:
>
> >In this thread there is a point which is not clear for me :
> >
> >Compile
> >
> >(1)   programs in SERVER by using Lazarus installed in SERVER
> >(2)   programs in SERVER by using Lazarus installed in WORKSTATIONS
>
> I mean:
> Compile programs on the server (Lazarus running on the server) for use on
> any
> Linux machine based on The PC architecture (AMD/Intel CPU).
>




I have read all of the messages in this thread starting from your initial
email once more .

When you compile a program , it is possible to execute it another Windows
machine by assuming
that the next Windows version is able to execute the program .

In the Linux ( or Unix ) world , this is NOT the case : Each Linux version
of each Linux distribution has its OWN
library versions : There is NOT any standard library usage plan among the
Linux versions or Linux distributions .
Therefore , it is very likely ( with respect to me : exactly ) that you
will NOT be able to run your program in arbitrary Linux
distributions  IF YOU USE DYNAMICALLY LOADED LIBRARIES . I do not know the
situation when you use statically
linked libraries . it is  always not possible to use static linking because
each library does NOT have static libraries .
When there is not a static library , you need to compile the respective
sources to obtain a static library
WITH A  SERIOUS CONSIDERATION OF  STATIC LINKING POSSIBILITY  BY STUDYING
ITS LICENSE VERY CAREFULLY .



I can explain the situation with an example .

I have a Fedora Linux computer having a large number of repositories
stored  in a different disk from the Fedora 28 installed disk .
During a country-wise electric fluctuation my Fedora 28 disk has been
broken . I have installed Fedora 25 . Now ALL of the programs
are NOT executable because of dynamically loaded ( *.so ) libraries by
giving an error message about  *.so library mismatch .
I will install Fedora 35 . This will also require recompilation of ALL of
the repositories one by one .


Therefore , my opinion is your plan WILL NOT work if you use *.so libraries
, and try them to execute in different Linux computers
with different *.so files . You may think that  ALL of the  *.so files of
the libraries ARE the SAME :    NO !
In your executable , the  EXACT   library version is recorded . During
execution of the program , the *.so file is NOT loaded , but
its EXACT matching name is searched : If it is NOT found , it is giving a
message saying that  the required   exact *.so file is not found :
*.so file with exact version number : for example : *.so.5.4.3 .


You need to check the static linking case whether it is possible to
execute your program in different  Linux ( versions , distributions ) .
I do not know the situation based on experiments because  in my NFS server
, all of the clients have the same Fedora version .

Version of the NFS server may be different from the client versions (
assume NFS versions are the same or compatible ) .
In the NFS server , there are the following directories alongside the
source directories :
    Executables_for_FreeBSD
    Executables_for_Linux

Previously , also

    Executables_for_Windows_XP
    Executables_for_Windows_7

I could NOT be able to connect to Windows_7 . Due to this I have removed
WIndows  directories and I have discontinued
use of Windows .

>From any client I am compiling ( Lazarus is installed in the client , BUT
you can install Lazarus in the server   IF YOUR VERSIONS OF
CLIENTS and SERVER ARE THE SAME in LINUX  if you use *.so libraries and use
it from the clients . If you use static linking , please check the result .
Do not forget that you will not be able to install Lazarus for FreeBSD in
server because it is Linux ( or different from the client )  )
programs by storing its executables into respective Linux or FreeBSD
directory and execute the programs in any client from its respective
directory .


As a result , my idea about your setup is : It requires adjusting
parameters of the components to obtain a consistent work
environment  with respect to your needs and availability of your tools  .


If you want to sell your program(s) to Linux user customers :  My
suggestion would be ( you may think a much more suitable method ,
or some other experts may suggest other ways ) :

Ask  them to learn their Linux distribution and its version and hardware
kind .
On a similar hardware and Linux distribution and version , install Lazarus
, compile your program(s) from your source repository
and supply your program(s) to your customer .


Mehmet Erol Sanliturk






> >other than use of cross compilation .
>
> I have never ever managed to set up a dev environment that could
> cross-compile,
> so I have to keep at least 3 different dev environments:
>
> - Linux on Raspberry Pi (ARM)
> - Linux on PC platform (AMD/Intel CPU)
> - Windows on PC (AMD/Intel CPU)
>
> By compiling on the target "metal" I am sure the programs will run
> properly...
>
> And for Linux I access the computers via VNC when I work. So I use my
> Windows 10
> box as the work environment always.
>
>
> --
> Bo Berglund
> Developer in Sweden
>
> --
> _______________________________________________
> lazarus mailing list
> lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20211122/ce92ae5a/attachment-0001.html>


More information about the lazarus mailing list