higlass-server icon indicating copy to clipboard operation
higlass-server copied to clipboard

Installation errors on Red Hat 8

Open astrophys opened this issue 3 years ago • 7 comments

I'm trying to install higlass-server on a Red Hat 8 system.

Steps :

  1. I cloned the most recent version of this repo (e.g. cbfe79fe)
  2. Installed Miniconda
  3. Sourced /path/to/miniconda/etc/profile.d/conda.sh
  4. Ran conda env create -f environment.yml

It failed with about 4000 lines of output (see attached).

The first 'useful' error I see is something like this :

      gcc: _configtest.c
      _configtest.c:1:5: warning: conflicting types for built-in function ‘exp’ [-Wbuiltin-declaration-mismatch]
       int exp (void);
           ^~~
      gcc -pthread -B /export/apps/opt/higlass-server/1.14.8/en
[higlass-server-issue.txt](https://github.com/higlass/higlass-server/files/8893075/higlass-server-issue.txt)
vs/higlass-server/compiler_compat _configtest.o -o _configtest
      /export/apps/opt/higlass-server/1.14.8/envs/higlass-server/compiler_compat/ld: _configtest.o: in function `main':
      _configtest.c:(.text.startup+0x5): undefined reference to `exp'
      collect2: error: ld returned 1 exit status
      failure.

Question :

  1. What suggestions do you have in resolving this error?

astrophys avatar Jun 13 '22 17:06 astrophys

Oh my. That's going to be a doozy to figure out.

Before starting serious debugging, may I ask why you're trying to install higlass server rather than using the higlass docker container or higlass-manage?

pkerpedjiev avatar Jun 14 '22 13:06 pkerpedjiev

Great question. I'm on an HPC system, so Docker isn't applicable because I don't want to have to spawn Docker instances every time a user wants to run this. Instead of using Docker, I used Singularity. Now I do have some real questions about how this code will work in our environment.

Anyhow, I converted docker-context/Dockerfile to Singularity using spython. I then ended up having to make a few edits to the Singularity file (e.g. mkdir /higlass-server before the pip install -r requirements.txt).

At the end of the build, when it is setting up a conda environment, I got :

ERROR: Could not find a version that satisfies the requirement Pillow>=9.0.0 (from versions: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 2.0.0, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.3.0, 2.3.1, 2.3.2, 2.4.0, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.7.0, 2.8.0, 2.8.1, 2.8.2, 2.9.0, 3.0.0, 3.1.0rc1, 3.1.0, 3.1.1, 3.1.2, 3.2.0, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.4.0, 3.4.1, 3.4.2, 4.0.0, 4.1.0, 4.1.1, 4.2.0, 4.2.1, 4.3.0, 5.0.0, 5.1.0, 5.2.0, 5.3.0, 5.4.0, 5.4.1, 6.0.0, 6.1.0, 6.2.0, 6.2.1, 6.2.2, 7.0.0, 7.1.0, 7.1.1, 7.1.2, 7.2.0, 8.0.0, 8.0.1, 8.1.0, 8.1.1, 8.1.2, 8.2.0, 8.3.0, 8.3.1, 8.3.2, 8.4.0)
ERROR: No matching distribution found for Pillow>=9.0.0
FATAL:   While performing build: while running engine: exit status 1

I sort of assumed that there must have been some conflicting python library versions (which I guess would probably persist going the conda route). I tried both and they both failed, I figured I'd only ask about one to not make the discussion confusing. Attached is the output from my Singularity / docker install attempt and my modified Singularity (added '.txt' suffix so github would accept it) file.

Thanks singularity-install-fail.txt Singularity.txt

astrophys avatar Jun 14 '22 18:06 astrophys

Thanks for the explanation! That makes sense.

Is there a way to bump the Python version? It looks like it's downgraded to 3.6 in the log file.

Pillow>=9.0.0 definitely exists: https://pypi.org/project/Pillow/

Also, beware that that Dockerfile may be out of date. You may be better off using the one from this repo: https://github.com/higlass/higlass-docker/

That will give you the entire higlass distribution as a container rather than just the server portion.

pkerpedjiev avatar Jun 15 '22 13:06 pkerpedjiev

Thanks for the information. I managed to build (at least it completed without error) a singularity image from dockerhub, via

singularity build higlass.sif docker://higlass/higlass-docker:latest

It looks like there should be a higlass-manage command within the image, but I can't seem to find it within my singularity image.

Question :

  1. What is the path within the image to higlass-manage? I see a path /home/higlass/projects/higlass-server/, but it doesn't look like it is there.

astrophys avatar Jun 17 '22 12:06 astrophys

higlass-manage is a separate package that interacts with the Docker container. You can find it here: https://github.com/higlass/higlass-manage/

pkerpedjiev avatar Jun 17 '22 13:06 pkerpedjiev

Could I install higlass-manage within the Docker container, or would that be ill advised?

astrophys avatar Jun 21 '22 11:06 astrophys

I don't see any reason why you couldn't.

pkerpedjiev avatar Jun 23 '22 01:06 pkerpedjiev