Eigen ubuntu repository

November 26th, 2009 Leave a comment Go to comments

Onder Ubuntu is het mij gelukt mijn eigen repository te installeren. Het is behoorlijk technisch dus vandaar een samenvatting van de stappen.

Installeer reprepro:

sudo apt-get install reprepro

Maak de bijbehorende directories aan:

sudo mkdir /var/packages
sudo mkdir /var/packages/ubuntu
sudo mkdir /var/packages/ubuntu/conf

Belangrijk. Indien er nog geen gpg key aanwezig is of is aangemaakt moet dit worden gedaan met het volgende commando:

gpg --gen-key

In de volgende volgorde kies:
default (Enter), default (Enter), default (Enter), y, enter name, enter e-mail, enter comments, blank password, generate.

Controleer of de key juist is geinstalleerd:
gpg --list-secret-keys
gpg: key 9694CB5E marked as ultimately trusted

Maak het distributions bestand aan. Hieronder mijn voorbeeld voor zowel jaunty als karmic:

sudo pico /var/packages/ubuntu/conf/distributions

Inhoud:

Origin: XBMCFreak
Label: Piethein Strengholt's Debs
Suite: jaunty
Codename: jaunty
Version: 9.04
Architectures: i386 source
Components: main
Description: Ubuntu XBMC Packages
SignWith: 9694CB5E
DebOverride: ../indices/override.jaunty.main
UDebOverride: ../indices/override.jaunty.main.debian-installer
DscOverride: ../indices/override.jaunty.main.src
DebIndices: Packages Release . .gz .bz2
UDebIndices: Packages . .gz .bz2
DscIndices: Sources Release .gz .bz2
Contents: . .gz .bz2
Log: packages.xbmcfreak.log

Origin: XBMCFreak
Label: Piethein Strengholt's Debs
Suite: karmic
Codename: karmic
Version: 9.04
Architectures: i386 source
Components: main
Description: Ubuntu XBMC Packages
SignWith: 9694CB5E
DebOverride: ../indices/override.karmic.main
UDebOverride: ../indices/override.karmic.main.debian-installer
DscOverride: ../indices/override.karmic.main.src
DebIndices: Packages Release . .gz .bz2
UDebIndices: Packages . .gz .bz2
DscIndices: Sources Release .gz .bz2
Contents: . .gz .bz2
Log: packages.xbmcfreak.log

Maak nu het options bestand aan:

sudo pico /var/packages/ubuntu/conf/options

Inhoud:

verbose
ask-passphrase
basedir .

Maak nu het uploaders bestand aan:

sudo pico /var/packages/ubuntu/conf/uploaders

Inhoud:

allow * by unsigned

Maak nu het incoming bestand aan:

sudo pico /var/packages/ubuntu/conf/incoming

Inhoud:

Name: default
IncomingDir: incoming
TempDir: tmp
Allow: jaunty karmic
Cleanup: on_deny on_error

Maak nu de override directory aan:

sudo mkdir /var/packages/ubuntu/override

En de indices directory en bijbehorende bestanden:

sudo mkdir /var/packages/ubuntu/indices
sudo touch /var/packages/ubuntu/indices/override.jaunty.main
sudo touch /var/packages/ubuntu/indices/override.jaunty.main.debian-installer
sudo touch /var/packages/ubuntu/indices/override.jaunty.main.src
sudo touch /var/packages/ubuntu/indices/override.karmic.main
sudo touch /var/packages/ubuntu/indices/override.karmic.main.debian-installer
sudo touch /var/packages/ubuntu/indices/override.karmic.main.src

Maak nu de incoming directory aan:

sudo mkdir /var/packages/ubuntu/incoming

Test of de repository naar behoren werkt:
sudo reprepro -Vb /var/packages/ubuntu export

De volgende output moet in beeld komen:
root@:~# sudo reprepro -Vb /var/packages/ubuntu export
Exporting jaunty...
exporting 'jaunty|main|i386'...
replacing '/var/packages/ubuntu/dists/jaunty/main/binary-i386/Packages' (uncompressed,gzipped,bzip2ed)
exporting 'jaunty|main|source'...
creating '/var/packages/ubuntu/dists/jaunty/main/source/Sources' (gzipped,bzip2ed)
generating Contents-i386...
Successfully created '/var/packages/ubuntu/dists/jaunty/Release.gpg.new'
root@:~#

We kunnen nu de repository vullen. In het onderstaande voorbeeld vul ik de repository met xbmc packages:
sudo cp /home/buildd/pbuilder/result/* /var/packages/ubuntu/incoming

Importeer nu alle incoming bestanden met:
sudo reprepro -Vb /var/packages/ubuntu processincoming default

Om een enkel bestand te importeren is de volgende regel van toepassing:
reprepro includedeb jaunty /home/buildd/pbuilder/result/xbmc_24925-jaunty1_i386.deb

Als we Apache willen gebruiken voor het vrijgeven van de bestanden moeten we een bestand met de onderstaande inhoud in de conf.d directory zetten:

Alias /apt /var/packages

<Directory "/var/packages">
Options Indexes FollowSymLinks MultiViews
DirectoryIndex index.html
AllowOverride Options
Order allow,deny
allow from all
</Directory>
# Hide the conf/ directory for all repositories
<Directory "/var/packages/*/conf">
Order allow,deny
Deny from all
Satisfy all
</Directory>
# Hide the db/ directory for all repositories
<Directory "/var/packages/*/db">
Order allow,deny
Deny from all
Satisfy all
</Directory>

Om gebruik te maken van de onderstaande repository:

sudo pico /etc/apt/sources.list.d/ownrepository.list

## repository
deb http://localhost/apt/ubuntu jaunty main
deb-src http://localhost/apt/ubuntu jaunty main

Om een overzich te krijgen van wat zich in de repository bevindt:
sudo reprepro -Vb /var/packages/ubuntu -A i386 list jaunty
sudo reprepro -Vb /var/packages/ubuntu -A source list jaunty
sudo reprepro -Vb /var/packages/ubuntu -A i386 list karmic
sudo reprepro -Vb /var/packages/ubuntu -A source list karmic

Om iets te verwijderen uit de repository:
sudo reprepro -Vb /var/packages/ubuntu -A i386 remove jaunty xbmc
sudo reprepro -Vb /var/packages/ubuntu -A source remove jaunty xbmc
sudo reprepro -Vb /var/packages/ubuntu -A i386 remove karmic xbmc

Bij een sudo apt-get update krijg je waarschijnlijk een foutmelding. Dit kan je oplossen door de key te importeren. Doe het volgende

Om de keys te bekijken die geinstalleerd staan:
sudo apt-key list

Om de aangemaakte keys te bekijken:
sudo gpg --fingerprint

Exporteer de key die ook in de distributions configuratie bestand staat met:
sudo gpg --armor --export 9694CB5E > xbmcfreak.gpg

Importeer de key met:
sudo apt-key add xbmcfreak.gpg

  1. No comments yet.
  1. No trackbacks yet.