VMware Cloud Community
gpepus
Contributor
Contributor

Installer for a python based program but on RHEL 7 and 8, OpenSUSE 15.x, SUSE 15.x, Ubuntu 18.04+ (off line install -- understanding packaging in Install Builder)

Hi Guys,

I have a cross Linux (eventually to include Windows) COTS product.  Its python based and for the most part ALL the modules are identical.  However, for core OS modules such as c++, boost, python, python-dev and a few other packages each version of Linux has a slightly different packager for those modules. 

I am having a VERY hard time understanding how I tell Install Builder how to handle the different packages -- and also how I download the actual packages AND dependencies so that Install builder can package them up for each different Linux flavor?

YIKES .. can somebody take a few minutes and explain how I get a package and its dependencies downloaded for each Linux flavor?

Thanks a bunch in advance.

Labels (1)
5 Replies
michiel_dhont
Enthusiast
Enthusiast

Hi,

You can create a custom build using --setvars to create a different build for each flavor,

https://clients.bitrock.com/installbuilder/docs/installbuilder-userguide.html#custom_build_targets

To download packages you can use the <httpGet> action in the <preBuildActionList>

https://clients.bitrock.com/installbuilder/docs/installbuilder-userguide.html#_http_get_request

But we recommend to automate the downloading of the build packages in advance in your own build system and use InstallBuilder to package them.

Regards,

Michiel

gpepus
Contributor
Contributor

Thank you Michiel .. much appreciated. Sometimes you just need a little push in the right direction Smiley Happy

One other quick question -- if we are installing a Python 3 program is it recommended that we have the Python SetupTools and other pythonish things built to use within Install Builder's scripts? 

Reply
0 Kudos
michiel_dhont
Enthusiast
Enthusiast

Hi,

Yes, you can pack those tools and then run them using <runProgram>.

https://clients.bitrock.com/installbuilder/docs/installbuilder-userguide.html#_run_program

Regards,

Michiel

Reply
0 Kudos
gpepus
Contributor
Contributor

So I use runTools to run

-zypper

-python3 setup.py

-make or gmake

Do these steps get included in the progress bar count? 

I was contemplating using postinstaller.sh to run all these integrated installers but I would rather do it in the sequence within installbuilder's installer rather than in a shell script reflecting my original Dockerfile approach.  So I have been slowly getting my head around installBuilder trying to figure out if it accommodates my relatively complex install process.

Here is the process:

First I install all the OS level dependencies in either SUSE, RH, Centos, or Ubuntu using the core packaging tools for that platform (i.e. zypper, yum, dnf, apt etc)

After the OS level dependencies I install

1) python pip update

2) virtualenvwrapper

3) mkvirtualenv

4) all python libraries using pip

5) run a 3rd party library installer -- via an executible with a bunch of cli options

  a) includes running make, setup.py build, setup.py install

6) install a database - sqlcipher (a sqllite add-on) includes running config, make

7) install another 3rd party library install -- setup.py build, setup.py install

😎 setting environment variables

Reply
0 Kudos
michiel_dhont
Enthusiast
Enthusiast

Hi,

My apologies for the delay in my reply. Regarding your question, you can add those actions to a <showProgressDialog> which shows an indefinite progress bar during the execution of those actions:

         <showProgressDialog>

            <actionList>

                   ....

            </actionList>

         </showProgressDialog>

Regards,

Michiel

Reply
0 Kudos