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.