Here is a simple example showing how easy it is to create a basic repository for APT-RPM:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm [niemeyer@ibook /pub]% genbasedir /pub/conectiva Creating base directory... done Components: general Processing pkglists... general [done] Processing srclists... [done] Creating component releases... general [done] Creating global release file... [done] Appending MD5Sum... general [done] All your base are belong to us!!! [niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/base /pub/conectiva/base/pkglist.general /pub/conectiva/base/pkglist.general.bz2 /pub/conectiva/base/release.general /pub/conectiva/base/release /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpmDone! This repository is ready to be accessed by APT-RPM.
To make APT-RPM notice the new created repository, just append the following line in /etc/apt/sources.list:
rpm file:/pub conectiva general
There's no special setup to include a sources repository either. Here is another example including it:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/SRPMS.general /pub/SRPMS.general/dummy-1.0-1cl.src.rpm [niemeyer@ibook /pub]% genbasedir /pub/conectiva Creating base directory... done Components: general Processing pkglists... general [done] Processing srclists... general [done] Creating component releases... general [done] Creating global release file... [done] Appending MD5Sum... general [done] All your base are belong to us!!! [niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/base /pub/conectiva/base/pkglist.general /pub/conectiva/base/pkglist.general.bz2 /pub/conectiva/base/srclist.general /pub/conectiva/base/srclist.general.bz2 /pub/conectiva/base/release.general /pub/conectiva/base/release /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/SRPMS.general /pub/SRPMS.general/dummy-1.0-1cl.src.rpmTo make APT-RPM notice the new created repository, including the sources, just append the following lines in /etc/apt/sources.list:
rpm file:/pub conectiva general
rpm-src file:/pub conectiva general
Notice that in the example above, the SRPMS.general directory is outside of the conectiva/ directory. This used to be the most common form to setup an RPM package structure, but sometimes this structure may be incovenient. To use SRPMS in the same directory level, just use the --flat option. Here's another example:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/SRPMS.general /pub/conectiva/SRPMS.general/dummy-1.0-1cl.src.rpm [niemeyer@ibook /pub]% genbasedir --flat /pub/conectiva Creating base directory... done Components: general Processing pkglists... general [done] Processing srclists... general [done] Creating component releases... general [done] Creating global release file... [done] Appending MD5Sum... general [done] All your base are belong to us!!! [niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/base /pub/conectiva/base/pkglist.general /pub/conectiva/base/pkglist.general.bz2 /pub/conectiva/base/srclist.general /pub/conectiva/base/srclist.general.bz2 /pub/conectiva/base/release.general /pub/conectiva/base/release /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/SRPMS.general /pub/conectiva/SRPMS.general/dummy-1.0-1cl.src.rpmFrom a user point of view, there's no difference if your repository is flat or not. That is, to make APT-RPM notice the new created repository, you'd append the same lines in /etc/apt/sources.list:
rpm file:/pub conectiva general
rpm-src file:/pub conectiva general
For now, all examples were using a single general component. We can have as many components as necessary in a single repository. For example:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/RPMS.misc /pub/conectiva/RPMS.misc/foobar-1.0-1cl.noarch.rpm [niemeyer@ibook /pub]% genbasedir /pub/conectiva Creating base directory... done Components: general misc Processing pkglists... general misc [done] Processing srclists... [done] Creating component releases... general misc [done] Creating global release file... [done] Appending MD5Sum... general misc [done] All your base are belong to us!!! [niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/base /pub/conectiva/base/pkglist.general /pub/conectiva/base/pkglist.general.bz2 /pub/conectiva/base/pkglist.misc /pub/conectiva/base/pkglist.misc.bz2 /pub/conectiva/base/release.general /pub/conectiva/base/release.misc /pub/conectiva/base/release /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/RPMS.misc /pub/conectiva/RPMS.misc/foobar-1.0-1cl.noarch.rpmTo make APT-RPM notice the new created repository, just append the following line in /etc/apt/sources.list:
rpm file:/pub conectiva general misc
In all examples above genbasedir was finding the components by itself. If necessary, you may select which components to build. For example:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/RPMS.misc /pub/conectiva/RPMS.misc/foobar-1.0-1cl.noarch.rpm [niemeyer@ibook /pub]% genbasedir /pub/conectiva general Components: general Processing pkglists... general [done] Processing srclists... [done] Creating component releases... [done] Updating global release file... [done] Appending MD5Sum... general [done] All your base are belong to us!!!Notice that when you do that, the release file inside the base directory will contain information only about that single component. If you're updating just some components of a big repository, you'll probably want to use --partial as well, like this:
[niemeyer@ibook /pub]% genbasedir --partial /pub/conectiva general Components: general Processing pkglists... general [done] Processing srclists... [done] Creating component releases... [done] Partially updating global release file... [done] Appending MD5Sum... general [done] All your base are belong to us!!!Since version 0.5.5cnc4, APT-RPM supports the concept of meta-components A meta-component may use information contained in one or more components, while using a different name. In the example below, we create a meta-component named all:
[niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/RPMS.misc /pub/conectiva/RPMS.misc/foobar-1.0-1cl.noarch.rpm [niemeyer@ibook /pub]% genbasedir --meta=all /pub/conectiva Components: general misc Processing pkglists... general misc [done] Processing srclists... [done] Creating component releases... all [done] Updating global release file... [done] Appending MD5Sum... all [done] All your base are belong to us!!! [niemeyer@ibook /pub]% find /pub /pub /pub/conectiva /pub/conectiva/base /pub/conectiva/base/pkglist.all /pub/conectiva/base/pkglist.all.bz2 /pub/conectiva/base/release.all /pub/conectiva/base/release /pub/conectiva/RPMS.general /pub/conectiva/RPMS.general/dummy-1.0-1cl.noarch.rpm /pub/conectiva/RPMS.misc /pub/conectiva/RPMS.misc/foobar-1.0-1cl.noarch.rpmFrom a user point of view, there's no difference between a meta-component and a normal component. To make APT-RPM notice the new created repository, just append the following line in /etc/apt/sources.list:
rpm file:/pub conectiva all
Last updated 01.01.2023