Switch to: V9V8V7V6V5

Deployment of V4RB Linux Application

To prepare your application for the deployment on the user computer, you have two choices:

  1. install vcomponents folder into your application folder.
  2. install vcomponents folder into the folder /usr/local/lib/vcomponents (can be other name)

Standalone Application Package

Everything will be inside of a single application folder.

This way is the most preferable because you can install/uninstall an application as a single folder on the computer of your user.

On default Xojo compiles the application and all supporting libraries into the separate folder, for example, “MyApplication”:

$ tree MyApplication
MyApplication
├── MyApplication
├── MyApplication Libs
│   ├── libc++.so.1
│   ├── libGZip.so
│   ├── libRBCrypto.so
│   ├── libRBInternetEncodings.so
│   ├── libRBRegEx.so
│   ├── libSQLiteDatabase.so
│   ├── libSSLSocket.so
│   ├── v4rb_release.so
│   └── XojoConsoleFramework32.so
└── MyApplication Resources
    ├── appicon128.png
    ├── appicon256.png
    ├── en.UTF-8
    │   └── LC_MESSAGES
    │       └── localizable.mo
    ├── favicon@2x.ico
    ├── favicon.ico
    ├── homescreen120.png
    ├── homescreen152.png
    ├── homescreen60.png
    └── homescreen76.png

To deploy it to the user computer you should do the following steps:

  • copy the contents of the vcomponents_32 (vcomponents_64 for 64-bit application) to the “MyApplication Libs” folder.
  • copy entire vresources folder to the “MyApplication” folder.

As a result, you should have the following folder structure:

$ tree MyApplication
MyApplication
├── MyApplication
├── MyApplication Libs
│   ├── libc++.so.1
│   ├── libGZip.so
│   ├── libicudata.so -> libicudata.so.54
│   ├── libicudata.so.54
│   ├── libicui18n.so -> libicui18n.so.54
│   ├── libicui18n.so.54
│   ├── libicuio.so -> libicuio.so.54
│   ├── libicuio.so.54
│   ├── libicuuc.so -> libicuuc.so.54
│   ├── libicuuc.so.54
│   ├── libRBCrypto.so
│   ├── libRBInternetEncodings.so
│   ├── libRBRegEx.so
│   ├── libSQLiteDatabase.so
│   ├── libSSLSocket.so
│   ├── libvclient_release_x86.so -> libvclient_release_x86.so.750
│   ├── libvclient_release_x86.so.750
│   ├── libvkernel_release_x86.so -> libvkernel_release_x86.so.750
│   ├── libvkernel_release_x86.so.750
│   ├── libvreport_release_x86.so -> libvreport_release_x86.so.750
│   ├── libvreport_release_x86.so.750
│   ├── libvshared_release_x86.so -> libvshared_release_x86.so.750
│   ├── libvshared_release_x86.so.750
│   ├── v4rb_release.so
│   └── XojoConsoleFramework32.so
├── MyApplication Resources
│   ├── appicon128.png
│   ├── appicon256.png
│   ├── en.UTF-8
│   │   └── LC_MESSAGES
│   │       └── localizable.mo
│   ├── favicon@2x.ico
│   ├── favicon.ico
│   ├── homescreen120.png
│   ├── homescreen152.png
│   ├── homescreen60.png
│   └── homescreen76.png
└── vresources
    ├── en
    │   ├── kernel_errors.xml
    │   └── sql_errors.xml
    ├── ru
    │   ├── kernel_errors.xml
    │   └── sql_errors.xml
    └── xsl
        ├── pic
        │   ├── BS.GIF
        │   ├── DC.GIF
        │   ├── EMPL.GIF
        │   └── GRP.GIF
        ├── visualization1.xsl
        └── visualization2.xsl

You can find vcomponents_32, vcomponents_64 and vresources folders at '/opt/V4RB' on Linux. If you're compiling on Windows or Mac system you can find appropriate vcomponents in the downloads folder (e.g. http://valentina-db.com/download/release/lin_64/vcomponents_64.zip).

Now you can distribute this “MyApplication” folder.

Symbolic links (followed by → in the tree) to the libraries in vcomponents folders are necessary for proper application functioning. If they are lost during transfer to the target machine you should recreate them yourself.

vcomponents at System Level

If you develop and deploy a family of applications that can/should be installed on the same user computer, then it is a good idea to put vcomponents only once. It is possible if this folder is at path “/usr/local/lib/vcomponents”, where any application can find it.

NOTE: This is the same as you have it now during the development.

For this scenario you should not do anything special, just make sure that your installer installs vcomponents there.

Your installer should have something as the following script:

#!/bin/sh
 
# path where libs will be installed
LIB_PATH=/usr/local/lib/vcomponents
 
# copy libs
cp -R -d vcomponents $LIB_PATH
 
# installing shared libs
echo $LIB_PATH > /etc/ld.so.config.d/valentina.conf
ldconfig