wiki:WikiStart

RPM&YUM for OS/2 and OS/2-based systems

RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages. Each software package consists of an archive of files along with information about the package like its version, a description, and the like. There is also a library API, permitting advanced developers to manage such transactions from programming languages such as C or Python. RPM is free software, released under the GNU GPL.

YUM is an automatic updater and package installer/remover for rpm systems. It automatically computes dependencies and figures out what things should occur to install packages. It makes it easier to maintain groups of machines without having to manually update each one using RPM. YUM has a plugin interface for adding simple features. YUM can also be used from other Python programs via its module interface.

Current Status

The current binaries are providing most of the features of RPM and YUM. Now only a few minor features are missing.

Installation

There are 2 possibilities to install RPM:

Documentation

Some basic documentation is available in this wiki; documentation is written to provide some basic information's about RPM and YUM, and to document OS/2 specific features/problems.

If you want to read more about RPM, you can look at this document from Fedora project. Google is your friend if it is not enough :-)

Releases

The bootstrap installer is available in two different architectures. For modern PCs, you should download the WarpIN installer from

*http://rpm.netlabs.org/bootstrap/rpm-yum-bootstrap-1_5-p4.wpi

Older systems will likely be more compatible with the more generic i386 architecture WarpIN installer, here:

*http://rpm.netlabs.org/bootstrap/rpm-yum-bootstrap-1_5-i386.wpi

WarpIN will install a bootstrap package, which requires a working internet connection to download and install all required packages. Once completed, you can safely remove the WarpIN bootstrap package without erasing the newly installed code.

Also be sure to use a drive with enough free space to support installation of future packages.

Repositories

Netlabs.org is now hosting two repositories, one for experimental stuff and the other for stable releases. For most users, it is recommended to use only the stable (release) packages.

Stable repository

The configuration for the stable repository may be installed using (this is automatically done by bootstrap package)

  • yum install netlabs-rel

If you cannot install the above package, download this file and put it into your %UNIXROOT%\etc\yum\repos.d directory.

It is possible to browse the stable repository URL at the following URL:

http://rpm.netlabs.org/release/00/i386/

Experimental repository

The configuration for the experimental repository may be installed using

  • yum install netlabs-exp

If you cannot install the above package, download this file and put it into your %UNIXROOT%\etc\yum\repos.d directory.

It is possible to browse the experimental repository URL at the following URL:

http://rpm.netlabs.org/experimental/00/i386/

Mirrors

Please note: if you have netlabs-exp-xxx.rpm or netlabs-rel-xxx.rpm installed, the mirrors will be automatically added on your next update. Install below files only to reach US mirror directly without checking for main site. Also, see the section related to fastestmirror before adding the repo files below.

Rosenthal & Rosenthal maintains mirrors (updated hourly) of both of the Netlabs repositories on the east coast of the US (New York) on a relatively wide bandwidth connection.

Stable repository mirror

If you do not intend to use the fastestmirror plugin, you may download this file and put it into %UNIXROOT%\etc\yum\repos.d directory.

It is possible to browse the stable repository URL at the following URL:

http://www.2rosenthals.com/rpm.netlabs.org/release/00/i386/

Experimental repository mirror

If you do not intend to use the fastestmirror plugin, you may download this file and put it into %UNIXROOT%\etc\yum\repos.d directory.

It is possible to browse the stable repository URL at the following URL:

http://www.2rosenthals.com/rpm.netlabs.org/experimental/00/i386/

Managing repositories

To disable a repository, either use:

  • yum --disablerepo=[repo-name]

(e.g.: yum --disable-repo=netlabs-rel)

or simply edit the appropriate .repo file in %UNIXROOT%\etc\yum\repos.d and toggle the enabled line to 0, as in:

enabled=1

to

enabled=0

This will preserve the contents of the .repo file(s) but will instruct yum to skip over it/them when scanning for packages.

When you are done, check your enabled repos with:

  • yum repolist

Plugins

Plugins are Python modules which extend YUM's functionality. Plugins are available from a variety of sources. A good place to start looking for plugins is the yum-utils Trac wiki, here.

Installing a plugin

At the very least, a plugin requires a python script (something.py) and a configuration file (something.conf). The script should be placed in %UNIXROOT%\usr\lib\yum-plugins or %UNIXROOT%\usr\share\yum-plugins (create the directory if it does not exist). Alternatively, plugins may be placed in the directory of your choice by adding the following to %UNIXROOT%\etc\yum\yum.conf in the [main] section:

pluginpath=x:/somewhere/somedir

(Multiple plugin directories may be specified.)

The plugin configuration file should be placed in %UNIXROOT%\etc\yum\pluginconf.d (create the directory if it does not exist). Alternatively, plugin configuration files may be placed in the directory of your choice by adding the following to %UNIXROOT%\etc\yum\yum.conf in the [main] section:

pluginconfpath=x:/somewhere/somedir

(Multiple plugin configuration directories may be specified.)

The plugin configuration file must at a minimum consist of the following two lines:

[main]
enabled=1

(Individual plugins may be disabled by toggling the above value to 0 in their respective configuration files.)

Enabling the use of plugins

In order for yum to process any plugins, it is necessary to add the following line to %UNIXROOT%\etc\yum\yum.conf in the [main] section:

plugins=1

This may be overridden on the commandline with the --noplugins option, or to disable certain plugins only, the --disableplugin=plugin1[,plugin2,plugin3,etc.] option may be specified.

Miscellaneous plugin issues

Sometimes, a given plugin will not load. When that happens, you should see a message, such as:

Plugin "xyz" can't be imported

This may be because the plugin itself (a Python script) has one or more unsatisfied dependencies. To determine what may be the cause requires examining the plugin to see what it might need to import and from what other module. Here's an example:

yum repolist[[BR]]
Plugin "xyz" can't be imported
[remainder of output]

Examining %UNIXROOT%/usr/lib/yum-plugins/xyz.py, we see the following just after the opening comments:

from yumutils.i18n import _

Checking %UNIXROOT%/usr/lib/pythonX.X/, we find no yumutils module directory, and none under %UNIXROOT%/usr/lib/pythonX.X/site-packages, either.

Testing further:

python
>>> from yumutils.i18n import _
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named yumutils.i18n

Upon installing the yumutils module, the above command succeeds:

>>> from yumutils.i18n import _
>>>

as does yum.

In the future, as on other platforms, we hope to have some plugins available for installation via YUM itself, which will handle these dependencies.

The fastestmirror plugin

Background

In short, the fastestmirror plugin allows yum to make a determination as to which repo is more responsive from your location, given available bandwidth, traffic, routing constraints, and of course, server load. From the comments in the script itself:

A plugin for the Yellowdog Updater Modified which sorts each repo's
mirrorlist by connection speed prior to download.

Installing the plugin

See Installing a plugin for more detail, but in general, follow these steps to get fastestmirror up and running quickly:

  1. Download this file and place it in %UNIXROOT%\usr\lib\yum-plugins (create yum-plugins if it does not exist).
  2. Download this file and place it in %UNIXROOT%\etc\yum\pluginconf.d (create pluginconf.d if it does not exist).
  3. Open %UNIXROOT%\etc\yum\yum.conf in your favorite text editor. Under the [main] section, add the following line:

plugins=1

  1. If you have previously downloaded the repo files for the Rosenthal & Rosenthal mirrors (see above sections), you should delete those two files:

netlabs-rel-2rosenthals.repo
netlabs-exp-2rosenthals.repo

and either confirm that the Rosenthal & Rosenthal mirrors are already listed in your netlabs repo files (editing them as necessary) or you may overwrite your existing (remaining) repo files with these two, which have the Rosenthal & Rosenthal mirrors appended to them:

netlabs-rel.repo
netlabs-exp.repo - repo disabled by default

N.B.: fastestmirror does not optimize between different repo files, so mirrors for the same repository must be listed in a single repo file, e.g., both the rpm.netlabs.org and the www.2rosenthals.com URIs should be listed in the corresponding repo file, as in:

baseurl=http://rpm.netlabs.org/release/$releasever/$basearch/
        http://www.2rosenthals.com/rpm.netlabs.org/release/$releasever/$basearch/

If you want to enable the experimental repository, follow the directions under Managing repositories, above.

Tuning

You may want to adjust the behavior of fastestrepo to better suit your conditions. This is done through %UNIXROOT%\etc\yum\pluginconf.d\fastestmirror.conf. Hints are provided there as well as in the beginning comments in the plugin itself. As provided, the configuration should be adequate for most users.

Example session

Here's an example of the output when using fastestmirror:

yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * www.2rosenthals.com : 0.067000 secs
 * www.2rosenthals.com : 0.063000 secs
 * rpm.netlabs.org : 0.149000 secs
 * rpm.netlabs.org : 0.174000 secs
rpm.netlabs.org already timed: 0.174000024796
 * rpm.netlabs.org : 0.174000 secs
www.2rosenthals.com already timed: 0.0629999637604
 * www.2rosenthals.com : 0.063000 secs
 * netlabs-exp: www.2rosenthals.com
rpm.netlabs.org already timed: 0.174000024796
 * rpm.netlabs.org : 0.174000 secs
www.2rosenthals.com already timed: 0.0629999637604
 * www.2rosenthals.com : 0.063000 secs
 * netlabs-rel: www.2rosenthals.com
netlabs-exp               100% |=========================| 1.3 kB    00:00
netlabs-rel               100% |=========================| 1.3 kB    00:00

Manually setting system architecture

Please note Platform Selection for Binaries in the How-To for more information on creating and/or modifying the platform text file.

Reporting bugs

Please report bugs only related to the following modules:

  • rpm
  • yum
  • python

For other modules, please consider reporting them to ports trac or to other projects hosted at netlabs.

Reporting bugs and requesting new features is done through the ticket system. You can view existing tickets, add comments to them and create new tickets using the corresponding buttons at the top of every page. If you want to submit a new bug or request a feature, please use the Search function first to make sure there is no ticket for this task already created.
We review the tickets regularly and leave comments if we need more info. So please revisit the Feedback analysis as often as possible. If we leave some comment on a ticket and don't get feedback from the ticket creator, the ticket will be closed some weeks later.

Anonymous access to the ticket system has been restricted due to multiple attacks of stupid spammers we've been suffering from lately. In order to create a new ticket or comment the existing one, you need to login with your Netlabs login id. If you do not have a login id, you can request one at http://www.netlabs.org/en/site/member/member.xml. We are sorry for inconvenience, but at the present time this is the only way to avoid extremely annoying spam.

Last modified 9 months ago Last modified on Nov 8, 2016, 1:46:37 PM