• Keine Ergebnisse gefunden

ICT-Infrastruktur für Bildungsaufgaben

N/A
N/A
Protected

Academic year: 2021

Aktie "ICT-Infrastruktur für Bildungsaufgaben"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

ICT-Infrastruktur für Bildungsaufgaben

3. Software/Paketverwaltung

Thomas Leitner <thomas.leitner@univie.ac.at>

Fakultät für Mathematik, Universität Wien Sommersemester 2013

Letzte Änderung: 2013-09-20 20:46:17 +0200

Inhalt

Software unter Linux Geschichtliches

Softwarepaketverwaltung Repositories und Pakete Befehle

Software unter Linux 1

Unter Linux gibt es eine andere Herangehensweise an Software als unter Microsoft Windows oder Apple Mac OS X.

Während in den letzteren zwei Betriebssystem die Dateien einer Applikation zumeist in einem einzigen Verzeichnis zu finden sind, sind die Dateien einer Applikation unter Linux auf mehrere Verzeichnisse aufgeteilt:

/bin/

→ Hier liegen die ausführbaren Dateien, wenn sie für den Systembetrieb wichtig sind.

/usr/bin/

→ Hier liegen alle sonstigen ausführbaren Dateien.

/usr/lib/

→ Hier liegen die benötigten Bibliotheken.

/usr/share/APP_NAME/

→ Hier liegen Datendateien (z.B. Bilder).

/usr/share/doc/PAKET_NAME

→ Hier findet man die Dokumentation zum Paket.

/usr/share/man/

→ In diesem Verzeichnisbaum werden die Manpages abgelegt.

Software unter Linux 2

Unter Windows ist es auch so, dass die Applikationen alle benötigten Bibliotheken, die nicht automatisch auf dem System installiert sind, mitinstallieren.

Im Gegensatz dazu wird unter Linux eine Bibliothek nur einmal separat von den Applikationen installiert (nämlich in

/usr/lib/

) und alle Applikationen können darauf zugreifen. Durch die Standardisierung der Bibliotheksnamen und die Verwendung von symbolischen Links ist es auch möglich, mehrere Versionen ein und derselben Bibliothek auf einem System installiert zu haben.

Dieses System hat mehrere Vorteile:

Man weiß genau, wo alle und welche Bibliotheken installiert sind.

Weniger Speicherplatz wird verbraucht.

Bei Sicherheitsproblemen muss man die Bibliothek nur an einer Stelle austauschen.

Das hat aber auch zur Folge, dass man sicherstellen muss, dass alle benötigten Komponenten für eine Applikation installiert sind. Hier kommt die Softwarepaketverwaltung von Linux ins Spiel.

Geschichtliches

Fast alle Softwarepakete, die für Linux verfügbar sind, können gratis benutzt werden. Alleine bei einer Basisinstallation werden hunderte wichtige Pakete installiert. Ohne diesen Grundgedanken der freien Software wäre Linux nicht das, was es jetzt ist!

Als der Linux Kernel noch sehr jung war (Anfang der 90er Jahre), haben die Softwareentwickler in der Linux-Community rasch festgestellt, dass es zwar gut ist, frei verfügbare Software zu haben, aber dass man es den meisten Benutzer nicht zumuten kann, diese selbst zu kompilieren. Neben dem Kernel braucht man ja noch jede Menge anderer Software (Shell, C- Bibliothek, …), um ein funktionierendes System zu erhalten.

Das Ergebnis war, dass man den Linux-Kernel und die nötige Software im Binärformat in Softwarepaketen in einer sogenannten Distribution zur Verfügung stellte. Gab es ganz am Anfang nur sehr primitive Mittel, um den Linux-Kernel und die Software mittels so einer Distributionen zu installieren, ging die Entwicklung rasch voran und schon 1993 gab es die ersten Distributionen auf Basis von dpkg (Debian) und rpm (Red Hat).

Softwareverzeichnisse

(2)

Die meisten Open Source Projekte können nicht so wie Firmen mit proprietäre Programmen durch Marketing auf sich aufmerksam machen, da sie einfach nicht das Geld dafür haben. Viele Entwickler haben nicht einmal selbst einen Webserver, um die Software zu publizieren.

Dadurch gab es schon sehr früh Dienste, die es Entwicklern ermöglichte, Softwareprojekte einfach durchzuführen. Dazu stellen diese Dienste Webspace, Issue Tracker, Versionskontrollsysteme und einiges mehr bereit.

Das hat nicht nur für die Entwickler Vorteile, sondern auch Anwender haben eine (oder mehrere Anlaufstellen), wo sie nach bestimmter Software suchen können.

Einer der ältesten solcher Dienste ist Source Forge. Die Software dahinter kann man selbst kostenlos verwenden und es gibt einige Webseiten im Stil von Source Forge, die sich auf spezielle Software beschränken (z.B. gibt es auf RubyForge nur Programme/Bibliotheken in der Programmiersprache Ruby).

Einige andere Dienste sind Github (derzeit der populärste), Google Code und Microsoft CodePlex. Auf der Webseite FreeCode werden Neuigkeiten zu vielen Open Source Projekten zusätzlich bekanntgegeben.

Softwarepaketverwaltung - Repositories

Einer der wichtigsten Unterschiede zwischen den verschiedenen Linux-Distribution ist diese Softwarepaketverwaltung.

Die zwei verbreitetsten Paketformate sind deb („Debian package“; von Debian, Ubuntu und anderen Debian-Derivaten verwendet) und rpm („RPM Package Manager“; z.B. von Red Hat und openSUSE verwendet). In der Vorlesung werden wir nur Ubuntu und das deb-Format betrachten.

Die Softwarepakete werden über ein sogenanntes Repository zur Verfügung gestellt, welches spezifisch für jede

Distribution ist. Es umfasst jeden Typ von Software (Kernel, Administration, Anwendung) und zusätzlich auch Dokumentation sowie Default-Konfigurationen.

Das Ubuntu Package Repository bietet einen Überblick über alle Pakete, die man in Ubuntu direkt über die eingebaute Paketverwaltung installieren.

Softwarepaketverwaltung - Pakete

Die Softwarepakete unter Ubuntu beinhalten unter anderem folgende Komponenten (genaue Informationen dazu sind im Debian FAQ zu finden):

Programmdateien, Konfigurationsdateien, sonstige Daten Skripte, die bei der (De)Installation benötigt werden

Meta-Information (Name, Version, Beschreibung, Abhängigkeiten, …) Signatur (zur Sicherstellung, dass niemand das Paket verändert hat)

Ein ganz wichtiger Punkt ist, dass zwischen diesen Paketen Abhängigkeiten definiert sind. Das heißt in der Praxis, dass ein Paket für ein Programm zusätzlich die Anwesenheit von weiteren Paketen benötigt. So wird zum Beispiel sichergestellt, dass bei der Installation eines Audio-Players die nötigten Audio-Codecs installiert werden.

Softwarepaketverwaltung - Werkzeuge

Unter Ubuntu gibt es zwei primäre Werkzeuge, die für die Verwaltung von Paketen und Repositories verwendet werden:

dpkg → Dieses Werkzeug arbeitet auf der untersten Ebene, also direkt mit den Paketen. Es wird benutzt um einzelne Pakete zu installieren, zu entfernen bzw. um allgemein Pakete zu verwalten.

apt → Die Abkürzung für Advanced Packaging Tool bezeichnet eine Familie von Programmen, die auf dpkg aufbauen und für die eigentliche Paketverwaltung benutzt werden. Es besitzt unter anderem eingebaute Funktionalitäten zum Verwalten von Repositories, Herunterladen von Paketen und zum automatischen Installieren von Abhängigkeiten.

Abhängigkeiten des Pakets coreutils

(3)

Das Programm

apt-rdepends

erleichtert die Analyse von Paketabhängigkeiten, z.B. durch das Erstellen solcher Grafiken.

apt-rdepends -d coreutils | dot -Tpng >coreutils.png Paketverwaltung mit dpkg

Paketintegrität mit debsums überprüfen

Für jede Datei in einem Paket wird ein kryptographischer Hashwert erstellt (ein MD5-Hashwert). Dadurch kann man später überprüfen, ob eine Datei seit der Installation verändert worden ist.

Falls man ein verändertes Paket findet, kann man dieses mit

apt-get install --reinstall Paket

neu installieren.

Verwalten von Repositories

Repositories werden über die APT-Familie von Werkzeugen verwaltet. Die Konfigurationsdateien liegen in

/etc/apt/

:

sources.list

→ Definiert die Hauptrepositories, die das System verwenden soll.

sources.list.d/*.list

→ Zusätzliche Repositories, die verwendet werden sollen.

dpkg - Verwaltet .deb-Softwarepakete

Optionen:

-i Package.deb

→ installieren eines Pakets,

-l

→ auflisten aller installierten Pakete,

-r Paketname

→ entfernen eines Pakets,

-L Paketname

→ Dateien des Pakets auflisten,

-S Pfad

→ Paket suchen, in dem der Pfad vorkommt.

$ dpkg -l | grep dpkg

ii dpkg 1.16.7ubuntu6 amd64 Debian package management system ii dpkg-dev 1.16.7ubuntu6 all Debian package development tools ii libdpkg-perl 1.16.7ubuntu6 all Dpkg perl modules

$ dpkg -S /usr/bin/dpkg dpkg: /usr/bin/dpkg

»

»

debsums - MD5-Werte von installierten Paketen überprüfen

Optionen:

-s

→ Nur Fehler ausgeben,

-c

→ Veränderte Dateien ausgeben.

$ debsums -s curl

$ sudo bash -c 'echo test > /usr/bin/curl'

$ debsums curl

/usr/bin/curl FAILED /usr/share/doc/curl/MANUAL.gz OK /usr/share/doc/curl/TheArtOfHttpScripting.gz OK /usr/share/doc/curl/copyright OK /usr/share/man/man1/curl.1.gz OK

$ sudo apt-get install --reinstall curl ...

$ debsums -s curl

$

»

»

(4)

sources.list.d/*.list

→ Zusätzliche Repositories, die verwendet werden sollen.

apt.conf.d/*

→ Konfigurationsdateien

trusted.gpg

→ GnuPG Schlüsseldatei.

Repositories sind über HTTP oder FTP freigegeben Verzeichnisse, die einer bestimmten Struktur folgen. In dieser Struktur gibt es neben den eigentlichen Paketdateien (mit der Endung

.deb

) auch Dateien mit Informationen über alle verfügbaren Pakete des Repositories.

Die Liste der Paketdaten eines Repositories wird (ähnlich wie Pakete) mit Hilfe einer Signatur vor Fälschung geschützt. Die dafür benötigten Schlüssel werdne in der oben angegeben Datei verwaltet.

Verwalten von Repositories - apt-key

Verwalten von Repositories - apt-get

Verwalten von Repositories - apt-cache

Automatisches Update - unattended-upgrades

Um Sicherheitsupdates automatisch einspielen zu lassen, gibt es einige Möglichkeiten (z.B. cron-apt und unattended- upgrades).

Für die Verwendung von unattended-upgrades das gleichnamige Paket installieren und die Konfiguration anpassen:

Das Programm durch Anpassen der folgenden Optionen aktiveren:

apt-key - Verwalten von Repository-Schlüsseln

Befehle:

list

→ Auflisten aller Schlüssel,

add Datei

→ Hinzufügen eines Schlüssel aus einer Datei,

del KeyID

→ Löschen eines Schlüssels.

$ apt-key list | head -n 11 /etc/apt/trusted.gpg

---

pub 1024D/437D05B5 2004-09-12

uid Ubuntu Archive Automatic Signing Key sub 2048g/79164387 2004-09-12

pub 1024D/FBB75451 2004-12-30

uid Ubuntu CD Image Automatic Signing Key pub 1024D/3E5C1192 2010-09-20

uid Ubuntu Extras Archive Automatic Signing Key

»

»

apt-get - APT Paketverwaltungstool

Bietet extrem viele Unterbefehle und Optionen (und hat sogar Super-Kuh-Fähigkeiten…).

Die wichtigsten Befehle:

update

→ Paketquellen von Repositories herunterladen und überprüfen, ob Updates vorhanden sind

upgrade

→ Alle Pakete auf den neuesten Stand bringen (zuvor ein

update

machen)

install Paket...

→ Installiert die Pakete und eventuell benötigte Abhängigkeiten

remove Paket

/

purge Paket

→ Entfernen das Paket (und im zweiten Fall auch die Konfigurationsdateien)

»

»

apt-cache - Den APT-Cache durchsuchen

Nach einem

apt-get update

liegen die Paketquellen lokal am Rechner und können mit Hilfe dieses Programms durchsucht werden.

Befehle:

show

→ Informationen zu einem Paket anzeigen,

search

→ Mit Hilfe eines Regexps die Paketquellen durchsuchen

$ apt-cache search kramdown

ruby-kramdown - Fast, pure-Ruby Markdown-superset converter

$ apt-cache show kramdown | head -n 10 Package: ruby-kramdown

Priority: optional Section: universe/ruby Installed-Size: 1349

Maintainer: Ubuntu Developers

Original-Maintainer: Debian Ruby Extras Maintainers Architecture: all

Version: 0.13.7-2

Depends: ruby | ruby-interpreter, ruby-coderay, libjs-jquery

Filename: pool/universe/r/ruby-kramdown/ruby-kramdown_0.13.7-2_all.deb

»

»

»

(5)

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Unattended-Upgrade "1";

Die erste Option stellt sicher, dass die Repository-Daten aktuell sind und die zweite aktiviert die automatischen Updates mittels unattended-upgrades.

In der Datei

/etc/apt/apt.conf.d/50unattended-upgrades

sollte man zusätzlich zumindest noch einstellen, welche Repositories für Updates herangezogen werden sollen, wenn man mit den

Standardeinstellungen nicht zufrieden ist (Option

Unattended-Upgrade::Allowed-Origins

).

Das Programm wird dann regelmäßig durch den Cron-Job

/etc/cron.daily/apt

ausgeführt.

Copyright und Lizenz

Copyright: Thomas Leitner thomas.leitner@univie.ac.at Lizenz: Creative Commons CC BY-NC-SA

„Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Österreich.“ - http://creativecommons.org/licenses/by-nc-sa/3.0/at/

Referenzen

ÄHNLICHE DOKUMENTE

Wer sich dieses Jahr für Urlaub zu Hause entscheidet, sollte die Zeit nicht für die Abarbeitung von To-Do Listen der bekanntesten Reiseziele in Bayern nutzen, sondern seine

Eine Verkrampfung der Atemmuskulatur (Bronchospasmen) kann verstärkt werden. Es ist nicht auszuschließen, dass im Urin, Kopfschmerzen, Schwindel, Benommenheit, Krämpfe,

Jedes Gerät, das über das Internet mit anderen Geräten kommunizieren will, braucht eine eindeutige IP-Adressen (Notiz am Rande: Es gibt auch Möglichkeiten, das zu umgehen, z.B.

Eine Regel besteht dabei aus einer oder mehreren Bedingungen und einem Ziel, das angibt, was mit einem passenden Paket gemacht werden soll.. Es gibt sehr viele Bedingungen, die

Damit ein Client weiß, wie der zu nutzende Server heißt, muss man in der Hauptkonfigurationsdatei im Block agent die Variable server auf die IP-Adresse (oder den DNS-Namen)

Der Regierungsrat wird beauftragt, für das Angebot an familienergänzender Kinderbetreuung (Kindertagesstätten, Tagesschulen, Mittagstische, Tageseltern) eine Planung

Bevor Sie der Konferenz beitreten, können Sie über die abgebildeten Schieberegeler die Kamera und / oder das Mikrofon ein- bzw.. Das Zahnradsymbol öffnet die Geräteeinstellungen,

Es ist mit einer der größten Stressfaktoren in der Promotion und auch immer wieder später in der wissenschaftlichen Kar- riere: der Druck ein gutes Ergebnis zu