Software updates for open source packages are done through the yum
utility. You can use yum
directly, or if you prefer, through the Open Source Package Management screen in Access Client Solutions (ACS).
Yum and Environment
Yum will install any dependencies, including additional updates as needed to satisfy the requirements for a package. This guide will assume you have Yum and the environment for it installed. See How to Set Up the IBM i Open Source Environment if you haven’t.
Updating through ACS
Note that the package management in ACS will require SSH to be running on your IBM i. See the page on How to Configure and Use SSH on IBM i. From the main window of ACS, select Open Source Package Management from the Tools menu, or the main window, depending on your version of ACS.
A window will pop up for authentication information or connecting to your IBM i over SSH. Either a password or SSH key (in OpenSSH format; you must convert PuTTY format keys with PuTTYgen. See the page on SSH for how to convert.) can be used; if you aren’t using an SSH key, then uncheck the box to use one. It will also ask if you’re using a chroot; if you don’t know, you aren’t and can ignore it.
If this is your first time connecting to the system, the system will prompt if this is the correct fingerprint for the host. The SSH guide explains in detail, but essentially if the fingerprint changes after this initial confirmation, it will warn you.
The main window will show the installed packages.
Click the available updates tab. Select the packages you want to update (likely most of them, but double-check; you can select multiple packages) and click update.
A window will pop open with Yum. Answer yes or no to this screen, and Yum will output its progress.
When finished, you can close this window.
Updating through Yum
Prerequisites
- Use either
QP2TERM
or SSH. We strongly recommend SSH. - Make sure the open source path is set up.
Updating all packages
yum update
Updating only selected packages
You can specify either a specific package: yum update rpm
Or you can specify multiple packages: yum update curl bash
Or you can specify a wildcard to match multiple packages: yum update "php-*"
Or again, multiple: yum update python3-* python2-* ca-certificates-mozilla
Packages specified by the yum command will only be pulled in if an older version of the package is already installed; for example, php-*
won’t install more PHP packages, only update installed packages (and any install/update anything required to satisfy dependencies for the new version).
Restarting web servers
Previous versions of software, such as PHP, will still be resident in memory until you restart any web servers using it. You can restart web servers from ENDTCPSVR
/STRTCPSVR
or through the HTTP admin interface on http://your.ibmi.here.example.com:2001/HTTPAdmin
(may be different if using SSL).
Troubleshooting
ACS won’t connect.
Make sure your SSH server is running (STRTCPSVR *SSHD
) and working, and that the port it’s on (likely 22) is responsive.
Package conflict or unresolvable dependencies
This is usually a sign of incompatible repositories; try disabling ones you’re not using. You can do so by renaming/removing the .repo
files in /QOpenSys/etc/yum/repos.d
, or through a yum-utils
command:
$ yum-config-manager --disablerepo=seiden_stable
$ # then to clean cache
$ yum clean metadata
Rarely, a defective package set may be pushed to a repository (for example, ours or IBM’s) that must be fixed by the repository maintainers themselves. If you encounter this, please send a list of repositories enabled (files in /QOpenSys/etc/yum/repos.d
and the error output from Yum/ACS.