I built my qt app so that all the Qt modules it uses are contained in the same directory as the executable. It works on the machine I used to build the app and I made sure to test this by removing those shared libraries everywhere except in the current directory of the app. Doing a ldd shows that its looking for those libraries in the current directory and putting the executable by itself fails to open the exectuable. So this is all good but when I transfer this directory to a host machine it still cant find those libraries. what could be the problem?
Is "." in the LD_LIBRARY_PATH on the 2nd machine?
Do you have the correct permissions on the library files?
Related
I'm just starting work on a website which I want to integrate Elasticsearch into. In my development environment, I will need to install ES so that I and other devs can quickly get started with minimum effort.
We're using ASP.NET for the website (so I know all the devs will be running the website on Windows) and Git for source control.
Previously, on a another project, I have followed the installation guide and simply source controlled the following folders in ES:
/bin/
/config/
/lib/
/modules/
please note, the above folders were for ES 2.x so may slightly differ from 5.x
I then created a simple .bat file which devs run when they start working on the project:
cd %~dp0\elastic\bin\
start elasticsearch
cd %~dp0
All the script does is run ES.
However, I wonder if I should even be source controlling these files. Perhaps it would be better if I had a .bat file which would download a fresh copy of ES when a developer starts work?
I'm currently working on a fork of the Meteor application Rocket Chat. I have a requirement to stand up the application for testing and development on an isolated network, so no internet access whatsoever.
I can't just get it running on a connected system and then copy it wholesale into the disconnected lab. Rather, I need to be able to check out a copy of the source code (from a local SCM) and then run Meteor, letting it perform all necessary compilation and dependency resolution on the fly.
Even though it is a huge kludge, I was hoping that I could just copy the .meteor folder from a working system directly onto the target system so that it would already have a cache of all required packages and therefore not need to reach out to any repositories. However, from what I have found, that only works for Meteor dependencies downloaded from Atmosphere.
Within Rocket Chat, there are several private packages (such as rocketchat-ldap) that have dependencies on NPM packages (in this case, ldapjs). When the application is run and these packages are built, the .npm folder in the user's home directory gets populated with those NPM packages. So, I tried to package that folder up along with the .meteor folder to accomplish the same task.
Unfortunately, when I tested it on the offline system, despite having the populated .npm folder, Meteor spits out the following error:
While building package rocketchat:ldap:
error: Can't install npm dependencies. Are you connected to the internet?
Obviously, I'm not connected - by design.
So, I am currently looking into Sinopia to stand up an NPM repository mirror on our local network that can host these dependencies. However, I have no idea how I'm supposed to point Meteor to the alternate server. The Meteor documentation includes information about the Npm.depends and Npm.requires directives, which the application uses, but I can't find anything about specifying a URL from which to find said packages.
Further, is it possible to do something similar with the Atmosphere packages? Or is copying the .meteor folder the only way? As in, is there some application out there that I can use to host some of the Meteor packages? Or am I going about this in the wrong way?
The solution I went with, which isn't as elegant as I'd hoped was the following:
First, I copied the .meteor folder from the user account of a "working" system (this contains the Meteor executable and all of the Meteor packages downloaded from Atmosphere) to the user account of the disconnected target system. This allowed the target system to run Meteor.
Second, the NPM packages in question were being downloaded directly into the private packages in the source, but the .gitignore file on the source was set to ignore the node_modules folders. So I altered that and then checked those node_modules folders into the source with the rest of the application.
So, for example, the application source included a /packages/rocketchat-ldap/.npm/package folder. Then, when the application was run using meteor, the associated NPM packages (such as ldapjs) would get downloaded directly into a node_modules folder in that folder structure, at which point the private packages could be built.
Now, the source code in Git already contains those downloaded packages, so when a copy is checked out onto the disconnected target system, there is no need to download them.
Fortunately, this did not increase the size of the source very much (just a few hundred kilobytes).
The result is that when running meteor to run the application on the target system, all dependencies are already in place, and no internet connection is required.
I have successfully translated a web app into a desktop app using TideSDK. I'm attempting to make this app run without being installed, so it may run from an external drive. On MAC this works just fine, I'm able able to "Package with Runtime", copy the app to an external drive, and the app works as expected.
When I package the app on Windows, it runs properly when tested inside the /packages folder, but when I copy it to an external drive, it does not appear to connect with the database or perform TideSDK operations ( Ti.UI.createMenu() ) that should be happening when I open my app.
Do Windows apps packaged with TideSDK have to be installed on the C:/ drive? Does the API expect the app to be on the C:/ drive in order to function? Is it possible to do what I am attempting to do on Windows via TideSDK?
Thanks!
hmmm. When u do a package with runtime in tideSDK for MAC
It actually generates two files
.app # .app file will have all its dependencies inside the same file(Actually .app file is also a folder, u can check this in editor like sublime)
.dmg file( Consider it like the compressed file .app)
However in windows, It generates one installer file and folder(named by app name)
This folder has its all the dependencies for the app to run.
So if you want to run the app you have to copy the complete folder
To answer your question,
At this point I don't think tideSDK has a feature to create a single .exe file that can run from external drive
I hope that helps.
Basically I've binded two files, one of them works fine because it can be run from any directory on the computer, however the other one requires .DLL dependencies found in the folder that the binded file is in... However when you run the binded file (made in express) it extracts both the programs to the %temp% folder, so the program cannot find the .DLL dependencies and therefore doesn't work.
Is there anyway to make it extract the files into the directory it's being ran from?
I already answered this question here:
Iexpress - extraction path
It's actually a bit of a pain, since the current directory while IExpress is running an install program is something like %temp%\IXP000.TMP and there's very little clue where it was originally started without reverse traversing the "process tree".
Having said that, the extraction location (eg %temp%\IXP000.TMP) should contain both the executable and the .dll there, so the DLL should be easy for the executable to find. You might check the usual suspects: (1) is long file name (LFN) support enabled? and (2) is the .dll actually in the archive? More info on another answer here:
jar file not found iexpress
I have an application that I deploy as an executable JAR file. Originally, this JAR file would communicate with a MySQL database but recently I have decided I want to go with SQLite instead. However, while testing I found that I could not access my SQLite database file when running my application from the JAR file.
I'm using the JDBC driver from the following website: http://zentus.com/sqlitejdbc/index.html
Is there a workaround I have to do?
The driver works great while testing in my Eclipse environment, but doesn't seem to work standalone in a JAR file. Any help would be greatly appreciated.
Well, here is such term as "working directory". It is the directory from where your application is started. So, every "relative" path in your application is usually relative to this "working directory".
Now let's return to your problem. When you set the path to a file you can make it either relative, absolute or relative to the JAR inner directory root, depending how you do create the file and set the path.
So, just recheck how paths are set in your application and try to use the relative one, running you application from the appropriate directory.