nwlogo
NAVIGATION
About
News
Support

Downloads
- Search
- Mirrors
- Auto update

Documentation
- FAQ
- HOWTOs
- ARM info
- Crusoe info

Development
- Toolchain
- Autobuild
- Users

Sponsored by:

Open Source Lab at OSU

Total Domain Management by LaneChange.net

Automatic updates with yum

Yum is an update tool for RPM packages that works much like apt-get does in Debian. It allows you to conveniently download and install packages, and it can easily be configured to automatically keep your system up-to-date.

This page explains how to get yum working on NetWinders that are running the nw-9 disk image. There is no support for older images such as the DM and OfficeServer series, because it is not clear if yum will work with the old version of rpm package manager. Volunteers to test it would be appreciated!

INSTALLATION

We'll assume you have installed the base-nw9 image and you are able to log in, configure networking, etc. In order to install yum you will need to install python and several other support packages, which total 7.1MB. (In the future, we will likely include these on the base image). The packages can be obtained from our FTP site in the pub/netwinder/RPMS/nw/9 directory.

  • elfutils-0.76-3.armv4l.rpm
  • expat-1.95.5-2.armv4l.rpm
  • gmp-4.1.2-2.armv4l.rpm
  • libxml2-2.5.4-1.armv4l.rpm
  • libxml2-python-2.5.4-1.armv4l.rpm
  • python-2.2.2-26.armv4l.rpm
  • rpm-python-4.2-0.69.armv4l.rpm
  • yum-2.0.4-1.noarch.rpm (in pub/netwinder/updates/nw-9/armv4l)

Download the above packages to a temporary directory and then install them all using the "rpm -i *.rpm" command.

Optional: The first time you run YUM, it will download headers for all of the available RPM packages. These total about 14MB as individual files. You can download a tarball of the headers which is only 8.9MB. This tarball should be unpacked with "tar jxf headers.tar.bz2" in the /var/cache/yum directory.

CONFIGURATION

Yum stores its configuration in /etc/yum.conf. A default config file will be installed if you followed the above steps. You need to edit this file and change the URLs so they point to ftp.netwinder.org, or preferably one of the mirror sites. Here is a working example that you can use: (but remember to change ftp.netwinder.org to one of the mirrors instead).

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1

[base]
name=NetWinder ARM Linux $releasever - $basearch
baseurl=ftp://ftp.netwinder.org/pub/netwinder/RPMS/nw/9

[updates]
name=NetWinder ARM Updates $releasever - Updates
baseurl=ftp://ftp.netwinder.org/pub/netwinder/updates/nw-9/armv4l

USING YUM

Yum has several options, but the basic usage is "yum install PKGNAME". This will download the most recent version of the package and install it, getting any required other packages as well.

Yum has a nice man page that explains the other options. Unfortunately on the nw-9 base image we forgot to include the "man" program for displaying man pages. No problem, you can use yum to install it, like so:

# yum install man
Gathering header information file(s) from server(s)
Server: NetWinder ARM Linux 9 - armv4l
Server: NetWinder ARM Updates 9 - Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
..Dependencies resolved
I will do the following:
[install: man 1.5k-8.armv4l]
I will install/upgrade these to satisfy the dependencies:
[deps: groff 1.18.1-20.armv4l]
[deps: libstdc++ 3.3-1_nw1.armv4l]
Is this ok [y/N]: y
Getting man-1.5k-8.armv4l.rpm
man-1.5k-8.armv4l.rpm     100% |=========================|  89 kB    00:11
Getting groff-1.18.1-20.armv4l.rpm
groff-1.18.1-20.armv4l.rp 100% |=========================| 1.8 MB    03:47
Getting libstdc++-3.3-1_nw1.armv4l.rpm
libstdc++-3.3-1_nw1.armv4 100% |=========================| 263 kB    00:32
Running test transaction:
Test transaction complete, Success!
libstdc++ 100 % done 1/3 
groff 100 % done 2/3 
man 100 % done 3/3 
Installed:  man 1.5k-8.armv4l
Dep Installed:  groff 1.18.1-20.armv4l libstdc++ 3.3-1_nw1.armv4l
Transaction(s) Complete

AUTOMATIC UPDATES

You can get yum to run a daily update on your system, automatically installing any new packages (for example security updates). The yum rpm package includes a service called "yum" which you can enable like so:

service yum start

It will write to /var/log/yum.log so you can see what it did.

PERFORMANCE

The combination of python, large RPM header files, and the NetWinders slow processor and little RAM, result in yum being quite slow to execute. For example the yum install man command above took over 10 minutes to execute, even thought the FTP transfer took less than 5 minutes (due to the bandwidth limits on ftp.netwinder.org). Just be patient, it does work...

Using an HTTP mirror rather than FTP appears to speed things up considerably.