Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Grundsätzlich kann auf einem beliebigen Webserver ein Spiegelserver für den offiziellen eisfair-Paketserver Packeis eingerichtet werden. Dieser Artikel beschreibt dessen Einrichtung auf einem eisfair-Seerver, da dessen Paketmanager eisman ein Kommando zur Synchronisierung mit dem Datenbestand eines anderen Paketservers enthält:

# eisman mirror --help

Create / synchronize a local package mirror

usage:
    eisman mirror [OPTIONS] /path/to/package/mirror

options:
    --help            show this help screen
    --url <url>       package index download url
    --system <system> force eisfair-1 oder eisfair-64
    --relocate <url>  relocate package urls to 'url'
    --quiet           don't show additional text
    --no-progress     don't show progress information 
    --keep            keep old files (even if no longer listed)
                      if not specified, old files are removed when
                      not listed for more than 90 days.

Mit der Option --url kann die Adresse des Paketservers angegeben werden, den man spiegeln möchte und ist auf https://www.pack-eis.de/index.txt voreingestellt.

Die --system Option erzwingt explizit die Spiegelung der eisfair-1 oder eisfair-64-Pakete, jeweils immer unter Einschluss der auf beiden Systemtypen nutzbaren eisfair-noarch-Pakete. Ohne Angabe dieses Parameters wird automatisch das eisfair-System gespiegelt, auf dem das eisman-Kommando ausgeführt wird.

Neben den eigentlichen Paketdateien, wird bei der Spiegelung auch die Indexdatei downgeloadet und die Pfade zu den Paketen auf das angegebene lokale Zielverzeichnis gesetzt:

# eisman mirror --system eisfair-1 /data/packeismirror/eisfair-1
#
# ergibt dann folgende lokale Indexdatei:
#
# This file was automatically generated by eisman
# Last synchronization: 2023-11-25 21:39:24
7zip                 3.4.0      stable       /data/packeismirror/eisfair-1/7zip/3.4.0/7zip.tar.bz2.info eisfair-1
[...]

Die Verwendung der Option --relocate erlaubt eine Umschreibung des Pfades, was wir im folgenden nutzen werden.

Um nun den Spiegelserver aufzubauen, benötigen wir zudem einen Webserver, z. B. ein installiertes und konfiguriertes Apache2-Paket. Zudem legen wir folgende Verzeichnisse im Docroot des Apachen als Verzeichnisse für die Spiegelung der eisfair-Pakete an:

  • eisfair-1: /var/www/htdocs/packeismirror/eisfair-1

  • eisfair-64: /var/www/htdocs/packeismirror/eisfair-64

Das folgende Skript synchronisiert nun Packeis mit den lokalen Datenverzeichnissen unter Verwendung der eben erwähnten relocate-Option, um in der lokalen Indexdatei die korrekten http-URLs zu den Paketen zu setzen:

#!/bin/sh

echo "Mirroring eisfair-1"
eisman mirror --relocate http://eis.local.net/packeismirror/eisfair-1 --system eisfair-1 /var/www/htdocs/packeismirror/eisfair-1
echo "Mirroring eisfair-64"
eisman mirror --relocate http://eis.local.net/packeismirror/eisfair-64 --system eisfair-64 /var/www/htdocs/packeismirror/eisfair-64

Die lokale Indexdatei erhält dadurch folgenden Inhalt:

# This file was automatically generated by eisman
# Last synchronization: 2023-11-25 21:39:24
7zip                 3.4.0      stable       http://eis.local.net/packeismirror/eisfair-1/7zip/3.4.0/7zip.tar.bz2.info eisfair-1
[...]

Statt eis.local.net kann auch die IP des Server, ein Dyn-DNS-Name oder localhost angegeben werden, wobei bei der Angabe localhost die Nutzung des Spiegelservers als Paketquelle nur für das System selbst möglich ist. Mittels cron-Job kann die Synchroniserung automatisiert werden, z. B.:

CRON_x_NAME='Synchronize Packeis 64bit'
CRON_x_ACTIVE='yes'
CRON_x_TIMES='0 1 * * *'
CRON_x_USER='root'
CRON_x_COMMAND='/pfad/zum/miror/script'

Um diesen Spiegelserver nun für ein eisfair-System als Paketserver nutzen zu können, ist dieser, wie andere Paketquellen auch, in der Paketkonfiguration als Quelle zu definieren, z. B.:

URL_x_NAME='Mein 64bit eisfair-Mirror'
URL_x_PATH='http://eis.local.net/packeismirror/eisfair-64/index.txt'
URL_x_SEARCH='yes'
URL_x_PRIORITY='normal'
URL_x_SECTION='no'

Hinweis: eisman löscht bei einem Synchronisierungslauf Pakete, die nicht mehr in der Indexdatei aufgeführt sind, nicht sofort auch vom lokalen Spiegel sondern nach 90 Tagen. Mit der Option --keep kann diese Bereinigung auch komplett unterbunden werden, so dass ein dauerhaftes Paketarchiv aufbauen kann.

  • No labels