Pakete für Offline-PC

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Pakete für Offline-PC

Beitrag von debianx » 14.11.2018 14:53:02

Hallo,

zur Offline-installation von Paketen speichere ich auf einem Online-PC derzeit die Downloadliste und lade Sie runter um sie dann auf dem offline PC zu installieren.
Ein Nachteil hat das aber und zwar darf das Paket/Programm auf dem Online-PC wohl NICHT installiert sein.
Meine Frage ist: Wie kann ich die Pakete herunterladen, sodass sie auf den Paketstatus des offline-PC abgestimmt ist also unabhängig vom Online-PC?
Mein aktueller Vorgang ist bisher so:

- speichere downloadliste: apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > downloadliste
- lade dateien runter die in liste stehen: wget -i downloadliste
- kopiere die daten auf datenträger
- Gehe zum Offline-PC und installiere dort die Pakete: sudo dpkg -i *.deb

Ziel wäre zudem, mal abgesehen von Programminstallationen, so auch die Sicherheits-Updates machen zu können. Insofern müsste wohl die Erstellung der Downloadliste irgendwie auf den Paketstatus des Offline-PCs abgestimmt sein. Wie wäre es möglich Paketinstallationen sowie Updates abgestimmt auf den Offline-PC herunterzuladen?

Grüße

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Pakete für Offline-PC

Beitrag von eggy » 14.11.2018 15:03:10

debianx hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 14:53:02
- speichere downloadliste: apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > downloadliste
Mach den Schritt anfangs auf dem Offline PC, kopier die Liste auf den OnlinePC und dann den Rest wie beschrieben.

letzter3
Beiträge: 477
Registriert: 16.07.2011 22:07:31

Re: Pakete für Offline-PC

Beitrag von letzter3 » 14.11.2018 20:54:51

Und woher soll der offline PC wissen, welche Updates verfügbar sind?

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Pakete für Offline-PC

Beitrag von smutbert » 14.11.2018 21:02:46

Wenn du zumindest einmal vorübergehend eine Verbindung zum Internet herstellen kannst, wäre eventuell Debianapt-offline eine Lösung:
https://wiki.ubuntuusers.de/apt/apt-offline/

Ich habe, als ich einmal in der Situation war, die offline-Installation auf einen USB-Stick geklont und dann mit chroot auf einem System mit Internetverbindung die Pakete heruntergeladen/installiert (apt-get kennt den Schalter -d damit die Pakete nur heruntergeladen, aber nicht installiert werden).

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Pakete für Offline-PC

Beitrag von inne » 14.11.2018 21:05:57

Such mal nach Debianapt-mirror und Repository auf einer externen USB-Festplatte. Denke das ist eine Lösung.

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Pakete für Offline-PC

Beitrag von eggy » 14.11.2018 22:41:05

letzter3 hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 20:54:51
Und woher soll der offline PC wissen, welche Updates verfügbar sind?
aehm ups :oops:

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Pakete für Offline-PC

Beitrag von debianx » 14.11.2018 22:50:02

Danke ich werde mir apt-mirror mal ansehen.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Pakete für Offline-PC

Beitrag von debianx » 14.11.2018 23:56:21

Noch eine Frage, geht bei apt-mirror die Signaturprüfung verloren?, konnte dazu nichts finden.
Grüße

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Pakete für Offline-PC

Beitrag von inne » 15.11.2018 12:48:51

Ich kanns nicht mit Gewissheit sagen, vermute aber da zur Installation weiterhin die Paketverwaltung/APT verwendend wird, sollte auch die Archivauthentifizierungsunterstützung für APT zum Zuge kommen. Aber apt-mirror selbst prüft glaube ich nicht.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Pakete für Offline-PC

Beitrag von debianx » 19.11.2018 16:14:54

Ich versuche jetzt doch nochmal die Downloads selektiv auf den Zielcomputer abzustimmen.
Meine Idee wäre alle Pakete herunter zu laden die auf dem Zielcomputer installiert sind um damit dann offline "apt update" und "apt full-upgrade" durchzuführen (Programme sowohl Sicherheitsupdates).

1. Alle auf dem Zielcomputer installierten Programme in Datei speichern.
Gefunden dazu habe ich: dpkg -l | grep ii > programme

2. Auf dem Onlinecomputer die Programme in dieser Liste herunterladen.
Gefunden dazu habe ich apt-get download
damit sollte denke ich auch das Thema Signaturprüfung ok sein.

3. Die Downloads dann wieder auf den Zeilcomputer ziehen und damit dort die Updates machen (Programme sowohl Sicherheitsupdates).

Soweit die Idee.
Probleme hab ich jetzt noch bei Punkt 2: wie kann ich "apt-get download" auf Basis der Downloadliste von Punkt 1 durchführen? (Denn die Liste beinhaltet zb auch mehr als nur die Paketnamen...)
Und bei Punkt 3: wie mache ich "apt update" und "apt full-upgrade" auf Basis der heruntergeladenen Dateien?

viele Grüße

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Pakete für Offline-PC

Beitrag von MSfree » 19.11.2018 16:45:09

debianx hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 16:14:54
Und bei Punkt 3: wie mache ich "apt update" und "apt full-upgrade" auf Basis der heruntergeladenen Dateien?
Genau an dem Punkt wird es haken, wenn du apt-get nur ein Verzeichnis mit runtergeladenen deb-Dateien vorwirfst. Ohne es genau zu wissen, sagt mir mein Bauch, daß das, was du vorhast, zwar die Anzahl der runterzulandenden deb-Dateien minimiert, es wird aber nicht mit apt-get, apt oder aptitude zusammenspielen.

Ich habe selbst einen kompletten Debianmirror, den ich auch dazu benutze, den Server, der den Mirror hält, selbst zu aktualisieren. In meiner /etc/apt/sources.list steht:

Code: Alles auswählen

deb file:/pub/mirror/debian/ jessie main contrib non-free
deb file:/pub/mirror/debian/ jessie-backports main contrib non-free
deb file:/pub/mirror/debian-security/ jessie/updates main contrib non-free
Wobei das Verzeichnis /pub/mirror/debian eine Verzeichnis auf meiner Festplatte ist, unter dem der Mirror mit seiner kompletten Verzeichnisstruktur liegt, das Verzeichnis könnte aber genauso gut eine USB-Platte unter /media sein.

Du könntest also eine USB-Platte an einen Online-Rechner hängen, mittels apt-mirror aktualisieren, die USB-Platte an den Offline-Rechner stecken und dort mit apt-get update und apt-get upgrade und entsprechend angepaßter sources.list aktualisieren.

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Pakete für Offline-PC

Beitrag von inne » 19.11.2018 17:12:03

MSfree hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 16:45:09
Du könntest also eine USB-Platte an einen Online-Rechner hängen, mittels apt-mirror aktualisieren, die USB-Platte an den Offline-Rechner stecken und dort mit apt-get update und apt-get upgrade und entsprechend angepaßter sources.list aktualisieren.
So wäre das gedacht und dazu gab es auch mal ein Anleitung in den Weiten des Webs, aber da schaut es Heute wohl mau mit aus.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Pakete für Offline-PC

Beitrag von MSfree » 19.11.2018 18:29:45

inne hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 17:12:03
So wäre das gedacht und dazu gab es auch mal ein Anleitung in den Weiten des Webs, aber da schaut es Heute wohl mau mit aus.
Naja, wie man (auf dem Onlinerechner) einen apt-mirror einrichtet, ist im Web doch leicht zu finden, die Stichworte apt-mirror example in eine Suchmaschine des geringsten Mißtrauens eingegeben, führt einen schon auf die richtigen Seiten.

Viel mehr, als base_path in der /etc/apt/mirror.list auf die USB-Platte zeigen zu lassen statt auf /var/spool/apt-mirror, ist da ja nicht zu machen. OK die Distribution und die Architektur muß noch ausgewählt werden und die deb-sources kann man sich auch sparen, um den Mirror nicht ausufernd groß werden zu lassen. Mein Mirror belegt 800GiB für oldstable, stable, testing und SID jeweils in amd64 und x86 inklusive deb-sources. Ein Mirror, der z.B. nur stretch/amd64 spiegelt, dürfte unter 200GiB liegen.

Wie man die sources.list auf dem Offlinerechner anpaßt, habe ich ja oben schon angedeutet. Man verwende einfach die file: Direktive und lasse die Pfade auf den Mountpunkt plus Unterverzeichnis der angesteckten USB-Platte zeigen, und schon funktioniert das.

Der einzige Nachteil, der durch apt-mirror entsteht, ist, daß man relativ viel Plattenplatz für nicht genutzte Pakete benötigt. Das macht das erste Download des Mirrors zeitaufwendig. Danach werden aber wie mit apt-mirror (ähnlich rsync) nur noch neuere Pakete beim Aufruf übertragen. Für stable und oldstable hält sich das Datenvolumen in Grenzen, diese Distributionen ändern sich ja nur in geringem Umfang.

Der Vorteil ist, daß man durch den kompletten Mirror auf dem Offlinerechner Software nachinstallieren kann, ohne daß einzelne Pakete separat runterladen und per USB-Stick rüberkopieren werden müßten, wegen Abhängigkeiten ggfls. sogar mehrfach.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Pakete für Offline-PC

Beitrag von MSfree » 19.11.2018 18:36:55

inne hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 17:12:03
So wäre das gedacht und dazu gab es auch mal ein Anleitung in den Weiten des Webs, aber da schaut es Heute wohl mau mit aus.
Naja, wie man (auf dem Onlinerechner) einen apt-mirror einrichtet, ist im Web doch leicht zu finden, die Stichworte apt-mirror example in eine Suchmaschine des geringsten Mißtrauens eingegeben, führt einen schon auf die richtigen Seiten.

Viel mehr, als base_path in der /etc/apt/mirror.list auf die USB-Platte zeigen zu lassen statt auf /var/spool/apt-mirror, ist da ja nicht zu machen. OK die Distribution und die Architektur muß noch ausgewählt werden und die deb-sources kann man sich auch sparen, um den Mirror nicht ausufernd groß werden zu lassen. Mein Mirror belegt 800GiB für oldstable, stable, testing und SID jeweils in amd64 und x86 inklusive deb-sources. Ein Mirror, der z.B. nur stretch/amd64 spiegelt, dürfte unter 200GiB liegen.

Wie man die sources.list auf dem Offlinerechner anpaßt, habe ich ja oben schon angedeutet. Man verwende einfach die file: Direktive und lasse die Pfade auf den Mountpunkt plus Unterverzeichnis der angesteckten USB-Platte zeigen, und schon funktioniert das.

Der einzige Nachteil, der durch apt-mirror entsteht, ist, daß man relativ viel Plattenplatz für nicht genutzte Pakete benötigt. Das macht das erste Download des Mirrors zeitaufwendig. Danach werden aber wie mit apt-mirror (ähnlich rsync) nur noch neuere Pakete beim Aufruf übertragen. Für stable und oldstable hält sich das Datenvolumen in Grenzen, diese Distributionen ändern sich ja nur in geringem Umfang.

Der Vorteil ist, daß man durch den kompletten Mirror auf dem Offlinerechner Software nachinstallieren kann, ohne daß einzelne Pakete separat runtergeladen und per USB-Stick rüberkopiert werden müßten, wegen Abhängigkeiten ggfls. sogar mehrfach.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Pakete für Offline-PC

Beitrag von debianx » 19.11.2018 18:49:04

ok ein Versuch wars nochmal Wert :wink: aber dann ist apt-mirror scheinbar die saubere und beste Sache dafür. Anleitungen hab ich auch inzwischen einige gefunden das sollte passen.
Jetzt aber nochmal ganz paranoid gefragt, wenn apt-mirror alles per http runterzieht können die Daten auf dem Weg nicht manipuliert werden?
apt-get per http soll scheinbar über eine Signaturprüfung ok sein (wie auch immer das funktioniert) aber wie ist das mit apt-mirror?
Wäre es besser bei apt-mirror das http der Quellen dann durch ein https zu ersetzen?

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Pakete für Offline-PC

Beitrag von inne » 19.11.2018 19:03:18

Die Prüfung passiert erst mit apt/apt-get beim installieren. Aber wenn apt-mirror mit https funktioniert, wäre das zu empfehlen.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Pakete für Offline-PC

Beitrag von MSfree » 19.11.2018 19:14:16

debianx hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 18:49:04
Wäre es besser bei apt-mirror das http der Quellen dann durch ein https zu ersetzen?
Ich weiß nicht, ob https überhaupt unterstützt wird. Wenn ja, dann kann es nicht schaden. :wink:

Der Mirror aber beinhaltet Dateien mit Prüfsummen und GPG-Schlüsseln. Beides wird von der apt-Familie genutzt, um die Integrität der Debianpakete zu verifizieren.

debianx
Beiträge: 77
Registriert: 18.01.2017 17:04:10

Re: Pakete für Offline-PC

Beitrag von debianx » 20.11.2018 01:40:52

Danke, also bedeutet das apt/apt-get kann auch offline von einer beliebigen Quelle kompromittierte Pakete erkennen und die Installation solcher verhindern?

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Pakete für Offline-PC

Beitrag von MSfree » 20.11.2018 07:47:04

debianx hat geschrieben: ↑ zum Beitrag ↑
20.11.2018 01:40:52
Danke, also bedeutet das apt/apt-get kann auch offline von einer beliebigen Quelle kompromittierte Pakete erkennen und die Installation solcher verhindern?
Im Prinzip ja. Theoretisch könnte ein Angreifer natürlich während der Übertragung zum Onlinesystem Debianpakete manipulieren, neue Prüfsummen berechnen und in die Prüfsummendatei speichern und mit einem gefälschten GPG-Schlüssel signieren. Am Ende müßte noch der gefälschte Schlüssel auf dem Offlinerechner unter /etc/apt/trusted.gpg.d ersetzt werden, gegen die die Signaturen geprüft werden. Vor allem der letzte Schritt dürfte bei einem Offlinesystem fast unmöglich zu bewerkstelligen sein.

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Pakete für Offline-PC

Beitrag von inne » 20.11.2018 09:19:38

Könnte man nicht dscverify über den Pool von deb-mirror laufen lassen? Es muss dann nur das Paket Debiandebian-kering vertrauenswürdig und in der entsprechenden Version installiert sein.

Antworten