Last Updated on 26 August 2021 by Roberto De Pedrini
IBM i open source environment installation:
From version 184.108.40.206 of the Access Client Solutions, the Open source package management is available which allows you to manage the installation and update of the open source packages available for IBM i from 7.2 onwards. From the ACS main window, from the Tools menu choose the Open Source Package Manager item.
The first time you try to open this item on an IBM i server, you are prompted to install the open source environment and you must continue by clicking on YES YES.
Only then is the package management window shown, divided into 3 tabs: packages installed, packages installed with available updates, packages available on the IBM i repository that can be installed.
This feature requires the service to be active SSHD -> Port 22.
If it is not started on IBM i you can run the command STRTCPSVR SERVER (* SSHD).
If the installation finishes successfully, you should be able to upgrade, and install the open source packages directly from the ACS GUI, but unfortunately this is not always the case.
In my case for example, after installing the open source environment on one of my IBM i servers, I was unable in any way to install update any package via the ACS GUI and everything ended with the following error: cannot retrieve repository metadata (repond.xml)
At this point, I decide to google and then interface with the IBM technical support who recommends me to try to change the baseUrl of the IBM i repository.
- After opening the /QOpenSys/etc/yum/repos.d/ibm.repo in edit mode, we can change the baseUrl for the repository
- Then, from a 5250 session, type WRKLNK ‘/QOpenSys/etc/yum/repos.d/ibm.repo’ and change the baseUrl in one of two ways:
- baseurl = http://public.dhe.ibm.com/software/ibmi/products/pase/rpms/repo
- baseurl = ftp://public.dhe.ibm.com/software/ibmi/products/pase/rpms/repo
Press F3 twice to save and test the connection to the Open Source Package Manager again.
Once this is done, the problem persists and I try to go deeper and deeper, verifying that the IBM i server did not have any outgoing limits behind firewalls or the like. The counter-proof, I got it, when I decide to activate SSH tunneling from ACS, but in vain.
After a lot of arguing with my GUI, I decide to open from a 5250 session, a QP2TERM session and in order I execute the following commands:
yum update yum clean metadata yum install python3 -> (I install any package to verify reachability and its download from the repository)
Everything starts to take shape, and I realize that it is a problem related only to the GUI, because the packages are installed correctly and I can use them without any problem. So, the IBM i server, has no output limit and in this regard, not happy, I try again at this point to run the installation of a package from the GUI, getting a much more detailed error message that deserves to be explored:
ERROR: getaddrinfo () thread failed to start
Below is the explanation that I was able to find:
IBM I PASE provides a version of cUrl that speeds up common tasks such as DNS lookups by using additional threads. When threading support is not available, however, cUrl fails -> The getaddrinfo () thread was not started.
So … to be able to install packages from the GUI without problems, I had to set threading support before calling a QSHELL or QP2TERM session!
ADDENVVAR ENVVAR (QIBM_MULTI_THREADED) VALUE (Y) REPLACE (* YES)
After that, I tried to download an open source package from the ACS GUI again with success!
For more information, the official IBM documentation is available at the following link with all the parameters: https://www.ibm.com/support/pages/open-source-package-manager-acs-updatechange-repository-configuration-https-http-ftp