Ein lokales Ubuntu-Repository ist von Vorteil wenn man zahlreiche Maschinen mit Ubuntu hat und Softwareinstallationen und/oder Updates durchführen möchte oder man gezwungen ist öfters Ubuntu neu auf diversen Maschinen installieren zu müssen.
Mir stand jedoch nur eine FedoraCore7-Maschine mit ausreichende Speicherplatz zur Verfügung, um dort ein Repository für gutsy einzurichten.
Einfacher wäre es das ganze Ubuntu-Repository mit rsync auf die lokale Fedora-Maschine zu kopieren.
Doch soviel Speicherplatz will ich nun auch wieder nicht opfern, vor allem da ich dabei auch deb-Pakete für nicht
benötigte Architekturen(sparc,powerpc) downloaden würde und auch Pakete für ältere Ubuntu-Releases, die ich für gutsy nicht benötige, erhalte.
(Okay, man kann bei rsync einiges über Optionen machen, wie --exclude=*sparc.deb, doch welche Pakete nur von gutsy benötigt werden - diese Aufgabe rein nur mit rsync lösen wird schwierig.)
Im Zuge meiner Recherche stoße ich auf das Debian-Programm debmirror.
debmirror ist ein Perlscript und wurde geschrieben um Debian-Repositories zu kopieren.
Ich lade daher die Datei debmirror_20070123.tar.gz von: http://ubuntu.sh.cvut.cz/pool/universe/d/debmirror/debmirror_20070123.tar.gz down.
In diesem Tar-Archiv findet sich das Perlscript debmirror (es wird nur diese Datei benötigt!).
Am Besten ist es diese Datei ins Verzeichnis /usr/bin zu kopieren (eventuell noch die Rechte checken!).
Starten Sie das Programm ohne weitere Optionen. Folgender Hilfetext sollte erscheinen:
mirrordir not specified
Usage: ./debmirror [--debug] [--progress] [--verbose] [--source|--nosource]
[--md5sums] [--passive] [--host=remotehost]
[--user=remoteusername] [--passwd=remoteuserpassword]
[--method=ftp|hftp|http|rsync]
[--timeout=seconds] [--root=directory]
[--dist=foo[,bar,..] ...] [--section=foo[,bar,..] ...]
[--arch=foo[,bar,..] ...] [--skippackages] [--getcontents]
[--postcleanup|--cleanup|--nocleanup] [--adddir=directory]
[--ignore=regex] [--exclude=regex] [--include=regex]
[--exclude-deb-section=regex] [--max-batch=number]
[--rsync-batch=number] [--ignore-missing-release]
[--ignore-release-gpg]
[--limit-priority=regex] [--dry-run]
[--proxy=http://user:pass@url:port/] [--help]
[--rsync-options=options] [--ignore-small-errors]
[--pdiff=use|mirror|none]
mirrordir
For details, see man page.
Erhält man eine Fehlermeldung, sind vermutlich von debmirror benötigte Perlmodule nicht installiert.
So sollte auf alle Fälle das rpm-Paket perl-libwww-perl installiert sein.
Nun wird ein Verzeichnis ubuntu erstellt auf einer Partition die ausreichend Speicherplatz bietet (mindestens 30GByte Speicherplatz sollten verfügbar sein)
Als Beispiel verwende ich das Verzeichnis /opt/pub/ubuntu
Im Homeverzeichnis eines Users der über Schreibberechtigung am Verzeichnis /opt/pub/ubuntu besitzt, wird das Shellscript getgutsy.sh mit folgendem Inhalt erzeugt:
#!/bin/bash
cd /opt/pub/ubuntu
/usr/bin/debmirror . --progress --nosource \
--host=ubuntu-releases.sh.cvut.cz \
--root=/ubuntu \
--dist=gutsy --section=main,multiverse,restricted,universe \
--method=rsync -r :ubuntu \
--arch=i386,amd64 --getcontents --ignore-release-gpg
exit 0
Dieses Script besteht aus nur drei Zeilen! d.h. die mittleren sechs Zeilen stellen tatsächlich nur eine Zeile dar!
Ist der Download beendet wird ein ftp-Server eingerichtet:
Zuerst die vsftpd-Software installieren:
# yum -y install vsftpd
Das Homeverzeichnis für den Account ftp wird verändert, damit ein Zugriff auf das Ubuntu-Repository per Anonymous-Ftp möglich ist:
# usermod -d /opt/pub ftp
Den vsftpd starten und testen ob Anonymous-Login möglich ist:
# service vsftpd start
# lftp 127.0.0.1
Gibt man nun das Kommando ls am ftp-Prompt ein, sollte ein Verzeichnis ubuntu aufgelistet werden.
Konfiguration auf den Ubuntu-Clients, die nun auf dieses Repository zugreifen sollen:
Dazu muss nur eine Zeile in die Datei /etc/apt/sources.list eingefügt werden:
deb ftp://10.10.10.20/ubuntu gutsy main restricted multiverse universe
Interessante Urls zu diesem Thema:
http://doku.lug-untermain.de/index.php/Debmirror_einrichten
http://www.debianforum.de/forum/viewtopic.php?p=568078&sid=7e656ba8480a94b2bf606d977fe905e9
https://answers.launchpad.net/ubuntu/+question/183
http://forum.ubuntuusers.de/topic/16961/?highlight=repository+rsync
0 Kommentare:
Kommentar veröffentlichen