PDF-Version

Transcription

PDF-Version
Foliensatz 4
Software und Paketverwaltung
Inhalt
•
Software unter Linux
•
Pakete verwalten mit dpkg
•
Pakete und Repositories verwalten mit apt
•
Paketverwaltung mit Puppet
Software - Geschichtliches
•
Fast alle Softwarepakete, die für Linux verfügbar sind, können gratis benutzt werden (z.B. jede GNU
Software). 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 Benutzern 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).
Software - Aufteilung der Dateien
Unter Linux gibt es eine andere Herangehensweise an Software als unter Microsoft Windows oder Apple
Mac OS X (zumindest bei den meisten Distributionen, eine Ausnahme ist z.B. GoboLinux).
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.
•
/lib/ → Hier liegen die Systembibliotheken.
•
/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.
•
/sbin/ und /usr/sbin/ → Ausführbare Dateien für den Administrator
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 1 von 10
Software - Vergleich mit Windows
•
Unter Windows installieren alle Applikationen alle benötigten Bibliotheken, die nicht auf dem System
installiert sind, entweder in das System- oder das Applikationsverzeichnis.
•
Im Gegensatz dazu wird unter Linux eine Bibliothek nur einmal separat von den Applikationen
installiert (in /usr/lib/) und alle Applikationen können darauf zugreifen. Durch die standardisierten
Bibliotheksnamen und die Verwendung symbolischer Links ist es auch möglich, mehrere Versionen
ein und derselben Bibliothek auf einem System installiert zu haben.
•
Das System von Linux hat mehrere Vorteile:
•
•
Es ist bekannt, wo sich alle Bibliotheken befinden und welche installiert sind.
•
Weniger Speicherplatz wird gebraucht.
•
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.
Softwareverzeichnisse
•
Die meisten Open Source Projekte können nicht wie Firmen durch Marketing auf sich aufmerksam
machen, da das Geld dafür meist nicht vorhanden ist. 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 Software suchen können.
•
Einer der ältesten solcher Dienste ist SourceForge. 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.
•
Andere Dienste sind Github (derzeit der populärste) und Microsoft CodePlex.
Software - Installation ohne Paketmanager 1
•
Nachdem die meiste Software für Linux als Open Source vertrieben wird, kann man üblicherweise
von der Projekthomepage ein gepacktes Archiv herunterladen, das den Quellcode enthält.
•
In diesem Archiv befindet sich oft eine README-Datei mit grundlegenden Informationen zur
Software sowie eine INSTALL-Datei mit einer Installationsanleitung.
•
Muss die Software kompiliert werden, so erfolgt dies meist unter Verwendung des GNU Build
Systems und der GNU Toolchain (i.e. GNU Make, GNU Compiler Collection, Autotools, …). Unter
Ubuntu reicht die Installation des build-essential Pakets, um die benötigte Software zu installieren.
•
Die Vorgehsweise zum Kompilieren und Installieren ist dabei (nahezu) immer die gleiche:
$ configure
$ make
$ make install
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 2 von 10
Software - Installation ohne Paketmanager 2
•
Das configure-Skript erfüllt dabei folgende Aufgaben:
•
Überprüfen, auf welchem System das Skript ausgeführt wird und setzen der entsprechenden
Variablen
•
Überprüfen, ob die benötigten Headerdateien und Bibliotheken installiert sind
•
Aktivieren oder deaktivieren von optionalen Komponenten
•
Definieren der Installationsverzeichnisse
•
Um die möglichen Parameter für das configure-Skript anzuzeigen, ruft man es mit der Option
--help auf.
•
Möchte man die Software nicht systemweit installieren (weil man dafür z.B. nicht die benötigten
Rechte besitzt), benutzt man die Option --prefix=PREFIX (z.B. configure --prefix=$HOME/usr).
•
Das Ergebnis des configure-Skripts
Konfigurationsdateien.
•
Die Makefiles enthalten unter anderem Anweisungen, wie die Software kompiliert bzw. installiert
werden soll.
sind
die
Makefiles
und
eventuell
noch
andere
Softwarepaketverwaltung - Allgemeines
•
Einer der wichtigsten Unterschiede zwischen den verschiedenen Linux-Distribution ist diese
Softwarepaketverwaltung.
•
Die Paketverwaltung erlaubt die einfache Installation, Deinstallation und Wartung von
Softwarepaketen, durch z.B. das automatische Auflösen von Abhängigkeiten oder das Verwenden von
Binärpaketen.
•
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 Ubuntu und das deb-Format betrachten und rpm nur
streifen.
•
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 kann.
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)
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 3 von 10
•
Die Pakete enthalten dabei nicht mehr den Quellcode der Software und alles, was zum Kompilieren
benötigt wird, sondern nur mehr die Dateien, die für die Ausführung benötigt werden (es gibt auch
Paketmanager, die am Rechner selbst die Pakete kompilieren, z.B. Portage bei Gentoo).
•
Ein ganz wichtiger Punkt ist, dass zwischen diesen Paketen Abhängigkeiten definiert sind. Das
heißt in der Praxis, dass ein Paket zusätzlich die Anwesenheit von weiteren Paketen benötigen kann.
So wird zum Beispiel sichergestellt, dass bei der Installation eines Audio-Players die nötigen AudioCodecs installiert werden.
Softwarepaketverwaltung - Paketabhängigkeiten
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
Softwarepaketverwaltung - dpkg vs apt
•
•
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 lokale 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.
Die entsprechenden Pendants bei RedHat Linux wären rpm (zu dpkg) und yum (zu apt).
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 4 von 10
Softwarepaketverwaltung - Aufgaben von dpkg
•
•
Auf den ersten Blick scheint die Installation eines Softwarepakets selbst nicht aufwändig zu sein. Es
müssen ja nur Dateien in bestimmte Verzeichnisse kopiert werden. Allerdings reicht das nicht immer
aus:
•
Vor der Installation muss geprüft werden, ob das zu installierende Paket nicht bestehende
Dateien eines anderen Pakets überschreibt.
•
Das Paket darf auch erst dann installiert werden, wenn benötigte, andere Pakete installiert
worden sind.
•
Bei einigen Paketen müssen Aufgaben vor oder nach der Installation durchgeführt werden (z.B.
Starten eines Services oder Anlegen eines Benutzers)
•
Konfigurationsdateien eines Pakets, die seit der Installation geändert worden sind, dürfen bei
einer Aktualisierung des Pakets nicht einfach überschrieben werden.
Weiters muss eine Liste der installierten Pakete geführt werden sowie pro Paket eine Liste der
installierten Dateien (inkl. Berechtigungen und Prüfsummen).
Softwarepaketverwaltung - dpkg
dpkg - Verwaltet deb-Softwarepakete
» Optionen:
•
-i Package.deb → Installiert ein Paket
•
-r Paketname → Entfernt ein Paket, aber nicht dessen Konfigurationsdateien
•
-P Paketname → Entfernt ein Paket inkl. der Konfigurationsdateien
•
-L Paketname → Listet die Dateien des Pakets auf
•
-l → Listet alle installierten Pakete auf
•
-S Pfad → Sucht das Paket, in dem der Pfad vorkommt
» $ dpkg -l | grep dpkg
ii dpkg
1.16.7ubuntu6
ii dpkg-dev
1.16.7ubuntu6
ii libdpkg-perl
1.16.7ubuntu6
$ dpkg -S /usr/bin/dpkg
dpkg: /usr/bin/dpkg
amd64
all
all
Debian package management system
Debian package development tools
Dpkg perl modules
Bei rpm wären die entsprechenden Befehle rpm -i Package.rpm (Paket installieren), rpm -e Paket
(Paket entfernen), rpm -qa (alle Pakete auflisten), rpm -ql (Dateien des Pakets auflisten) und rpm -qf
Pfad (Paket zu Pfad finden).
Softwarepaketverwaltung - Paketintegrität prü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.
debsums - Überprüft MD5-Werte von installierten Paketen
» Optionen: -s → Nur Fehler ausgeben, -c → Veränderte Dateien ausgeben.
» $ debsums -s curl
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 5 von 10
$ echo test > /usr/bin/curl
$ debsums curl
/usr/bin/curl
/usr/share/doc/curl/MANUAL.gz
/usr/share/doc/curl/TheArtOfHttpScripting.gz
/usr/share/doc/curl/copyright
/usr/share/man/man1/curl.1.gz
$ apt-get install --reinstall curl
...
$ debsums -s curl
$
FAILED
OK
OK
OK
OK
Softwarepaketverwaltung - Aufgaben von apt
•
dpkg kann Pakete installieren, die schon heruntergeladen worden sind, bzw. die bereits installierten
Pakete verwalten. Es bietet aber keine darüber hinausgehenden Möglichkeiten, z.B. Pakete aus dem
Internet für die Installation herunterladen.
•
Hier kommt apt ins Spiel. Während dpkg auf der unteren Ebene arbeitet, ist apt darüber angesiedelt
und bietet Funktionalitäten, die das Arbeiten mit Paketen noch vereinfachen:
•
Automatisches Auflösen von Paketabhängigkeiten und Installation der Pakete in der richtigen
Reihenfolge
•
Installation/Aktualisierung/Deinstallation von Paketen mit Hilfe von Paketnamen (und nicht direkt
über Paketdateien)
•
Verifizieren der Signaturen von Paketen
•
Einfaches Verwalten von mehreren Software-Repositories und der zugeordneter GPG-Schlüssel
•
Automatische Sicherheits-Updates von Paketen
Softwarepaketverwaltung - 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 (man
sources.list)
•
sources.list.d/*.list → Zusätzliche Repositories
•
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 werden in der oben angegeben Datei verwaltet.
•
Bei yum sind Repositories entweder in /etc/yum.conf oder in Dateien unter /etc/yum.repos.d
definiert.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 6 von 10
Softwarepaketverwaltung - apt-key
apt-key - Verwaltet Repository-Schlüssel
» Verwendet GPG im Hintergrund.
» 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 <[email protected]>
sub
2048g/79164387 2004-09-12
pub
uid
1024D/FBB75451 2004-12-30
Ubuntu CD Image Automatic Signing Key <[email protected]>
pub
1024D/3E5C1192 2010-09-20
uid
<[email protected]>
Ubuntu
Extras
Archive
Automatic
Signing
Key
Bei rpm/yum werden die GPG-Schlüssel mit rpm verwaltet, z.B. kann man mit rpm --import einen
Schlüssel importieren.
Softwarepaketverwaltung - apt-get
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)
•
autoremove → Alle nicht mehr benötigten Pakete entfernen
Bei yum wären die entsprechenden Befehle yum install (Paket installieren), yum remove (Paket
entfernen) und yum update (alles aktualisieren).
Softwarepaketverwaltung - apt-cache
apt-cache - Durchsucht den APT-Cache
» Nach einem apt-get update liegen die aktuellen Paketindexdateien 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
» Bei yum wären die entsprechenden Befehle yum
(Paketinformationen anzeigen).
search (Paket suchen) bzw. yum
info
» $ apt-cache search kramdown
ruby-kramdown - Fast, pure-Ruby Markdown-superset converter
ruby-kramdown-rfc2629 - generate XML2RFC XML from Markdown
$ apt-cache show ruby-kramdown | head -n 11
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 7 von 10
Package: ruby-kramdown
Priority: optional
Section: universe/ruby
Installed-Size: 1889
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer:
Debian
Ruby
Extras
Maintainers
<[email protected]>
Architecture: all
Version: 1.8.0-1
Depends: ruby | ruby-interpreter, ruby-prawn, ruby-prawn-table, ruby-coderay, rubyrouge (>= 1.8~), ruby-stringex, libjs-jquery
Suggests: libjs-mathjax
Filename: pool/universe/r/ruby-kramdown/ruby-kramdown_1.8.0-1_all.deb
Softwarepaketverwaltung - aptitude
aptitude - APT Paketverwaltungstool
» Vereint unter anderem die Funktionalitäten von apt-cache und apt-get.
» Hat ein paar Vorteile gegenüber apt-get, z.B. werden nicht mehr benötigte Pakete beim Entfernen
eines Pakets automatisch mitentfernt.
» Wird aptitude ohne Parameter aufgerufen, startet eine interaktive Konsolenapplikation zum
Verwalten von Paketen.
»
apt-get update
aptitude update
apt-get upgrade
aptitude safe-ugprade
apt-get install
aptitude install
apt-get install –reinstall
aptitude reinstall
apt-get remove
aptitude remove
apt-get purge
aptitude purge
apt-cache search
aptitude search
apt-cache show
aptitude show
Softwarepaketverwaltung - Präferenzsystem
•
Es kann vorkommen, dass bei einem Systemupdate ein Paket aktualisiert werden soll und man das
vermeiden möchte (z.B. weil etwas nur mit der alten Version funktioniert). Oder dass man Pakete
eines Repositories gegenüber den Paketen eines anderen bevorzugen will.
•
Mit Hilfe des Präferenzsystems von apt kann man solche Aufgabenstellung lösen - siehe man
apt_preferences.
•
Die Präferenzen können in Dateien im Verzeichnis /etc/apt/preferences.d/ festgelegt werden.
•
Um zum Beispiel die aktuellesten Pakete zu installieren, auch wenn sie gerade noch getestet werden
oder instabil sind, kann man folgende Datei verwenden (die Standardpriorität ist 500):
Package: *
Pin: release a=testing
Pin-Priority: 900
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 8 von 10
Package: *
Pin: release a=unstable
Pin-Priority: 800
Softwarepaketverwaltung - Automatische Updates
•
Um Sicherheitsupdates automatisch einspielen zu lassen, gibt es mehrere Möglichkeiten (z.B. cronapt und unattended-upgrades).
•
Für die Verwendung von unattended-upgrades das gleichnamige Paket installieren und die
Konfiguration anpassen:
•
Das Programm durch Setzen der folgenden Optionen in /etc/apt/apt.conf.d/10periodic
aktiveren:
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 Cronjob /etc/cron.daily/apt ausgeführt.
Paketverwaltung mit Puppet
•
Pakete werden in Puppet über die Ressource package verwaltet.
•
Unter Ubuntu wird standardmäßig der Provider apt verwendet, alternativ dazu gäbe es noch
aptitude und dpkg.
•
Wichtige Attribute:
•
name: Der Name des Pakets (falls nicht angegeben, wird der Titel verwendet).
•
ensure: Der gewünschte Zustand (present oder installed, absent, purged, held, latest oder eine
Versionsnummer; falls nicht angegeben wird der Wert installed genommen).
•
responsefile: Eine Datei mit den benötigten Antworten, die von dem Paket abgefragt werden
(zum Beispiel zum Akzeptieren einer Lizenz oder zum Vorkonfigurieren)
Paketverwaltung mit Puppet - Beispiele
•
Installation von OpenSSH-Server und -Client:
package {'openssh-client':
ensure => latest
}
package {'openssh-server': }
•
Sicherstellen, dass das Paket ntp nicht installiert ist:
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 9 von 10
package {'ntp':
ensure => purged
}
Verwaltung von APT mit Puppet 1
•
Zur Verwaltung von Quellen, Schlüsseln und Konfigurationsoptionen für APT mit Puppet eignet sich
das puppetlabs/apt Modul.
•
Die Klasse apt muss inkludiert werden, damit die nötigen Ressourcen definiert werden (z.B. für das
Ausführen von apt-get update).
•
Schlüssel verwalten:
apt::key { "CC key":
id => '9E2E7FFB465D2C010F6834FE1985A9276BB7CA7A',
source => "http://cc.mat.univie.ac.at/ubuntu/pub.key",
}
•
Paketquellen verwalten:
apt::source { "cc-mat":
comment => 'CC Repo',
location => "http://cc.mat.univie.ac.at/ubuntu",
release => trusty,
repos => 'contrib',
}
Verwaltung von APT mit Puppet 2
•
Konfigurationsoptionen setzen (entweder direkt mittels content den gesamten Inhalt der Datei oder
über source eine Datei spezifizieren):
apt::conf { 'unattended-upgrade'
content => "APT::Periodic::Unattended-Upgrade \"1\";\n"
priority => 99
}
•
Präferenzen für Pakete festsetzen:
apt::pin {
'testing':
packages => '*',
release => 'testing',
priority => 900;
'unstable':
packages => '*',
release => 'unstable',
priority => 800;
}
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-03 20:29
Seite 10 von 10