Your requirement

You have created or downloaded RPM packages and want to make them available for SUSE LINUX 10.0 via APT in the easiest possible way.

Prerequisites

You have already configured an FTP server. This releases e.g., the /var/lib/ftp directory.

Procedure

Copy your RPM packages into a subdirectory of the FTP server, to rpms, for example:

root@linux# cd /var/lib/ftp
root@linux# mkdir rpms
root@linux# cp /tmp/*.rpm rpms

To create the APT repository, you need the program aptate, which can be found in the apt4rpm package at SUSE. This requires a configuration file /etc/apt/aptate.conf, which must look like this:

/etc/apt/aptate.conf:<?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd">

<opt signed-pkgs-only="no">
  <topdir>/var/lib/ftp</topdir>
  <distribution id="eigenerpms">
    <name>eigenerpms</name>
    <version>1</version>
    <architecture>noarch</architecture>
    <component>
      <name>eigenerpms</name>
      <url>rpms</url>
    </component>
  </distribution>
</opt>

Important here: The path /var/lib/ftp and the directory rpms at <name>.

The repository can now be generated with a simple call to aptate. This step is also necessary every time an RPM package is added, changed or deleted in the repository:

root@linux# cd /var/lib/ftp
root@linux# aptate
Distribution(s) to be processed: eigenerpms
Processing: eigenerpms
Archive structure: 1 => eigenerpms/1-noarch
Entering cache build stage
 eigenerpms        -> RPMs added:     30
                   -> RPMs removed:    0
Entering apt repository creation stage
 eigenerpms        -> Bin: MD5/GPG:   30/3
                   -> Src: MD5/GPG:    0/0
Entering apt database building stage
 eigenerpms        -> Bin:  0030/0030
 eigenerpms        -> Src: 
Creating global release file: done
Installing apt repository at: /var/lib/ftp/apt/eigenerpms/1-noarch 
aptate: finished successfully

Use on the client

The client must have the apt package installed. In the file /etc/apt/sources.list you will need an entry with the URL to the new source:

/etc/apt/sources.list:rpm ftp://Aptserver/apt eigenerpms/1-noarch eigenerpms 

Important: In order for the client to accept unsigned packages, you must disable signature verification in the gpg-checker.conf:

/etc/apt/apt.conf.d/gpg-checker.conf:GPG::Check false;

Test

If everything works, you can now download the package descriptions on the client with apt-get update:

root@linux# apt-get update
Hole:1 ftp://Aptserver eigenerpms/1-noarch release [469B]
469B in 0s (0B/s) geholt
Treffer ftp://Aptserver eigenerpms/1-noarch/eigenerpms pkglist
Treffer ftp://Aptserver eigenerpms/1-noarch/eigenerpms release
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig

... and install packages with apt-get install as usual:

root@linux# apt-get install sendmail-cf
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden NEUEN Pakete werden installiert werden:
  sendmail-cf
0 upgraded, 1 newly installed, 0 entfernt und 0 nicht upgegradet.
Muss 297kB an Archiven holen.
Nach dem Auspacken werden 911kB zusätzlicher Plattenplatz benutzt werden.
Hole:1 ftp://Aptserver eigenerpms/1-noarch/eigenerpms sendmail-cf 8.12.11-3 [297kB]
297kB in 0s (18,5MB/s) geholt
Committing changes...
Preparing...                ########################################### [100%]
   1:sendmail-cf            ########################################### [100%]
Done.

Linux knowledge

These articles were written by the founder of Checkmk many years ago.
They are still valid though and thus we keep them on our website.
Mathias has since then developed a monitoring software called Checkmk

Find out more