bibliotheks-und-archivinfor.../01_technische-grundlagen.md

12 KiB

Technische Grundlagen

  • Schaubild zu Lehrinhalten
  • Einrichtung der Arbeitsumgebung (Linux)
  • Grundlagen der Unix Shell
  • Versionskontrolle mit git
  • Blog mit GitHub Pages

Schaubild zu Lehrinhalten

erstellt mit mermaid

Note:

  • In diesem Schaubild sind links die Lokalsysteme (Bibliothekssytem Koha, Archivinformationssystem ArchivesSpace, Repository-Software DSpace) aufgeführt. Diese bieten jeweils eine OAI-Schnittstelle an.
  • Mit einer speziellen Software (hier: VuFindHarvest) werden die Metadaten im jeweils spezifischen Format eingesammelt. Über einen XSLT Crosswalk werden die Daten dann einheitlich in MARC21-XML überführt. Zusätzlich werden Tabellendaten (CSV) mit OpenRefine ebenfalls in MARC21-XML transformiert.
  • Abschließend werden alle MARC21-XML-Daten in die Discovery-Lösung VuFind eingespielt.
  • Wir lernen die Systeme, Schnittstellen, Tools und Formate Schritt für Schritt kennen. Am Ende des Kurses sollten Sie das Schaubild dann in eigenen Worten erklären können.

Einrichtung der Arbeitsumgebung (Linux)

Arbeitsumgebung

  • Jede/r erhält eine virtuelle Maschine der FH Graubünden mit Ubuntu Linux.
  • Sie haben volle Administrationsrechte.
  • Dozenten haben zur Unterstützung und Fehlerbehebung ebenfalls Zugriff darauf.

Linux

Note:

  • Normalerweise werden Linux-Server aus Sicherheitsgründen ohne grafische Oberfläche administriert, also nur über die Kommandozeile.

Zugriff auf die virtuelle Maschine

  1. Mit dem Netzwerk der FHGR verbinden (ggf. via VPN)
  2. https://horizon.fh-htwchur.ch aufrufen
  3. Zugriff auf die virtuelle Maschine (Ubuntu) entweder direkt über den Browser (HTML5) oder über eine Zusatzsoftware (Horizon Client)

Sie können sich an allen drei Punkten (VPN, Horizon und Ubuntu) mit Ihrem persönlichen FHGR-Konto anmelden. Achtung: Beim Anmeldebildschirm von Ubuntu ist ein US-Tastaturlayout eingestellt.

Note:

Übung: Verbindung testen

Bitte verbinden Sie sich jetzt mit der virtuellen Maschine. Nach dem Login sollte es etwa so aussehen:

Screenshot des Ubuntu-Desktops

Grundeinstellungen

  1. Favoriten
  • Unten links Anwendungsmenü öffnen
  • Programm suchen (Terminal und Text Editor)
  • Rechtsklick auf Icon und Add to Favorites wählen
  1. Startseite im Firefox Browser
  • Die Übersichtsseite des gemeinsamen Dokuments aufrufen
  • Über das Sternchen in der Adressleiste ein Lesezeichen setzen

Note:

  • Teilnehmer*innen mit Mac? Dann im Applikationsmenü "Region & Language" das Keyboard Layout "German (Switzerland, Macintosh)" ergänzen und auswählen

Grundlagen der Unix Shell

  • Wird benötigt zur Administration von Servern
  • Ist aber auch zur Automatisierung von kleineren Aufgaben beliebt (Shell-Scripte)

Note:

  • Die Unix Shell werden wir im Kurs öfter für Installation und Konfiguration der Software verwenden. Daher beginnen wir hier mit einer Wiederholung der wichtigsten Kommandos, damit uns das später leichter fällt.
  • Es gibt verschiedene Varianten der Shell. Ubuntu verwendet Bash.

Download der Materialien

  1. In das Home-Verzeichnis wechseln

    cd
    
  2. Archiv shell-lesson.zip von Library Carpentry herunterladen

    wget https://librarycarpentry.org/lc-shell/data/shell-lesson.zip
    
  3. Archiv in den Ordner shell-lesson entpacken und Archiv löschen

    unzip shell-lesson.zip -d shell-lesson
    rm shell-lesson.zip
    

Übungen

Aufgaben:

  1. Bearbeiten Sie das zweite Kapitel Navigating the filesystem der Library Carpentry Lesson zur Unix Shell
  2. Bearbeiten Sie das dritte Kapitel Working with files and directories der Library Carpentry Lesson zur Unix Shell

Tipps zur Unix Shell

  • Copy & Paste im Terminal mit Rechtsklick oder STRG+SHIFT+C und STRG+SHIFT+V
  • Nutzen Sie immer die Tab-Taste für die Autovervollständigung.
  • Seien Sie faul, verwenden Sie Ihre persönliche Befehlshistorie (Pfeiltaste nach oben / Suche in der Historie mit STRG+R).
  • Wichtig ist die Unterscheidung zwischen Programm (ls) und Parametern (-l).
  • Nutzen Sie Spickzettel für die wichtigsten Kommandos wie z.B. Library Carpentry Reference oder Cheatsheet für Shell-Scripte.

Note:

  • Alle Programme in der Unix Shell sind ähnlich aufgebaut. Wenn Sie das Grundprinzip mit der Unterscheidung von Programm und Parametern verinnerlicht haben, dann hilft Ihnen auch die integrierte Hilfe (--help) weiter.
  • Linux hat ein integriertes Nutzerhandbuch, das zu beinahe jedem Kommando und Programm hilfreiche Dokumentation enthält: man (auch via Google)

Redirects und Pipes

Library Carpentry Illustration Redirects and Pipes

Note:

  1. Bei einer normalen Eingabe landet das Ergebnis im Terminal. wc steht für "word count" und liefert mit dem Parameter -l die Anzahl der Zeilen. Die Angabe *.tsv bedeutet alle Dateien mit der Dateiendung "tsv".
  2. Stattdessen kann das Ergebnis aber auch in eine Datei umgelenkt werden mit der spitzen Klammer >
  3. Das Ergebnis eines Programms kann mit "Pipes" (|) direkt weiterverarbeitet werden. Welche Ausgabe erwarten Sie?

Versionskontrolle mit git

  • Aus Zeitgründen schauen wir uns nur Grundfunktionen von git an.
  • Wenn Sie im Anschluss selbst üben möchten, bietet Library Carpentry dazu ausführliche Lehrmaterialien

Note:

  • Durch die Plattform GitHub, auf der Informatiker*innen Ihren Quellcode ablegen, ist das Versionskontrollsystem Git sehr populär geworden. Es ist nicht nur für die Entwicklung von Software, sondern generell für die Zusammenarbeit in Projekten extrem hilfreich.

Wozu Git?

  • Git ist eine Software zur Versionskontrolle
  • Ermöglicht die Arbeit an Textdateien auf mehreren Computern und/oder mit mehreren Personen zu synchronisieren.
  • Jede Änderung wird nachvollziehbar.
  • Funktioniert mit allen Textdateien, also geeignet für Code, Plain Text oder auch Tabellen (CSV).

Note:

  • Git wurde entwickelt für die gemeinsame Software-Entwicklung; heute gibt es weitere Anwendungsfälle (z.B. Texte, Präsentationen oder Forschungsdaten).

Unterschied Git und GitHub

  • Git kann zunächst auch lokal auf einem Computer verwendet werden.
  • Wenn ein Git Repository im Netz bereitgestellt werden soll, braucht es eine Installation von Git auf einem Webserver.
  • Das kann man selber machen oder eine Plattform nutzen. Die bekannteste ist GitHub.

Note:

  • GitHub ist ein 2007 gegründetes Unternehmen, das 2018 aufgekauft wurde. Die meisten Dienstleistungen sind kostenfrei, aber das muss nicht unbedingt so bleiben. Es ist so erfolgreich, dass praktisch jedes Open-Source-Projekt dort seinen Code ablegt.
  • Alternativen zu GitHub sind unter anderem GitLab, BitBucket oder auch das Urgestein SourceForge.
  • Viele Bibliotheken nutzen GitHub oder GitLab. Es gibt eine gemeinschaftlich gepflegte Liste BibsOnGitHub, auf der Listen von Bibliotheken und deren Repositorien eingesehen werden können.

Programme installieren

  1. Verzeichnis aktualisieren

    sudo apt update
    
  2. Programme installieren

    sudo apt install git curl
    

Note:

  • Darauf folgt eine Passwortabfrage (nochmal das gleiche)
  • Änderungen werden komplex angezeigt, diese müssen dann nochmal mit J (oder Enter) bestätigt werden
  • Die Paketverwaltung unter Linux ist vergleichbar mit einem App-Store von Apple oder Google
  • Als Beispiel nutzen wir das GitHub Repository dieses Kurses, in dem die Lehrmaterialien liegen.
  • Sie ergänzen darin den Link zu Ihrem Lerntagebuch.
  • So gehen wir vor:
    1. Kopie des Repositories erstellen ("Fork")
    2. Dateien aus Ihrem Fork herunterladen ("clone")
    3. Link zu Ihrem Lerntagebuch in README.md einfügen
    4. Die Änderung mit einer Notiz hochladen ("commit")
    5. Übernahme der Änderung anfragen ("Pull request")

Schritt 0: Git konfigurieren

Name und E-Mail für Git hinterlegen

git config --global user.name "Felix Lohmeier"
git config --global user.email "mail@felixlohmeier.de"

Note:

  • Ersetzen Sie die Angaben durch Ihre eigenen und verwenden Sie dieselbe E-Mail-Adresse, mit der Sie sich bei GitHub registriert haben. Dadurch kann GitHub Ihnen alle Änderungen zuordnen.
  • Die Konfiguration ist nur einmalig nötig. Sie wird in Ihrem Home-Verzeichnis gespeichert (~/.gitconfig) und künftig für jedes Repository automatisch als Standard verwendet.

Schritt 1: Kopie des Repositories erstellen

Schritt 2: Dateien herunterladen

Um die Dateien aus Ihrem Fork herunterzuladen ("klonen") geben Sie den folgenden Befehl ins Terminal ein.

Ersetzen Sie dabei ... durch den Link zu Ihrem Fork.

git clone ...

Wechseln Sie in das erstellte Verzeichnis.

cd bibliotheks-und-archivinformatik

Schritt 3: Änderung lokal durchführen

  1. Datei README.md in Texteditor öffnen und Link zu Ihrem Lerntagebuch in Abschnitt "Lerntagebücher" einfügen.

  2. Lassen Sie sich von git die Änderungen anzeigen:

    git diff
    
  3. Lassen Sie sich von git die geänderten Dateien anzeigen:

    git status
    

Schritt 4: Änderung hochladen

  1. Datei zum Päckchen hinzufügen

    git add README.md
    
  2. Absender eintragen (mit Ihren Daten ersetzen)

    git config user.email "mail@felixlohmeier.de"
    git config user.name "Felix Lohmeier"
    
  3. Packzettel beilegen und Päckchen schließen

    git commit -m "Link zu meinem Lerntagebuch"
    
  4. Päckchen abschicken

    git push
    

Schritt 5: Pull Request erstellen

  • Mit wenigen Sekunden Verzögerung sollte Ihre Änderung nun auch bei GitHub angekommen sein.
  • Öffnen Sie Ihren Fork bei GitHub.
  • Klicken Sie auf den Link "Pull request". Dann erscheint ein Vergleich. Klicken Sie dort auf den Button "Create pull request".
  • Vervollständigen Sie das Formular und klicken Sie auf den Button "Create pull request".

Ergebnis auf GitHub

Sie finden Ihren Pull Request im ursprünglichen Repository bei GitHub im Tab "Pull requests":

https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/pulls

Blog mit GitHub Pages

  • Mit GitHub Pages lassen sich statische Webseiten direkt aus den Dateien im GitHub Repository generieren und auf Servern von GitHub kostenfrei veröffentlichen.
  • GitHub verwendet dazu den (hauseigenen) Static-Site-Generator Jekyll.
    • Die Software nimmt Markdown- und HTML-Dateien und generiert daraus eine komplette Webseite.
    • Die Darstellung (Themes) lässt sich über eine Konfigurationsdatei einstellen.

Aufgaben

Bis zum nächsten Termin:

  1. Lerntagebuch einrichten
  1. Einführungsartikel (wo bin ich gestartet?)
  2. Beitrag zu dieser Lehreinheit "Technische Grundlagen"