Plone 5.2.4 and openSUSE vs Ubuntu

Plone 5.2.4 and openSUSE vs Ubuntu

What is different?

I was able to install Plone 5.2.4 this week on Ubuntu 20.04. It was
pretty straight forward.

  • root@ubuntu2004-plone:/opt/plone/zinstance# sudo -u plone -H
    bin/buildout
    Unused options for buildout: 'deprecation-warnings'.
    Updating instance.
    Updating repozo.
    Updating backup.
    Updating zopescripts.
    Updating zopepy.
    Updating unifiedinstaller.
    root@ubuntu2004-plone:/opt/plone/zinstance# bin/plonectl status
    instance: daemon manager not running
    root@ubuntu2004-plone:/opt/plone/zinstance# bin/plonectl start
    instance: .
    daemon process started, pid=1429
    root@ubuntu2004-plone:/opt/plone/zinstance# bin/plonectl status
    instance: program running; pid=1429

However, for homogeneity in our infrastructure I've pursued accomplishing the same on opensuse15.3. There seems to be a difference in how Debian and SUSE do networking. I'm enthusiastic to learn this delta.

So far, I've hacked the /helper_scripts/main_install_script.sh to insert some text that at least allows the install to complete.

Original line:

  • $SUDO "${PY_HOME}/bin/pip" install -r
    "${WORKDIR}/base_skeleton/requirements.txt" >> "$INSTALL_LOG" 2>&1

Modified line:

Now on openSUSE 15.3, the Plone buildout fails because it cannot reach the network. This very same buildout did not fail in Ubuntu.…

I prepared both the Ubuntu and openSUSE systems (i.e. dependencies) according to Plone 5 documentation. The Ubuntu 20.04 and openSUSE 15.3 systems are both libvirt systems on the same host, so their networking options are identical. A corporate proxy and ssl cert have been installed on both the host system, and each VM.

Any light shed on installing Plone 5.2.4 on openSUSE 15.3 appreciated.

To fix pip network issues in a more general way without having to change specific installation files you can create a ~/.config/pip/pip.conf file:

[global]
timeout = 20
index-url = http://eggproxy.my.internal.network/+simple/
trusted-host = eggproxy.my.internal.network

But the diffference for network access between Ubuntu and OpenSuse is still strange. I'd first debug this without looking at the Plone installation, create an empty virtualenv on OpenSuse and try to bin/pip install some packages like Django and verify that that works.

Also a bit awkward that the universal installer in this case is depending on access to dist.plone.org. Except for pre-alpha 6.0 releases that are now being pilotedand only released on dist.plone.org all eggs/modules for Plone 5.x should be available on pypi.

Thanks Fred! Your troubleshooting steps were spot on!

The obstacle was starting with Python 2.7, then moving up to Python 3.9.

a key tip from stackoverflow:

After Python 3.6, when using the proxy, the parameter value of proxies in `requests.get(url=url, headers=headers, proxies=...)` changed.

Before 3.6 includes, `proxies={'https': '127.0.0.1:8080'}` or `proxies={'http':'127.0.0.1:8080'}` is fine, but this type of dictionary is not suitable for Python 3.7 and above.

In Python3.7 and above, you must add `http://` or `https://` in front of ip:port, that is, `proxies={'http':'http://127.0.0.1:8080'}` or `proxies={'https':'https://127.0.0.1:8080'}`

Once I added the protocol to my pip.conf, everything worked :wink:

In hindsight I realize your esoteric inclusion of the protocol in your example.

Thanks again!

2 Likes