[TriLUG] Local repo

Igor Partola igor at igorpartola.com
Tue Jun 12 12:43:32 EDT 2012


I documented the process by which we deploy our code as Debian packages
here: http://igorpartola.com/debianization/. That is also the content of a
talk I gave at TriLUG some months ago. Starting at Step 4 it talks about
setting up a basic repository.

An apt repo is basically a collection of .deb files + a Packages file
listing them all + a Release file + a Release.gpg file that signs the
regular Release file. The way I set up our repo is that any file will
become a part of the Packages file by running a shell script which can be
invoked via cron. Lately, I've changed the script to be invoked on demand
whenever we build a package.

The underlying tool I am using is apt-ftparchive which takes care of
creating Packages and Release files. I then use GPG to sign the Release
file.

More robust solutions exist for managing large repositories. Once you hit a
certain number of packages, generating a Packages file becomes lengthy.
However, for a small repository this setup seems good enough.

The linked tutorial also talks about hosting the repo so it is accessible
to clients. This can be done with a basic apache or nginx setup. The
tutorial adds a bit of security since in my case the code is not for the
general public. But at the end of the day, from the client's point of view
this is just another repository. Changes are picked up via `apt-get update`
and installed via `apt-get upgrade`.

Igor

Can you elaborate on your local repo process. So, you download needed
> packages
> to a local server and do they become part of some rpmdb or just stay as
> files?
> Does this repo then listens for clients requests and serves the
> updates or your client
> machines come to this server (via say ftp) pick up the needed files and
> update?
>
> Thanks
>
>



More information about the TriLUG mailing list