Plone 5.2.11 install on AlmaLinux9 Error

I tried to install Plone5.2.11 on AlmaLinux9, REHL9 compatible, server

AlmaLinux9 comes with Python3.9, so I installed Python 3.8.16 manually.

$ sudo ./configure --enable-optimizations
$ sudo make
$ sudo make altinstall

Then tried to install Plone 5.2.11 unified installer.
But I got these error messages. How can I solve this issues.

Thank you,
Shigeo Honda


Installing Plone 5.2.11 at /home/james/sw-plone

Creating Python virtual environment.
Installing Python requirements in virtual environment.
Copying Plone-docs
Create buildout: standalone
Creating directory '/home/james/sw-plone/buildout-cache/eggs/cp38'.
Creating directory '/home/james/sw-plone/zinstance/parts'.
Creating directory '/home/james/sw-plone/zinstance/develop-eggs'.
root: Reading https://pypi.org/simple/plone.recipe.zope2instance/
Getting distribution for 'plone.recipe.zope2instance==6.11.0'.
root: Downloading https://files.pythonhosted.org/packages/0c/74/7cad4d09be4330d2baefb4cd87be45afa925073f6928119a7804a30569fa/plone.recipe.zope2instance-6.11.0-py2.py3-none-any.whl#sha256=785ac81ca55fd8e2843a7ef36cf6a2d382d5c86002e6660a8483b99daf9bc0b6
Got plone.recipe.zope2instance 6.11.0.
root: Reading https://pypi.org/simple/python-dotenv/
Getting distribution for 'python-dotenv==0.21.0'.
root: Downloading https://files.pythonhosted.org/packages/2d/10/ff4f2f5b2a420fd09e1331d63cc87cf4367c5745c0a4ce99cea92b1cbacb/python_dotenv-0.21.0-py3-none-any.whl#sha256=1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5
Got python-dotenv 0.21.0.
root: Reading https://pypi.org/simple/Paste/
Getting distribution for 'Paste==3.5.2'.
root: Downloading https://files.pythonhosted.org/packages/0c/f7/e965ace528fca3319fc6656f6ed6f6ba7c8f17fa32e588da1af291b95fd1/Paste-3.5.2-py2.py3-none-any.whl#sha256=fa0385cd07a50e6c679e735e44afef1e24ab1a0578eea501e45b8c2d38669b77
Got Paste 3.5.2.
root: Reading https://pypi.org/simple/waitress/
Getting distribution for 'waitress==2.1.2'.
root: Downloading https://files.pythonhosted.org/packages/58/6a/b4b5c582e04e837e4422cab6ec9de7fc10ca7ad7f4e370bb89d280d39552/waitress-2.1.2-py3-none-any.whl#sha256=7500c9625927c8ec60f54377d590f67b30c8e70ef4b8894214ac6e4cad233d2a
Got waitress 2.1.2.
root: Reading https://pypi.org/simple/ZEO/
Getting distribution for 'ZEO==5.3.0'.
root: Downloading https://files.pythonhosted.org/packages/67/c6/d88ac503460dd4fa34a6a7a32dfcc06b640007432446b6c87123febbdb8f/ZEO-5.3.0-py2.py3-none-any.whl#sha256=cec59227cb87d938b000a875fa0049433f7a3cc2f0452b95876c890f485584b6
Got ZEO 5.3.0.
root: Reading https://pypi.org/simple/ZODB/
Getting distribution for 'ZODB==5.8.0'.
root: Downloading https://files.pythonhosted.org/packages/14/bd/cd31dea7f39ef34c289f8e1fbbec51df1b611d0508bcb5fbd0c71c274085/ZODB-5.8.0-py2.py3-none-any.whl#sha256=52db974ae558cc184eb45f82d79f6fc75174158ef415742f9763224eab890d14
Got ZODB 5.8.0.
root: Reading https://pypi.org/simple/Zope/
Getting distribution for 'Zope==4.8.7'.
root: Downloading https://files.pythonhosted.org/packages/2a/2f/458d4fa950e860fdb88747dcab491bd38a72eeb971127103b34a46e8d70c/Zope-4.8.7-py2.py3-none-any.whl#sha256=d7e60ebcdddfecaaa21ec5ea13e916cb298a591578c6e2b8f027faafbe8f332f
Got Zope 4.8.7.
root: Reading https://pypi.org/simple/zc.recipe.egg/
Getting distribution for 'zc.recipe.egg==2.0.7'.
root: Downloading https://files.pythonhosted.org/packages/7a/6f/c6871e8490a153c3b44ac43e4a6552d802561a12b4780c7ea088a7ec5ff0/zc.recipe.egg-2.0.7.tar.gz#sha256=b89eb00979614e3584bb4e8431172b2345d00b983a04ebf00a401fb695f4e6d3
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [36 lines of output]
      /home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/dist.py:285: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).
        warnings.warn(msg, SetuptoolsDeprecationWarning)
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-req-build-65_bm8q1/setup.py", line 26, in <module>
          setup(
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 172, in setup
          ok = dist.parse_command_line()
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 475, in parse_command_line
          args = self._parse_command_opts(parser, args)
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/dist.py", line 1106, in _parse_command_opts
          nargs = _Distribution._parse_command_opts(self, parser, args)
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 534, in _parse_command_opts
          cmd_class = self.get_command_class(command)
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/dist.py", line 953, in get_command_class
          self.cmdclass[command] = cmdclass = ep.load()
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
          module = import_module(match.group('module'))
        File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
        File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
        File "<frozen importlib._bootstrap>", line 991, in _find_and_load
        File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
        File "<frozen importlib._bootstrap_external>", line 843, in exec_module
        File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 28, in <module>
          from .macosx_libfile import calculate_macosx_platform_tag
        File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/wheel/macosx_libfile.py", line 43, in <module>
          import ctypes
        File "/usr/local/lib/python3.8/ctypes/__init__.py", line 7, in <module>
          from _ctypes import Union, Structure, Array
      ModuleNotFoundError: No module named '_ctypes'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for zc.recipe.egg
  DEPRECATION: zc.recipe.egg was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. A possible replacement is to fix the wheel build issue reported above. Discussion can be found at https://github.com/pypa/pip/issues/8368
WARNING: You are using pip version 22.0.4; however, version 23.0 is available.
You should consider upgrading via the '/home/james/sw-plone/zinstance/bin/python3.8 -m pip install --upgrade pip' command.
No .dist-info directory after successful pip install of /home/james/sw-plone/buildout-cache/downloads/dist/zc.recipe.egg-2.0.7.tar.gz
While:
  Installing.
  Getting section instance.
  Initializing section instance.
  Installing recipe plone.recipe.zope2instance.
  Getting distribution for 'zc.recipe.egg==2.0.7'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 2252, in main
    getattr(buildout, command)(args)
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 740, in install
    [self[part]['recipe'] for part in install_parts]
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 740, in <listcomp>
    [self[part]['recipe'] for part in install_parts]
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 1373, in __getitem__
    options._initialize()
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 1481, in _initialize
    self.initialize()
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 1487, in initialize
    recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/buildout.py", line 1430, in _install_and_load
    zc.buildout.easy_install.install(
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 971, in install
    return installer.install(specs, working_set)
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 744, in install
    for dist in self._get_dist(req, ws):
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 581, in _get_dist
    dists = [_move_to_eggs_dir_and_compile(dist, self._dest)]
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 1916, in _move_to_eggs_dir_and_compile
    [tmp_loc] = call_pip_install(dist.location, tmp_dest)
  File "/home/james/sw-plone/zinstance/lib/python3.8/site-packages/zc/buildout/easy_install.py", line 1709, in call_pip_install
    distinfo_dir = [
IndexError: list index out of range
Buildout failed. Unable to continue

Installation has failed.
See the detailed installation log at /home/james/src/Plone-5.2.11-UnifiedInstaller-1.0/install.log
to determine the cause.```

Thank you for sharing your thoughts. I agree that we need to share stable installation method with other Plone users.

Finally, I could install Plone 5.2.11 on AlmaLinux9 successfully.

At first, install needed RPM packages

$ sudo dnf group install "Development Tools"
$ sudo dnf install -y openssl openssl-devel
$ sudo dnf install -y python3 python3-devel
$ sudo dnf install -y libjpeg-devel libxslt-devel readline-devel libjpeg-turbo-devel
$ sudo dnf install -y libffi libffi-devel

Download latest version of Python3.8 source code and install manually.

$ curl -OL https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tar.xz

$ sudo ./configure --enable-optimizations
$ sudo make
$ sudo make altinstall

python3.8 and libraries are installed in the path below.

/usr/local/bin/python3.8
/usr/local/lib/python3.8

Add those path to ~/.bashrc

PATH=$PATH:/usr/local/bin/
PATH=$PATH:/usr/local/lib/

Enable this path changes.

$ source ~/.bashrc

Download Plone 5.2.11.

$ curl -OL https://launchpad.net/plone/5.2/5.2.11/+download/Plone-5.2.11-UnifiedInstaller-1.0.tgz

Install like this.

./install.sh standalone --with-python=/usr/local/bin/python3.8 --target=(your destination)

I guess those steps are also worked with AlmaLinux8 and other RHEL 8/9 compatible distribution.

Thank you,
Shigeo Honda

1 Like