Einen offline nutzbaren Naturführer erstellen

LinuxBeginner
Jetzt üben

Einführung

Für den gemeinsamen Naturspaziergang morgen wird ein Führer gebraucht, der auch bei unerreichbarer Quelle funktioniert. Du bringst fünf Seiten, drei Abbildungen, ein Stylesheet und einen druckbaren Beobachtungsbogen in einen separaten Ordner. Eine gespeicherte Startseite allein ermöglicht diesen Leseweg nicht.

Erkunde das Original in Source Guide, lade Dateien in Workstation herunter und lies deine Dateien in Field Copy. Du stoppst nur den bereitgestellten Quelldienst und öffnest anschließend eine noch ungelesene Karte und den Bogen aus der verschobenen Kopie. Die LabEx-Verbindung bleibt bestehen: Simuliert wird der Verlust der Inhaltsquelle, keine Trennung der gesamten Plattform.

Grundlegende Terminalkenntnisse reichen. URLs, Downloadoptionen und relative Links werden erklärt. Alle Texte und Abbildungen sind originale synthetische Lehrmaterialien, keine realen Bestimmungs-, Sammel- oder Sicherheitshinweise. Website und Befehlsausgaben bleiben in jeder Dokumentationssprache Englisch.

Speichere eine Seite und erkenne ihre Grenzen

In diesem Schritt folgst du dem tatsächlichen Leseweg und speicherst eine einzelne HTML-Seite als kontrollierten Vergleich. Dieses erste Ergebnis ist absichtlich unvollständig und noch nicht der fertige Führer.

Folge dem ursprünglichen Weg

Öffne Source Guide, wähle Woodland und dann Start the route. Folge Silver leaf, lies den Absatz und betrachte die Abbildung. Kehre mit Return to the route zurück. Öffne Open observation sheet: Das ist ein echtes SVG-Dokument mit Platz für Skizze und Beobachtungen. Gehe mit der Zurück-Schaltfläche des Browsers zurück. Lass Amber cap und Reed fan für den späteren Test ohne Quelle ungelesen.

Startseite, Route und drei Karten sind fünf unterschiedliche HTML-Dateien. Bilder, CSS-Gestaltung und SVG-Bogen sind weitere eigenständige Dateien. Harbor event — online only, outside this guide ist eine absichtlich ausgeschlossene Nachbarveranstaltung und gehört nicht zum Offline-Leseweg.

Lies eine URL und speichere die Startseite

Wechsle zu Workstation. pwd zeigt den aktuellen Ordner. Das vorbereitete Terminal startet im Projektarbeitsbereich:

pwd
/home/labex/project

Bei Bedarf wechselst du mit cd den Ordner:

cd /home/labex/project

Im Terminal erreichst du die Quelle unter http://127.0.0.1:8081/woodland/index.html. http:// wählt HTTP; 127.0.0.1 bezeichnet diesen Lab-Rechner selbst; 8081 ist der Quellport; /woodland/index.html ist der angeforderte Dateipfad. Der Tab Source Guide stellt denselben Dienst über eine Browseradresse der Plattform bereit. Gib die Loopback-Adresse des Terminals nicht im Browser deines eigenen Computers ein.

wget ruft eine URL ab. Die Option -O, mit großem O, benennt eine einzelne Ausgabedatei und überschreibt sie bei Wiederholung. Dieser Befehl speichert nur das HTML der Startseite:

wget -O first-save.html http://127.0.0.1:8081/woodland/index.html

Achte auf 200 OK und die Meldung über die gespeicherte Datei. Dauer und Bytezahl können abweichen. ls listet eine Datei auf, damit du ihren Namen prüfen kannst:

ls first-save.html

Öffne in Field Copy den Link First single-page save. Überschrift und Text sind vorhanden, doch Abbildungen und Gestaltung fehlen. Start the route liefert lokal 404: File not found, weil die Routenseite nicht heruntergeladen wurde. Mit Return to local files kommst du zum Lesetisch zurück. Das ist die erwartete Grenze, kein Defekt des Originals. Ein 404 bedeutet, dass ein Server geantwortet hat, den Pfad aber nicht besitzt; ein Verbindungsfehler bedeutet, dass der Dienst selbst nicht erreichbar war.

Der lokale Lesetisch stellt Dateien aus /home/labex/project auf Port 8082 bereit. Fehlende Dateien holt er niemals von der Quelle nach.

Sammle den Führer im erlaubten Umfang

In diesem Schritt sammelst du verlinkte Seiten und ihre Ressourcen, ohne die Nachbarveranstaltung herunterzuladen. Trenne zuerst die URL-Pfade des Führers von den Ausgabeordnern des Rechners.

Setze eine sinnvolle Grenze

Die Quelle ist so aufgebaut:

/woodland/                 homepage, route, species cards
/shared/woodland/          CSS, three illustrations, observation sheet
/harbor/                   a different activity: exclude it

Die drei Karten liegen unter /woodland/species/. Beobachtungsbogen und Gestaltung liegen außerhalb von /woodland/ im ausdrücklich erlaubten gemeinsamen Ordner. Nur Unterordner des Startverzeichnisses zu erlauben wäre zu eng. Den gesamten Host herunterzuladen wäre zu weit.

Wgets --recursive folgt Links; --level=inf entfernt die übliche Grenze von fünf Ebenen. Hier ist die Website klein und kontrolliert: Auch unbegrenzte Tiefe bleibt durch erlaubte Pfade begrenzt. --page-requisites sammelt zusätzlich Darstellungsressourcen wie Bilder und Stylesheets. Rekursive Sammlung entdeckt verlinkte Dateien, nicht jede unverlinkte Datei, die auf einem Server vorhanden sein könnte.

--include-directories=/woodland,/shared/woodland erlaubt diese beiden Verzeichnisbäume. Das Komma verbindet die erlaubten URL-Präfixe ohne Leerzeichen. Damit werden tiefere Artenpfade einbezogen und /harbor/ ausgeschlossen. --no-parent ist hier nicht nötig: Diese Option würde den benötigten gemeinsamen Nachbarordner blockieren.

--no-host-directories lässt einen zusätzlichen Hostnamenordner weg. --directory-prefix=raw-guide speichert die beibehaltene URL-Hierarchie unter deinem lokalen raw-guide/. Der Ordner wird automatisch erstellt. Führe diesen einen Befehl aus; das Terminal kann ihn bei der Anzeige umbrechen:

wget --recursive --level=inf --page-requisites --no-host-directories --directory-prefix=raw-guide --include-directories=/woodland,/shared/woodland http://127.0.0.1:8081/woodland/index.html

Wget liest und speichert außerdem die robots.txt der Quelle, die diesen Lehrdownload erlaubt. Sie enthält Crawler-Metadaten und ist keine weitere Führerseite. Erwarte fünf HTML-Seiten, fünf gemeinsame Ressourcen und diese Metadaten: insgesamt elf Dateien.

find raw-guide -type f listet reguläre Dateien im ganzen Verzeichnisbaum auf. -type f wählt Dateien statt Ordner:

find raw-guide -type f

Prüfe die beiden vorgesehenen Bäume und robots.txt; ein Ordner harbor/ darf nicht vorkommen. Die Reihenfolge ist unwichtig.

Öffne in Field Copy den Link Raw collected guide. Das HTML verwendet weiterhin Pfade wie /shared/woodland/guide.css. Ein führender Schrägstrich beginnt an der Wurzel des Leseservers, nicht bei raw-guide/. Die Dateien liegen unter raw-guide/shared/woodland/; die nicht umgewandelten Pfade verfehlen daher ihr Ziel.

Diese Unterscheidung ist wichtig: Richtige Dateien zu sammeln und Navigation auf diese Dateien zu lenken sind verschiedene Aufgaben. Kehre zum lokalen Lesetisch zurück. Behalte raw-guide/ als Vergleich und erstelle als Nächstes eine saubere transportable Kopie.

Meldet Wget einen Verbindungsfehler, führe in Workstation source-control start aus und versuche es erneut. Dieser vorbereitete Befehl startet nur die bereitgestellte Quelle. Er lädt nichts herunter und verändert deine Kopien nicht. Für einen erneuten Versuch mit leerem Ziel entfernt rm -r raw-guide nur diesen entbehrlichen Vergleichsordner samt Inhalt. Prüfe die Schreibweise vor diesem optionalen Wiederherstellungsbefehl.

Lass die Navigation mit der Kopie mitwandern

In diesem Schritt erstellst du den transportablen Ordner field-guide/ und nutzt seine echten Links. Wget kann heruntergeladene Verweise nach Abschluss der Sammlung umschreiben.

--convert-links wandelt Links auf heruntergeladene Dateien in relative Pfade um. Die kopierte Startseite verwendet etwa ../shared/woodland/guide.css; .. bezeichnet den übergeordneten Ordner. Eine tiefer liegende Karte braucht ein weiteres .., um dieselben gemeinsamen Ressourcen zu erreichen. Diese Pfade wandern mit dem Ordner, statt von der Wurzel des Leseservers abzuhängen.

Wiederhole die begrenzte Sammlung in einem neuen Ziel und ergänze die Linkumwandlung. Die Quelle läuft weiterhin:

wget --recursive --level=inf --page-requisites --convert-links --no-host-directories --directory-prefix=field-guide --include-directories=/woodland,/shared/woodland http://127.0.0.1:8081/woodland/index.html

Warte auf die abschließende Meldung Converted links. Die Umwandlung erfolgt nach dem Download, wenn Wget weiß, welche Ziele gespeichert wurden. Links zur ausgeschlossenen Harbor-Veranstaltung bleiben Online-Verweise; ihre Beschriftung nimmt diese Veranstaltung ausdrücklich aus dem Offline-Führer aus.

grep zeigt passende Textzeilen. Suche nach dem Stylesheet-Namen, um den relativen Verweis in deinem tatsächlichen HTML zu sehen:

grep 'guide.css' field-guide/woodland/index.html

Die Ausgabe ist eine lange HTML-Zeile. Suche darin ../shared/woodland/guide.css; du musst HTML weder verstehen noch bearbeiten. Die Anführungszeichen in 'guide.css' übergeben das Muster als ein Argument.

Wähle in Field Copy den Link Downloaded guide. Gestaltung und drei Abbildungen sollten nun erscheinen. Öffne Start the route, danach Silver leaf und All field notes. Beobachte die Browseradresse: Die Links bleiben unter /field-guide/ auf dem Field-Copy-Dienst. Lass die beiden anderen Karten für den nächsten Schritt ungeöffnet.

Bei 404 vergleiche die angeforderte Adresse mit find field-guide -type f: Fehlende Dateien brauchen Sammlung, falsche Wurzelpfade brauchen Linkumwandlung. Für einen sauberen Neuversuch entfernt der optionale Befehl rm -r field-guide nur diesen erzeugten transportablen Ordner; wiederhole danach den vollständigen Befehl. Ein vorhandenes Wget-Ziel erneut zu nutzen kann nummerierte Duplikate erzeugen. Eine gespeicherte .1-Datei ist deshalb nicht das beabsichtigte Ergebnis.

Stoppe die Quelle und verschiebe den Führer

In diesem Schritt prüfst du den Zweck der Kopie: Eine andere Person kann sie auch nach dem Stoppen der Quelle und dem Verschieben des Downloadordners verwenden.

Entferne die Abhängigkeit von der Quelle

Nutze in Workstation den vorbereiteten Stoppbefehl. Er betrifft nur Port 8081; Terminal und Field Copy bleiben verfügbar:

source-control stop
Source stopped; Field Copy is still running.

Lade Source Guide neu. Ein Verbindungs- oder Plattform-Gatewayfehler wird erwartet, weil der Quellprozess gestoppt ist. Eine zwischengespeicherte Quellseite beweist nicht, dass die Quelle noch läuft. Im Terminal fordert curl eine Adresse an; --max-time 3 begrenzt das Warten auf drei Sekunden. Der Zusatz || true lässt die Shell nach dieser absichtlich fehlschlagenden Anfrage fortfahren:

curl --max-time 3 http://127.0.0.1:8081/woodland/index.html || true

Erwarte einen Verbindungsfehler statt Führer-HTML. Damit ist die Quelle auch vom Lab-Rechner aus nachweislich nicht erreichbar. Öffne nun in Field Copy den Link Downloaded guide, dann Start the route und die ungelesene Karte Amber cap. Tatsächlicher Absatz und Abbildung müssen laden. Öffne dort Observation sheet; der echte druckbare SVG-Bogen muss erscheinen. Diese lokalen Adressen sind andere als die ursprünglichen Quell-URLs.

Eine vollständige lokale Artenkarte mit ihrer tatsächlichen Abbildung

Übergib einen verschiebbaren Ordner

Der leere Ordner handover/ ist schon vorhanden. mv verschiebt den ganzen Ordner mit allen Unterelementen. Der abschließende Schrägstrich in handover/ macht das Ziel als Ordner eindeutig:

mv field-guide handover/

Der alte Downloadort existiert nicht mehr. Liste den verschobenen Ordner auf:

ls handover/field-guide
robots.txt  shared  woodland

Öffne Field Copy in einem neuen privaten Browserfenster oder nutze einen neuen Tab und gehe vom Lesetisch zu Moved handover guide. Ein privates Fenster kann die normale Plattformanmeldung erfordern; für den Lernweg genügt ein neuer Field-Copy-Tab. Die verschobene URL lautet /handover/field-guide/woodland/index.html und wird vom lokalen Lesedienst bedient. Kehre nicht über ein veraltetes Lesezeichen zum alten Ort zurück.

Folge Start the route, öffne die bisher ungelesene Karte Reed fan, kehre über All field notes zurück und öffne Observation sheet. Über das Browsermenü kannst du den Bogen speichern oder drucken. Hier werden echte Dateien genutzt, keine Erfolgsanimation. Der Link Harbor event liegt außerhalb des Offline-Umfangs und muss nach dem Entfernen der Quelle nicht funktionieren.

Scheitert nun eine erforderliche Seite, stelle die Quelle mit source-control start wieder her, repariere nach dem vorherigen Schritt einen sauberen Download und ersetze den unvollständigen Übergabeordner nach Prüfung seines Pfads. Stoppe danach die Quelle und wiederhole den verschobenen Leseweg. Ein kompletter Lab-Neustart ist nicht erforderlich. Behalte die vollständige Übergabe als Endergebnis.

Dein fertiges Artefakt ist handover/field-guide/ einschließlich Inhalt und gemeinsamer Ressourcen. Dieses Lab prüft das Lesen im Browser über einen gewöhnlichen statischen Dateiserver. Es verspricht weder identisches file://-Verhalten in allen Browsern noch einen Plattform-Download des ganzen Ordners auf deinen Rechner mit einem Klick.

Zusammenfassung

Du hast eine einzelne gespeicherte HTML-Seite mit einer begrenzten rekursiven Sammlung verglichen, gemeinsame Abhängigkeiten einbezogen und Links in relative Pfade umgewandelt. Anschließend hast du die Quelle selbst gestoppt, ungelesenen Inhalt aus der unabhängigen lokalen Kopie genutzt und den vollständigen Ordner an den Übergabeort verschoben.

Das nützliche Ergebnis ist der Führer selbst: fünf lesbare Seiten, drei Abbildungen, ein Stylesheet und der echte Beobachtungsbogen sowie Crawler-Metadaten. Quellverfügbarkeit, Downloadumfang und funktionierende lokale Navigation sind unterschiedliche Eigenschaften. Du hast alle drei geprüft.