GrotjahnLab / surface_morphometrics

Morphometrics for Membrane Surfaces Segmented from Cryo-ET or other volumetric imaging.
GNU General Public License v3.0
18 stars 9 forks source link

centos7 support #7

Open bbarad opened 2 years ago

bbarad commented 2 years ago

Pymeshlab fails with a stdlibc++ error when everything is tested on centos-7. Since thats a very common cluster operating system we should evaluate workarounds. I don't have a centos-7 system to test on so my ability to work on this is limited.

bbarad commented 2 years ago

https://github.com/cnr-isti-vclab/PyMeshLab/issues/157 associated pymeshlab issue

truatpasteurdotfr commented 2 years ago

hi,

There is not much one can do: I gave up as QT5 requirement can not be fulfilled with the default QT5 (5.9.7-5.el7_9) and pymeshlab is listing 5.15... If that requirement could be relaxed I can give it another try.

The only workaround at the moment is either upgrading to RHEL8 clone or provide a singularity/docker container, to run on CentOS-7 machine.

bbarad commented 2 years ago

Thanks for following up with this! It probably is worth building a container for portability, since I suspect these kinds of issues may occur with other configurations as well. I created #10 to address this.

GenevieveBuckley commented 2 years ago

I have access to a Centos7 cluster (and in fact, do want to use surface-morphometrics there). I also saw the pymeshlab import error you describe.

It's still in-progress (I only started trying to get it working on Centos7 today/yesterday evening), but our IT team and I have some initial thoughts.

  1. The Qt problem can be resolved with conda install pyqt=5.15 -c conda-forge into a new, clean, python 3.9 environment. I was then able to install the remaining surface-morphometrics depencencies one by one.
    • Why couldn't I just install pyqt=5.15 into the existing conda env made from the environment.yml file? Good question. I have no idea why. When I tried that it installed an old version of pyqt, and absolutely refused to install or upgrade to pyqt=5.15 (with either pip or conda).
    • Why can't we just add a line to the environment file for pyqt=5.15? I got some kind of package conflict error when I tried this. However, it might be worth trying again.
  2. That fixed our Qt error, but then I was running into glib errors. Our IT team is going to try installing a newer version of glibc, and we hope that will fix things.
    • The error message I get when importing pymeshlab:ImportError: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by /home/genevieb/em95/miniconda/conda/envs/morphometrics-pyqt/lib/python3.9/site-packages/pymeshlab/[pmeshlab.cpython-39-x86_64-linux-gnu.so](http://pmeshlab.cpython-39-x86_64-linux-gnu.so/))
    • Other stuff I tried: randomly switching between the different gcc versions that were available on the system; and atttempting to conda install gcc-tools and similar stuff.
GenevieveBuckley commented 2 years ago

I'll let you know if/when I have more information about whether it works or not.

I can't say exactly when that will be. The IT team managing our cluster is understaffed right now, and in the middle of some planned hardware upgrades. I'm not sure where this falls in their priority queue.

GenevieveBuckley commented 2 years ago

tl;dr @truatpasteurdotfr you can conda install pyqt=5.15, which fixes one problem. But then you may also need to upgrade glibc as well.

GenevieveBuckley commented 2 years ago

IT has said that their attempt to upgrade glibc caused other things to break on the cluster. I don't know if this issue is specific to our cluster, or if people at other institutions would also run into the same problem.

They suggest building a singularity container instead (and might be able to provide assistance with that if needed).

bbarad commented 2 years ago

I'll take a look at finishing #10 tomorrow and perhaps we can discuss on Tuesday.

truatpasteurdotfr commented 2 years ago

@GenevieveBuckley upgrading glibc is no-go, that is why we use container for such purpose :P.

Kathir-66 commented 7 months ago

Hi, I would like to enquire whether there is a singularity container available? I tried to run the Surface morphometrics in centos 7 system and got the following error "version `GLIBC_2.25' not found". or is there an alternative approach to get over this issue? Thanks in advance

bbarad commented 7 months ago

I never prioritized this as we don't have any regular centos users at Scripps or OHSU - mostly we're migrating to ubuntu but some rocky. Its still important to me to support users at institutions with currently non-compatible OS's, so I'll take a pass at building a container next week.

truatpasteurdotfr commented 7 months ago

CentOS-7 is going EOL in a few months, it is not worth it imho. Time to move on...