Exist: Trying to build package for conda

Created on 31 Jul 2018  路  15Comments  路  Source: eXist-db/exist

Hello, I'm trying to create a package for existdb in conda-forge. However, I'm facing some erros, please see
https://circleci.com/gh/conda-forge/staged-recipes/29270?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

The recipe could be found here:
https://github.com/conda-forge/staged-recipes/pull/6377/files

enhancement

Most helpful comment

@marcelotrevisani advanced installation options are covered by the documentation
to set the pw when running from jar
java -jar start.jar client -q -u admin -P '' -x 'sm:passwd("admin", "123")'

All 15 comments

is it about... building a docker image?
please be more specific as you cannot expect any one to know what "conda-forge" is.

@marcelotrevisani I have 0 experience with Conda so it would help if you could describe your use case.

the first thing that comes to my mind is here

Unable to find start.jar. EXIST_HOME = /home/conda/feedstock_root/build_artifacts/existdb_1533042637820/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/share/existdb
[ Console installation done ]

You are missing the $EXIST_HOME env variable, so exist fails to start since it doesn't know where the start jar is supposed to be. You could add one via answers.txt

see #1836

You might need to also check if JAVA_HOME is actually pointing to the somewhere sensible, after the installation has finished

If I am understanding all this correctly, the code in these two repos might be helpful:

  • Makefile walks through the installer in a similar fashion like you do (also setting EXIST_HOME in the process)
  • the puppet module

for an alternative route of scripted build and install exist see our new docker images

I don't know anything about conda, but I am wondering if you really want to use the Jar installer? It might be easier just to use the tar.gz or tar.bz2 distribution we provide, then you only have to unzip it rather than run the installer.

huumm... good to know, I will try that! Thanks!

Just one thing, I was able to create the package in conda-forge. However if I try to execute the server using

java -jar $CONDA_PREFIX/share/existdb/start.jar jetty

it will give me an error:

ERROR: exist.home could not be autodetected, bailing out.

However, if I go to the folder I will be able to start the server

cd $CONDA_PREFIX/share/existdb
java -jar start.jar jetty

How do I fix it?

how did you set exist.home ?

I also tried to do

export EXIST_HOME=$CONDA_PREFIX/share/existdb/
echo $EXIST_HOME
/home/trevisan/miniconda3/envs/karabo-test/share/existdb/

java -jar $CONDA_PREFIX/share/existdb/start.jar
ERROR: exist.home could not be autodetected, bailing out.

I also tried

java -jar $CONDA_PREFIX/share/existdb/start.jar -Dexist.home=$CONDA_PREFIX/share/existdb/

and I had the same error

@marcelotrevisani You don't need the trailing '/'.

export is the way to set it.

If you want to set it via the Java command, I think the order is important, it should be:

java -Dexist.home=$CONDA_PREFIX/share/existdb -jar $CONDA_PREFIX/share/existdb/start.jar 

It would be better to set that through environment variable. However, I tried

export EXIST_HOME=$CONDA_PREFIX/share/existdb

and I saw the same error. Using the java variable as you explained it worked.

Well I can't comment on your environment but in a standard linux Shell setting that EXIST_HOME environment works very well on many platforms.

It's a normal env, as you can see the variable is being recognized properly

echo $EXIST_HOME
/home/trevisan/miniconda3/envs/karabo-test/share/existdb

However, for some reason the existdb is not being able to recognize that

P.S.: You should see indications about the paths actually used by exist in the exist.logs

One more thing, How do I install using the -console -options and set the admin password inside of the file which I will pass to the existdb?
Which variable do I have to set?

@marcelotrevisani advanced installation options are covered by the documentation
to set the pw when running from jar
java -jar start.jar client -q -u admin -P '' -x 'sm:passwd("admin", "123")'

Was this page helpful?
0 / 5 - 0 ratings

Related issues

joewiz picture joewiz  路  3Comments

mathias-goebel picture mathias-goebel  路  4Comments

wolfgangmm picture wolfgangmm  路  3Comments

opax picture opax  路  3Comments

lguariento picture lguariento  路  5Comments