Deploy Qt5-console-app on a remote linux virtual server - linux

I have written a little server with Qt5 and want now to deploy it on my vServer. I have no root rights for the server. I have still tried to just copy the application and the Qt5-libs and run it with this result:
/lib64/libc.so.6: version `GLIBC_2.14' not found
I don't want to install Qt5 on the server to compile the application on the server again. Is there a better way to easily deploy an application on a remote server?

You can also copy glibc with your application. Clearly the problem is program can't find libc.so.6.
Your libc libraries are most probably in /usr/lib. You might want to look at it though. I think copying your libc.so.* files with your application might solve your problem.

Related

How to develop Linux + Windows application with WSL2 and Visual Studio C++ 2019 using the same vcpkg dir?

recently I started to use WSL & vcpkg, but it has some problems when mixing windows + linux development.
It seems like that installing Linux packages or Windows packages with vcpkg, mutually damage the vcpkg configuration and then vcpkg roughly says: "the package you want to install doesn't exist". (I know for sure that it exist)
If it matters, the project is located in the windows "world" so the WSL directing to it with /mnt/c/Users//workspace/proj1
but it really doesn't matter.
Does Anyone already encountered this problem?
Am I doing something wrong?
Is there a better way to develop a cross-platform project?
Thanks
So I post it to help anyone who have doubts about it:
Don't mix WSL project with windows project because it will force you to work on the windows filesystem from WSL. (WSL can work on the windows filesystem with /mnt/)
anyway, It will both corrupt the vcpkg and the overall compile times will be horribly slow from linux filesystem (usually ext4) to the windows filesystem (NTFS).
this is my original post in the Github:
https://github.com/microsoft/vcpkg/issues/13948#issuecomment-706625438

`GLIBC_2.16' not found for an application

I am trying to develop an application for a Linux based custom device. My build environment(Ubuntu 16.04) uses GLIBC-2.23 and all of other applications use this version but new custom device uses an old version of GLIBC so I am getting
/lib/libc.so.6: version `GLIBC_2.16' not found (required by /opt/myapp/lib/libcurl.so.4)
I cannot change my build environment and I cannot update also custom device GLIBC.
So, got stuck.
Maybe I can link new glibc version just with my application explicity but I dont know how can I do that?
I tried following but stil same
/lib/ld-linux.so.3 --library-path /opt/myapp/lib/ <APP>
Any idea.
I cannot change my build environment
You sure can do that, in several different ways, such as:
Install a virtual machine configured to use older GLIBC, compile the app inside of the VM
Configure a chroot environment, with older GLIBC and toolchain
Build a linux-to-older GLIBC cross-compiler.
Maybe I can link new glibc version just with my application
That's possible, but more complicated. Details here.

How to make self-contained or java-bundled JavaFX application package for ARM

Where could I acquire a working copy of compiled JavaFX app bundled with JRE so I could execute this app on ARM linux?
or
How can I create my JavaFX app + JRE bundle that would work on ARM Linux
Best case scenario for me would be to be ableto create copy-paste enabled folder tree or single executable file..
I do understand that this question might be too vague, but I desperately need some help on this. I have spent more than 6 evenings + 2 nights searching how to get a compiled JavaFX application ( .jar file) to run on ARM linux on UDOO (RPi2-like) board.
I have been more of an .NET guy a long time, and now I had to make WPF-like rich UX app that would run on this specific hardware, and I chose JavaFX due to its likeliness to WPF. It does run fine on my desktop PCs but I absolutely can not get it to run on ARM linux.
I am trying to do this too. Did you get it working? My solution is to package the JAR using tools provided by IntelliJ or any other IDE, include the JRE in a folder within the app, then write a script that invokes the JAR from the included JRE like:
lib/jre/bin/java -jar runthis.jar
I also tried it for two days now but didn't get it to work.
I use maven in combination with the javafx-maven-plugin to build native installers of an application.
At first I got the error, that the javafx-ant.jar tools are missing:
[ERROR] Failed to execute goal build-jar(create-jfxjar) on project foo:
Execution create-jfxjar of goal build-jar failed: Plugin javafx-maven-plugin or
one of its dependencies could not be resolved: Could not find artifact
javafx-packager:javafx-packager:jar:1.8.0 at specified path
/opt/jdk1.8.0/jre/../lib/ant-javafx.jar
Then I found the ant-javafx.jar in a windows JDK but then another error was reported that linux is not supported with this one. Ok so I downloaded a linux JDK and used that ant-javafx.jar. Now it could build and create a *.deb file successfully!
However when I started the installer it failed with a message and when checking the log (/var/log/apt/term.log)
Log started: 2021-04-29 00:40:01
dpkg: Error creating archive
/home/pi/Foo/target/jfx/native/foo.deb (--unpack):
package architecture (amd64) does not match system (armhf)
Then I did research and found the following mailing list entry:
[...] the Java Packager isn’t shipped with any ARM builds that I’m aware of. Currently it is only for X86 Windows, Linux and Mac. [...]
This basically explains it: The packager doesn't work on ARM for now. Maybe we should write the guy to encurage him to add it...
=> So for now I work with the jar directly.

CefGlue Running Examples on Linux

I've downloaded the latest version of CefGlue as well as the corresponding CEF binaries. I can get the demo examples to run fine in Windows, but the Linux GtkSharp demo does not run. It compiles fine under MonoDevelop on my Linux box but throws a DllNotFoundException: libcef
I've put the libcef.so in the executable directory as well as running ldconfig in the CEF release directory.
I'm new to Linux, so there's probably something simple and obvious that I'm missing.
The answers on this Bitbucket issue explain how the library path resolution can be fixed.
Unfortunately, this Bitcuket issue goes on to explain that Linux support is broken and the maintainer Dmitry says that he doesn't have the resources to support linux.

node.js + azure sql database

i'm struggling with the microsoft's node.js sql client.
I've installed it, without any errors using the guide at the github page, and everything works perfect locally. but when i use git to push it to azure, i get the error:
Native sqlserver module not found. Did you remember to run node-gyp configure build?
Application has thrown an uncaught exception and is terminated:
Error: Unable to load shared library C:\DWASFiles\Sites\bid110\VirtualDirectory0\site\wwwroot\node_modules\msnodesql\build\Release\sqlserver.node
I've also looked at this guide, even though some parts is outdated. I've also cheked that all the files are uploaded to the server. the node_modules/msnodesql and node_modules\msnodesql\build\Release\ folders with all its subfolders are there as well.
Any ideas what I might be doing wrong here?
Please check if your msnodesql is x86 or x64. If your local machine was x64 with x64 Python, and you installed msnodesql through npm install msnodesql then you should get a x64 version. But on Windows Azure Web Site your application will be running in x86, so you might need to a x86 version of msnodesql. You can install through NPM from a x86 machine, or you can download the compiled version at http://www.microsoft.com/en-us/download/details.aspx?id=29995
I also have a blog post about this hope that helps. http://blogs.shaunxu.me/archive/2012/09/18/node.js-adventure---when-node.js-meets-windows-azure.aspx

Resources