esrf-bliss / Lima-camera-pilatus

Lima pilatus plugin
lima.blissgarden.org
GNU General Public License v3.0
0 stars 9 forks source link

install on pilatus with old CentOS 6.5 #7

Closed PhilLAL closed 1 year ago

PhilLAL commented 1 year ago

Hello, we have this Pilatus model

Here are some informations about the OS installed:

[root@decXXXX ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:    6.5
Codename:   Final
[root@decXXXX ~]# uname -a
Linux dec1641 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

We tried to install Lima on it following those steps.

  1. installing conda I tried to install Lima DS, so I needed to install conda. I tried several versions:
    • Miniconda >=4.11, I got
      wget -c --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh
      sh Miniconda3-py39_4.12.0-Linux-x86_64.sh
      WARNING:
      The installer is not compatible with the version of the Linux distribution
      installed on your system. The version of GLIBC is no longer supported.
      Found version 2.12, which is less than 2.17
      Aborting installation.

      (same for py38 or py37)

  1. installing Lima after installing Miniconda 4.9.2
    
    wget -c --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
    sh ./Miniconda3-py39_4.9.2-Linux-x86_64.sh
    # [...]
    (base) det@dec1641:~> conda install -c esrf-bcu lima-camera-pilatus-tango
    Collecting package metadata (current_repodata.json): done
    Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
    Collecting package metadata (repodata.json): done
    Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    Solving environment: | 
    Found conflicts! Looking for incompatible packages.
    This can take several minutes.  Press CTRL-C to abort.
    failed                                                                                                                                  

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your system:

Your installed version is: 2.12

(same for py38 and py37)

At this point, my understanding is that the version of conda does not influence the result and I need a recent version of glibc.

Trying to update glibc, I searched for the available versions:

det@dec1641:~> yum info glibc Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile epel/metalink | 4.2 kB 00:00

Name : glibc Arch : x86_64 Version : 2.12 Release : 1.132.el6 Size : 12 M Repo : installed From repo : anaconda-CentOS-201311291202.x86_64 Summary : The GNU libc libraries URL : http://sources.redhat.com/glibc/ License : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ Description : The glibc package contains standard libraries which are used by : multiple programs on the system. In order to save disk space and : memory, as well as to make upgrading easier, common system code is : kept in one place and shared between programs. This particular package : contains the most important sets of shared libraries: the standard C : library and the standard math library. Without these two libraries, a : Linux system will not function.

No version 2.17 seems available in CentOS 6.5 repositories.

I found https://gist.github.com/harv/f86690fcad94f655906ee9e37c85b174 so I give it a try, but I got an error of dependencies

root@dec1641 x86_64]# sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm attention: glibc-2.17-55.el6.x86_64.rpm: Entête V3 RSA/SHA1 Signature, key ID 73ec361c: NOKEY erreur: Dépendances requises: glibc-common = 2.12-1.132.el6 est nécessaire pour (déjà installé) glibc-2.12-1.132.el6.i686

it seems glibc 2.17 x86-64 is in conflict with glibc-common 2.12 i686

So I forced installation with

sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm --force --nodeps attention: glibc-2.17-55.el6.x86_64.rpm: Entête V3 RSA/SHA1 Signature, key ID 73ec361c: NOKEY Préparation... ########################################### [100%] 1:glibc-common ########################################### [ 25%] /usr/sbin/build-locale-archive: /lib64/libc.so.6: version GLIBC_2.14' not found (required by /usr/sbin/build-locale-archive) /usr/sbin/build-locale-archive: /lib64/libc.so.6: versionGLIBC_2.14' not found (required by /usr/sbin/build-locale-archive) 2:glibc ########################################### [ 50%] 3:glibc-headers ########################################### [ 75%] 4:glibc-devel ########################################### [100%]

Output is not very conforting and if i tried again installing a Miniconda version (Miniconda3-py39_4.12.0-Linux-x86_64.sh), it does not get an error :

(base) det@dec1641:~> conda install -c esrf-bcu lima-camera-pilatus-tango Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: - Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your system:

Your installed version is: 2.17

I got the same error when installing Miniconda3-py39_4.9.2-Linux-x86_64.sh

sudo rpm -ivh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm --force --nodeps attention: glibc-2.17-55.el6.x86_64.rpm: Entête V3 RSA/SHA1 Signature, key ID 73ec361c: NOKEY Préparation... ########################################### [100%] 1:glibc-common ########################################### [ 25%] 2:glibc ########################################### [ 50%] 3:glibc-headers ########################################### [ 75%] 4:glibc-devel ########################################### [100%]

and then tried again to install lima:

(base) det@dec1641:~> conda install -c esrf-bcu lima-camera-pilatus-tango Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: - Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your system:

Your installed version is: 2.17

My understanding is that last lima-pilatus can't be installed with last conda package version.

I also tried with the older package version available (1.8.0):

conda install -c esrf-bcu lima-camera-pilatus-tango=1.8.0 Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: - Found conflicts! Looking for incompatible packages. This can take several minutes. Press CTRL-C to abort. failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your system:

Your installed version is: 2.17


It failed also.

Does someone have a Pilatus to test installation and confirm it does not install anymore?
If so is it possible to push back an older package which work with glibc 2.12?
If someone succeed into installing Pilatus, could you let me know how to do this?

Regards.
laurent-claustre commented 1 year ago

Salut Philippe, changing the libc on your computer installation is a bit aggressive. We have a pilatus computer running centos 6.10, installed 2 years ago, and I did need to get miniconda3 version 4.8.2. And this is a list of the lima conda packages installed.
Do not forget to specify the conda-forge channel when you install, main is no longer supported by miniconda.

Other solution I deal with, is to install the Lima server (conda and ,,,) on an other computer where you have newer OS and libc. For this solution you will need to create a ramdisk on the new computer and to mount this file system on your pilatus computer as /lima_data, in order to make camserver saving files on the remote disk and having lima server reading the image. I did that for 3 pilatus detectors at ESRF, with old OS.

PhilLAL commented 1 year ago

Hi @laurent-claustre, sorry for the delay, we encountered a network issue which forbid me to continue the tests. Your advice was precious and I succeed into installing Pilatus package, you were right since the channel conda-forge was missing!

wget --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh
sh ./Miniconda3-py37_4.8.2-Linux-x86_64.sh
conda install -c esrf-bcu -c conda-forge lima-camera-pilatus-tango

Note: Miniconda (or anaconda) 37 is mandatory, 38 does not work (see below).

wget --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh
sh ./Miniconda3-py38_4.8.2-Linux-x86_64.sh
conda install -c esrf-bcu -c conda-forge lima-camera-pilatus-tango
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: \ 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                   

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - lima-camera-pilatus-tango -> python[version='>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0']

Your python: python=3.8

If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

So the version Miniconda37 is mandatory.

PhilLAL commented 1 year ago

I continue following instructions in the doc but I got an error while installing mamba:

conda install mamba
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  - mamba

Current channels:

  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

I so continue using conda:

conda create -n pilatus -c conda-forge -c esrf-bcu lima-camera-pilatus-tango
# seems to succeed

In https://lima1.readthedocs.io/en/latest/camera/pilatus/doc/tango.html#properties I see that breakline add space in config_file which should be removed.

laurent-claustre commented 1 year ago

Salut Philippe, to install mamba choose the conda-forge channel: conda install mamba -c conda-forge

PhilLAL commented 1 year ago

Salut Laurent, thank you.

It seems my CentOS is too old. Here is my output

Traceback (most recent call last):
  File "/home/det/miniconda3/bin/mamba", line 7, in <module>
    from mamba.mamba import main
  File "/home/det/miniconda3/lib/python3.7/site-packages/mamba/mamba.py", line 53, in <module>
    import mamba.mamba_api as api
ImportError: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /home/det/miniconda3/lib/python3.7/site-packages/mamba/../../../libcurl.so.4)
PhilLAL commented 1 year ago

Hi @laurent-claustre I remember I did not confirmed the installation worked and I can also launch the device. Thank you again for your help!