Bei Problemen mit der Installation oder dem Update von MiKTeX-Paketen beispielsweise aus einem per Firewall abgesicherten Netzwerk wird teilweise empfohlen, ein lokales Repository nur mit den benötigten Paketen anzulegen und aus diesem zu installieren. Aber wie legt man ein solches lokales Repository an? Und wie kann ich dann bei der Installation bzw. beim Update angeben, dass dieses auch verwendet wird?

gefragt 11 Sep '15, 08:35

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%


Als erstes benötigt man einen Rechner, von dem aus Downloads via ftp oder http aus dem Internet möglich sind. Das muss kein Rechner in besagtem abgesicherten Netzwerk sein. Außerdem benötigt man einen Weg, um von diesem Download-Rechner Dateien auf den Arbeitsrechner zu kopieren. Dafür genügt beispielsweise ein USB-Stick, falls auf dem Arbeitsrechner das Lesen von Dateien von einem USB-Stick möglich ist.

Wenn man ein komplettes Repository möchte:

In diesem Fall bietet es sich an, den MiKTeX Net Installer aus den Other Downloads der MiKTeX-Download-Seite auf den Download-Rechner herunterzuladen und zu starten. Im Dialog (hier die 64bit-Version, es genügt aber auch auf 64bit-Windows die 32bit-Version):

alt text

Wählt man zunächst Download MiKTeX. Man wird dann aufgefordert einen passenden Mirror auszuwählen und kann auch das Verzeichnis für den Download bestimmen. Hier kann man beispielsweise einen (hinreichend großen) USB-Stick verwenden oder anschließend das gesamte Verzeichnis auf eine DVD brennen.

Alternativ kann man natürlich auch für ein vollständiges Repository den nachfolgend beschriebenen manuellen Weg für einzelne Pakete verwenden, indem man das gesamte dort angegebene Verzeichnis an Stelle einzelner Dateien herunter lädt.

Wenn man nur ein Repository mit einigen Paketen will:

Für das Anlegen des lokalen Repositories nur mit den gewünschten Paketen, wählt man sich zunächst einen der MiKTeX-Mirror aus. Eine aktuelle Liste findet man unter MiKTeX Package Repositories. Worldwide.. Nur für einzelne Pakete kann man notfalls auch direkt über das CTAN-Mirror MiKTeX Repository gehen, das zufällig einen Mirror auswählt.

Aus den im MiKTeX-Repository des gewählten Mirrors verfügbaren Paketen lädt man immer die beiden Dateien miktex-zzdb1-2.9.tar.lzma und miktex-zzdb2-2.9.tar.lzma herunter. Außerdem lädt man aus eben diesem MiKTeX-Repository – also aus demselben …/miktex/tm/packages-Verzeichnis, aus dem man miktex-zzdb1-2.9.tar.lzma und miktex-zzdb2-2.9.tar.lzma heruntergeladen hat – auch die Paketdateien herunter, die man später im lokalen Repository haben will. Und bitte die Paketdateien nicht erst noch auspacken. Sie werden genau in der Form benötigt, in der sie auch auf dem Server liegen, also in der Regel als (unveränderte) Archive mit Endung tar.lzma oder cab, wobei Windows in der Voreinstellung die Endung .cab nach dem Download leider meist nicht mehr anzeigt.

Die beiden angegebenen Dateien und die Paketdateien kopiert man dann in ein (neues) Verzeichnis auf dem Zielrechner. Dieses Verzeichnis dient nun als lokales Repository für die Installation. Es ist unbedingt zu beachten, dass man beim Download weiterer oder bei der Erneuerung alter Dateien auch immer die beiden Dateien miktex-zzdb1-2.9.tar.lzma und miktex-zzdb2-2.9.tar.lzma auf den aktuellen Stand bringt. Die Daten aus dieser Datei verwendet MiKTeX nämlich u. a., um zu erfahren, welche Paketversionen im Repository enthalten sind.

Hinweis: Es empfiehlt sich unbedingt alle Dateien von demselben Mirror zu laden, was bei Verwendung der beiden Dateilinks, miktex-zzdb1-2.9.tar.lzma und miktex-zzdb2-2.9.tar.lzma, aus diesem Beitrag nicht gewährleistet ist! Deshalb besser erst einen Mirror wählen und dann alle Dateien von diesem herunter laden.

Installation aus einem lokalen Repository

Egal ob aus einem kompletten lokalen Repository oder einem lokalen Repository mit nur wenigen Paketen, die Installation daraus ist immer gleich. Man startet den Paket- oder Updatemanager, wählt das Verzeichnis mit entweder den per Net Installer heruntergeladenen Dateien oder den oben genannten einzelnen Dateien als local Repository aus und führt dann die Installation der gewünschten Pakete aus. Natürlich kann man unabhängig von den angezeigten Paketen nur diejenigen installieren, die man tatsächlich in das lokale Repository kopiert hat.

Man kann das lokale Repository auch für Updates nutzen. Dann sollte man ganz besonders darauf achten, dass man in das lokale Repository auch alle Pakete kopiert hat, die für das Update markiert sind!

Nachsatz

Wenn man den Net Installer auch auf dem Zielrechner installiert, kann man das auf dem Downloadrechner per Net Installer erzeugte und auf den Zielrechner kopierte vollständige Repository auch verwenden, um ein komplettes MiKTeX auf dem Zielrechner zu installieren. Dazu dient schlicht der zweite Punkt im oben gezeigten Dialog.

So ein vollständiges, lokales Repository ist auch praktisch, wenn man regelmäßig mehrere MiKTeX-Installationen aktualisieren oder ergänzen möchte und keine sehr schnelle Internet-Anbindung besitzt. Man kann dann einfach auf einem USB-Stick oder einem Netzlaufwerk beispielsweise per rsync (Achtung: Nicht alle Mirror verstehen rsync!) ein einziges lokales Repository aktuell halten und für alle Installations- oder Updatearbeiten darüber arbeiten.

Permanenter link

beantwortet 11 Sep '15, 09:09

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 21 Jul '17, 16:08

esdd's gravatar image

esdd
17.7k254256

Du solltest vielleicht hinzufügen, dass mit "Außerdem lädt man die Paketdateien herunter" nur Dateien aus tm/packages gemeint sind. (Es gibt viele, die versuchen normale CTAN-zip oder Pakete aus externen Quellen so zu installieren.)

(11 Sep '15, 13:15) Ulrike Fischer
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×117
×43
×30
×6

gestellte Frage: 11 Sep '15, 08:35

Frage wurde gesehen: 24,322 Mal

zuletzt geändert: 21 Jul '17, 16:08