Was mir mitunter oft hier im Forum auffällt, ist folgendes Muster:
- Eine Person mit niedrigem oder zumindest nicht all zu hohem Kentnisslevel stellt eine Frage.
- Dann kommen mehrere erfahrene Forumsuser.
- Der Disput wird zu einer Diskussion auf Expertenniveau.
- Eine Einigkeit wird oft nicht erzielt.
- Der/Die Fragesteller:in erhält zu dem Anliegen eine für Ihn/Sie machbare Lösung zu bekommen, keine Unterstützung; nur verschiedene Detailinformationen, die er/sie selbst nicht nutzen kann.
- Oftmals hagelt es dann noch jede Menge Kritik, warum man denn überhaupt so etwas tun möchte.
- Da keine Lösung für das Anliegen geliefert wurde, wiederholt sich das Gleiche mit dem gleichen Thema gelegentlich.
Das Obige ist mir explizit bei diesem Thema aufgefallen und dabei finde ich das eine sehr gute Frage:
Wie kann ich mir ein lokales Repository basteln, aus dem ich offline Pakete installieren kann - und zwar den Pool von Paketen, den ich üblicherweise brauche?
Meine Situation
Gerade habe ich Software auf einem Server installieren wollen, der irgendwo im Keller steht ohne Internetverbindung aber glücklicherweise noch Strom. Der Server ist dafür da, Festplatten zu löschen und wiegt ca. 30 KG. Meine Anliegen ist jetzt: Was ist der geschickteste Weg, um Software unter Debian Offline zu installieren? Dabei ist das Ziel ein Repository, was den Pool von üblicherweise gebrauchten Softwarepaketen umfasst. Aktualität ist untergeordnet. Das Ganze soll derart sein, dass es für den Kenntnisstand eines Nicht-Profis auch eine Option ist. Dabei darf die Diskussion hier durchaus auf Expertenniveau sein. Vielleicht schreibe ich dann eine Anleitung (Wiki-Beitrag,...), die das für Laien einfach nachvollziehbar erklärt.
Mein Lösungsansatz
Nachdem ich mir zunächst nur eine DVD heruntergeladen hatte und das, was ich brauchte (fancontrol -> DVD #2), war da nicht drauf, habe ich mir dann alle 22 DVDs via jigdo-file erzeugt, anschließend den Inhalt in einzelne Verzeichnisse auf dem Zielserver kopiert und nutze das so als mein lokales Repository. Ich habe mir dazu natürlich Scripte geschrieben. Diese Scripte könnte man verbessern um ein lokales Repository zu erzeugen.
Gedanken zum Thema
- 22 DVD's sind bzgl. des Speicherplatzes ca. 90 GB. Das ist für einen Computer mit einer Festplatte noch erträglich, wenn auch aufwändig. Für einen Computer mit SSDs, die üblicherweise kleiner sind, ist das oftmals zuviel.
- Die Pakete wurden vom entsprechenden Debian Team vermutlich sehr gezielt auf die DVDs platziert, bestimmt grob mit der Maßgabe: Umso wichtiger, umso niedriger die Mediennummer (Siehe Debian Popularity Contest [7]), Ich habe das mal PopCon-Ergebnis und DVD-Inhalte verglichen. Das korrelliert grob. Es wäre also eine weitere Idee, anzunehmen: Wenn ich weniger Platz habe, dann nehme ich halt nicht alle 22 DVDs, sondern beispielsweise nur 5 und das reicht mir wahrscheinlich.
- Ein weiterer Punkt ist, dass ein universeller Popularity Contest wahrscheinlich nicht unbedingt hilfreich ist. Ich könnte mir vorstellen, dass wenn die Aufgabe des Zielrechners eingrenzbar ist, dann könnte man Pakete grundsätzlich zielgerichteter bzw. sortieren. Beispielsweise hat ein Server andere Paketprioritäten als, ein Desktopsystem oder eine Audio-Workstation, ...
- Ich habe überlegt, ob vielleicht nicht ein Mirror nicht eine bessere Lösung ist? Aber ein Mirror benötigt sehr viel Speicherplatz. Laut [1] sind es 741 GB für amd64. Das betrachte ich als unpraktikabel.
- Es gibt die Möglichkeit einzelne Pakete via apt-offline zu installieren [2],[3] oder ein github-script [4], das Pakete inkl. Abhängigkeiten herunterlädt. Das kann man machen, funktioniert wahrscheinlich auch so, wie es soll. Ist hier aber nicht mein Ziel. Ich möchte ein lokales Repo haben, um bei Bedarf Software installieren zu können, wozu sich dann jeweils gerade der Bedarf ergeben hat. Aktualität hat eine geringere Priorität.
- Bei Bedarf könnte man noch ein zusätzliches Medium von Debian-Security erzeugen. Hilfreich dafür könnte proxmox-offline-mirror [5] sein.
- Ich hatte auch den Gedanken, dass man vielleicht den Debian Mirror nur partiell herunterlädt. Allerdings scheint mir das nicht einfach zu sein. Eine Möglichkeit könnte sein, dass man diverse Sektionen [6] von Paketen ausschließt. proxmox-offline-mirror untersützt das. Ich habe hier eine Unklarheit und frage mich, wie sich das hier mit Abhängigkeiten verhält: Pakete aus Sektion A werden heruntergeladen. Pakete aus Sektion B nicht. Wie ist das jetzt, wenn eine Abhängigkeit eines Paketes von Sektion A auf ein Paket aus Sektion B existiert. Funktioniert dann das Paket aus Sektion A nicht, weil das Paket aus Sektion B offline nicht verfügbar ist?
[1] https://www.debian.org/mirror/size
[2] https://debiananwenderhandbuch.de/apt-offline.html
[3] https://www.ubuntumint.com/apt-offline- ... tu-debian/
[4] https://gist.github.com/jeanlescure/084 ... 31ea5a0fd9
[5] https://pom.proxmox.com/
[6] https://packages.debian.org/stable/
[7] https://popcon.debian.org/