[chimerax-users] Version 1.4 for CentOS 7?

Tru Huynh tru at pasteur.fr
Fri Jun 17 10:14:31 PDT 2022


Hello Greg,

Thanks for sharing the singularity recipe!

The only issue I have, is that the container will not run on our regular kernel
as you mentionned below (1) although the error message is misleading!

[tru at sillage ~]$ singularity run /home/tru/singularity.d/containers/r8-chimerax-pristine-2022-06-17-1833.sif --nogui
Traceback (most recent call last):
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 490, in get_module
    m = importlib.import_module(self.package_name)
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/save_command/__init__.py", line 101, in <module>
    from .options import SaveModelOptionWidget
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/save_command/options.py", line 14, in <module>
    from Qt.QtWidgets import QFrame, QHBoxLayout, QLabel
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/Qt/__init__.py", line 64, in <module>
    from PyQt6.QtCore import PYQT_VERSION_STR as PYQT6_VERSION
ImportError: libQt6Core.so.6: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 375, in init_manager
    api = self._get_api(session.logger)
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 509, in _get_api
    m = self.get_module()
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 492, in get_module
    raise ToolshedError("Error importing bundle %s's module: %s" % (self.name, str(e)))
chimerax.core.toolshed.ToolshedError: Error importing bundle ChimeraX-SaveCommand's module: libQt6Core.so.6: cannot open shared object file: No such file or directory

Bundle 'ChimeraX-SaveCommand' custom initialization failed
UCSF ChimeraX version: 1.4 (2022-06-03)
© 2016-2022 Regents of the University of California.  All rights reserved.
cmd> 

There is a "hack" mentionned in the apptainer mailing list
https://groups.google.com/a/apptainer.org/g/discuss/c/qhP4eJrtelk/m/7pGjIDTmAgAJ
pointing to https://github.com/dnschneid/crouton/wiki/Fix-error-while-loading-shared-libraries:-libQt5Core.so.5
```
strip --remove-section=.note.ABI-tag /usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/PyQt6/Qt6/lib/libQt6Core.so.6
```
for the el8 rpm, which makes chimerax 1.4 starting fine on 3.10.0-1160.66.1.el7.x86_64 :D

so adding to you recipe:
```
yum -y install binutils && strip --remove-section=.note.ABI-tag /usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/PyQt6/Qt6/lib/libQt6Core.so.6
```
seems to yield a workable solution!

[tru at sillage ~]$ singularity run /home/tru/singularity.d/containers/r8-chimerax-2022-06-17-1750.sif --nogui
WARNING: CPU random generator seem to be failing, disabling hardware random number generation
WARNING: RDRND generated: 0xffffffff 0xffffffff 0xffffffff 0xffffffff
UCSF ChimeraX version: 1.4 (2022-06-03)
© 2016-2022 Regents of the University of California.  All rights reserved.
cmd> 

ymmv, I have only done minimal testing. 

Best regards

Tru

On Thu, Jun 16, 2022 at 10:41:46AM -0700, Greg Couch via ChimeraX-users wrote:
>    I'm adding this for completeness, but this is not a practical solution:
> 
>    There is a way of getting ChimeraX 1.4 to run on CentOS 7 that we do NOT
>    support.  There are two steps required: (1) you have to update the kernel
>    to a newer version.  That can be done with the elrepo-kernel repository. 
>    And (2) you need a newer versions of various system libraries.  That can
>    be done with by using a CentOS/RHEL 8 or 9 singularity container that has
>    the same graphics driver as the CentOS 7 system and has the corresponding
>    ChimeraX rpm installed.
> 
>    So, unless it is your personal computer, that you could update to
>    CentOS/RHEL 8 or 9 anyway, it is extremely unlikely that the system
>    administrators will be willing to change to an unsupported kernel.  But
>    just in case, an example singularity definition file is attached.  I was
>    testing in a virtual machine using VMware Workstation, which is why the
>    VMware graphics driver is installed.  Once you have the singularity
>    container, I'd recommend making a chimerax alias.  For example:
> 
>        alias chimerax="singularity run /PATH/chimerax.el8.sil"
> 
>    So there you have it.  It is technically possible,  And don't forgot to
>    regularly regenerate the singularity container to pick up security fixes.
> 
...

-- 
Tru Huynh (PhD) | mailto:tru at pasteur.fr | tel +33 1 45 68 87 37
https://research.pasteur.fr/en/team/structural-bioinformatics/
Institut Pasteur, 25-28 rue du Docteur Roux, 75724 Paris CEDEX 15 France  


More information about the ChimeraX-users mailing list