[chimerax-users] Version 1.4 for CentOS 7?

Greg Couch gregc at cgl.ucsf.edu
Fri Jun 24 00:43:40 PDT 2022


Thank you Tru Huynh.  Just confirmed that adding:

> strip --remove-section=.note.ABI-tag /usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/PyQt6/Qt6/lib/libQt6Core.so.6
at the end of the %post section of the singularity definition file, 
makes ChimeraX startup.  In my limited testing, I was unable to find 
anything that broke.   libQt6Core.so.6 says it needs a 3.11 kernel and 
CentOS 7 comes with a 3.10 kernel.  So only a little lie :-)  I did 
change "singularity run" to "singularity run --bind /run/user/$(id -u)" 
to get rid of the startup error:

> QStandardPaths: error creating runtime directory '/run/user/1000' (No 
> such file or directory)

     HTH,

     Greg

On 6/17/2022 12:34 PM, Tru Huynh wrote:
> the second part...
> "strip --remove-section=.note.ABI-tag /usr/libexec/UCSF-ChimeraX/lib/python3.9/site-packages/PyQt6/Qt6/lib/libQt6Core.so.6"
> make the container runable on the default kernel :D
>
> ymmv
>
> Tru
> On Fri, Jun 17, 2022 at 11:30:54AM -0700, Greg Couch via ChimeraX-users wrote:
>> Yes, the singularity container will not work unless the CentOS 7
>> kernel is updated.  I don't understand why the runtime loader fails
>> to load the Qt shared library, but that is the symptom.
>>
>>      -- Greg
>>
>> On 6/17/2022 10:14 AM, Tru Huynh via ChimeraX-users wrote:
>>> 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://urldefense.com/v3/__https://groups.google.com/a/apptainer.org/g/discuss/c/qhP4eJrtelk/m/7pGjIDTmAgAJ__;!!JFdNOqOXpB6UZW0!-wwSx-GLADwP24bJXXb-wcg0CJ0WYV2FiC6r3xglMHwtz2Np2zrVewbxCc5w4g$
>>> pointing to https://urldefense.com/v3/__https://github.com/dnschneid/crouton/wiki/Fix-error-while-loading-shared-libraries:-libQt5Core.so.5__;!!JFdNOqOXpB6UZW0!-wwSx-GLADwP24bJXXb-wcg0CJ0WYV2FiC6r3xglMHwtz2Np2zrVewZFSPLcFg$
>>> ```
>>> 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.
>>>>
>>> ...
>>>
>> _______________________________________________
>> ChimeraX-users mailing list
>> ChimeraX-users at cgl.ucsf.edu
>> Manage subscription:
>> https://urldefense.com/v3/__https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users__;!!JFdNOqOXpB6UZW0!-wwSx-GLADwP24bJXXb-wcg0CJ0WYV2FiC6r3xglMHwtz2Np2zrVewanLPFwlA$


More information about the ChimeraX-users mailing list