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 7 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, der F(ull)Q(ualified)D(omain)N(ame), 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='high'
URL_x_SECTION='no'

Die Standard-Paketquelle Packeis sollte auf die Priorität normal gestellt werden, damit sie dem eigenen Spiegelserver nicht vorgezogen wird. Zudem ist nun noch mit dem Befehl “eisman update” die lokale Paketdatenbank neu aufzubauen, damit die Download-URL nun sofort auf den eigenen Spiegelserver verweisen.

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