Das Projekt mini-dinstall verfolgt den gleichen Zweck wie minidak: eine kleinere Version von dak und zielt auf das Betreiben eigener APT-Repositories ab. Daher ist es mit weniger Automatismen und Komfort als die größeren Varianten ausgelegt. Es steht als gleichnamiges Debianpaket für die aktuelle, stabile Veröffentlichung von Debian bereit [Debian-Paket-mini-dinstall].
Hinzukommen entweder das Paket dput [Debian-Paket-dput] oder dessen Neufassung dput-ng [Debian-Paket-dput-ng]. Beide Werkzeuge dienen dazu, Softwarepakete auf Übereinstimmung mit den Debian-Richtlinien zu prüfen und diese dann in das bereits von ihnen vorbereitete APT-Repository hochzuladen.
Bislang ist die Dokumentation zu mini-dinstall
recht überschaubar. Eine
Übersicht zur Benutzung anhand von Beispielen sowie den einzelnen Einträgen in
der Konfigurationsdatei findet sich in der beigefügten Dokumentation zum Paket
mini-dinstall sowie in der Manpage des Programms. Für die nachfolgende
Beschreibung hat auch das intensive Lesen und Vergleichen verschiedener
Blogbeiträge sehr viel geholfen.
Die grundlegende Voraussetzung ist ein Verzeichnis für das APT-Repository — sprich: wo möchten Sie ihre Pakete ablegen. mini-dinstall
ist da recht
flexibel und folgt ihren Angaben. Soll das APT-Repository lediglich lokal
bereitstehen, genügt ein Pfad wie bspw. /opt/paketarchiv
vollkommen. Soll
das APT-Repository hingegen auch von anderen Rechnern aus via HTTP oder HTTPS
erreichbar sein, benötigen Sie neben einem Webserver wie Apache oder Nginx auch
einen Pfad unterhalb des Wurzelverzeichnisses des Webservers, bspw.
/var/www/debian
. Genau diesen Fall zeigen wir hier.
Als erstes stellen Sie sicher, dass das Verzeichnis des APT-Repositorys vorhanden ist und legen es an, falls es noch nicht existiert:
Verzeichnis für das APT-Repository anlegen.
# mkdir -vp /var/www/debian mkdir: Verzeichnis '/var/www/debian' angelegt #
Danach legen Sie ein Unterverzeichnis an, indem die neuen, von Ihnen später
hochgeladenen Pakete zunächst landen. In unserem Fall heißt dieses lediglich
neuepakete
:
Verzeichnis für neue Pakete anlegen.
# mkdir -vp /var/www/debian/neuepakete mkdir: Verzeichnis '/var/www/debian/neuepakete' angelegt #
Als nächstes legen Sie eine Konfigurationsdatei für mini-dinstall
an. Der
übliche Name dafür ist .mini-dinstall.conf
in dem Home-Verzeichnis des
Benutzers, der die Pakete später in das APT-Repository hochlädt. Eine einfache
Konfigurationsdatei .mini-dinstall.conf
sieht wie folgt aus:
Basiseinstellungen zu .mini-dinstall.conf
.
[DEFAULT] archivedir = /var/www/debian archive_style = flat architectures = all, amd64 mail_on_success = false
Damit liegt das APT-Repository unter /var/www/debian
mit einer flachen
Struktur (alle Binärpakete landen im gleichen Unterverzeichnis) und
Unterverzeichnisse werden nur für die beiden Architekturen amd64 und all
angelegt. Es erfolgt keine Benachrichtigung bei einem erfolgreichen Upload.
Die Einstellungen gelten für alle Archive (Abschnitt [DEFAULT]
), spezifische
Einstellungen pro Veröffentlichungsstatus bestehen nicht.
Mit obigen Angaben ist ihr APT-Repository bereits benutzbar. APT und aptitude
erwarten jedoch noch zusätzliche Informationen, um die Pakete in ihrem eigenen
Repository auch als vertrauenswürdig anzuerkennen. Schritt 1 ist eine
Release
-Datei. Dafür ergänzen Sie die folgende Zeile am Ende der obigen Datei
.mini-dinstall.conf
:
Ergänzungen zu .mini-dinstall.conf
.
generate_release = 1
Laden Sie später ein Paket hoch oder rufen Sie mini-dinstall
direkt auf,
erzeugt es eine solche Release
-Datei mit den Hashwerten der Pakete in ihrem
Repository. Diese hat dann bspw. den folgenden Inhalt:
Inhalt der Release
-Datei.
# cat /var/www/debian/unstable/Release Origin: root Label: root Suite: unstable Codename: unstable Date: Wed, 13 Nov 2019 17:02:23 UTC Architectures: all amd64 MD5Sum: d41d8cd98f00b204e9800998ecf8427e 0 Packages f88f7e4006faa70eb958d8db16b863c3 33 Packages.gz 4059d198768f9f8dc9372dc1c54bc3c3 14 Packages.bz2 d41d8cd98f00b204e9800998ecf8427e 0 Sources e86c520b4bec9c320a71529fdf92275f 32 Sources.gz 4059d198768f9f8dc9372dc1c54bc3c3 14 Sources.bz2 SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Packages 91199c61d2cf161208659f6218378c86498df72e 33 Packages.gz 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 Packages.bz2 da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Sources 17beadd3c12ddc3e8079627fc4a7f31f203c5705 32 Sources.gz 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 Sources.bz2 SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Packages adffd98c43936b6d4263f0ae73f49ca71b98675143f3bd76d62182dafd7f25dc 33 Packages.gz d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 Packages.bz2 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Sources 2340b8ea571b7f6c0ed490857b3828d19334bf03693cb846114f82770b9facaf 32 Sources.gz d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 Sources.bz2
Eine Übersicht zu den einzelnen Schaltern von mini-dinstall
und den
zulässigen Einträgen in der Konfigurationsdatei finden Sie unter
Abschnitt 30.4.4, „Schalter und Konfiguration“.
Nun folgt dput
oder dput-ng
. Die beiden Werkzeuge sind nicht unbedingt
erforderlich. Beide vereinfachen Ihnen nur das Hochladen von Paketen. Ohne
dput
müssen Sie das manuell machen.
Ein üblicher Name für die Konfigurationsdatei ist .dput.cf
im
Home-Verzeichnis des Benutzers, der die Pakete später in das APT-Repository
hochlädt. Darin stellen sie dput
passend zum weiter oben genannten
APT-Repository ein, bspw. wie folgt:
.dput.cf
-Beispiel:
[local] fqdn = localhost method = local incoming = /var/www/debian/neuepakete run_dinstall = 0 post_upload_command = mini-dinstall -b
Die Angabe [local]
bezeichnet den Namen des Repositorys und alle danach
folgenden Angaben beziehen sich auf dieses Repository. fqdn
kürzt den
Begriff fully-qualified domain name ab und bezeichnet die URL bzw. den
Rechnernamen, auf dem sich das APT-Repository befindet. Der Pfad bei incoming
gibt das Unterverzeichnis an, indem neue Pakete landen. Die Angabe
run_dinstall = 0
legt fest, dass kein Aufruf von dinstall -n
erfolgen soll,
sprich: kein Installationstest für das Paket. Die letzte Zeile
(post_upload_command
) gibt das Kommando an, welches nach dem Hochladen
ausgeführt wird. Die Angabe von mini-dinstall -b
versetzt mini-dinstall
in den Batchbetrieb, d.h. mini-dinstall
integriert neue Pakete in das
Paketarchiv, sobald diese im Unterverzeichnis für die hochgeladenen Pakete
gelandet sind.
Jetzt laden Sie ihr Paket hoch. Das nachfolgende Beispiel nutzt das in Kapitel 22, Metapakete bauen erzeugte Metapaket meta-mc.
Der Schalter -u
im Aufruf kürzt --unchecked
ab und überspringt den Test
der kryptographischen Signaturen zum Paket. Das ist zum Testen ganz praktisch.
Hochladen eines Paketes mit dput
.
# dput -u local /home/frank/projekte/metapackage/meta-mc_1.0_amd64.changes Uploading to local (via local to localhost): Successfully uploaded packages. #
Benutzen Sie kein dput
oder dput-ng
, laden Sie alle Dateien, die in der
.changes
-Datei zum Paket benannt sind, in das Unterverzeichnis, indem neue
Pakete landen (dput
macht nichts anderes).
Einrichtung (was noch schön wäre)
APT-Repository zu ihren Paketquellen hinzufügen
/etc/apt/sources.list
# local repo deb file:/var/www/debian/ unstable/ deb-src file:/var/www/debian/ unstable/
apt-get update
Ergänzungen
mini-dinstall
kommt mit einer ganzen Reihe von Schaltern daher. Auch die
Einträge für die Konfigurationsdatei sind etwas länger. Als Schalter
unterstützt mini-dinstall
die folgenden:
-b
(Langform --batch
)
-c
(Langform --config=file
)
file
als Konfigurationsdatei. Der
Standardwert ist ~/.mini-dinstall.conf
-d
(Langform --debug
)
-k
(Langform --kill
)
-n
(Langform --no-act
)
-v
-q
(Langform --quiet
)
-r
(Langform --run
)
-v
(Langform --verbose
)
--help
--no-db
apt-ftparchive
läuft ohne den Schalter --db
.
--no-log
--version
mini-dinstall
an
In der Konfigurationsdatei sind die folgenden Einträge zulässig:
archivedir
extra_keyrings
incoming_permissions
keyrings
extra_keyrings
instead. Defaults to the keyrings from the debian-keyring package.