Debian 8 Jessie für Sevim. Debian wird neben Scientific Linux, Red Hat Enterprise Linux und Microsoft Windows auf der Internationalen Raumstation verwendet. Geschichte / Hintergrund Das Projekt Debian ("Debian GNU/Linux") wurde von Ian Murdock 1993 ins Leben gerufen. Debian = Deb(ra Lynn) + Ian Murdock 1996: erste stabile Version 1.1 "Buzz" (Namen nach Toy Story Charakteren) 24. Juli 1998: 2.0 Hamm, erstmals Unterstützung mehrerer Architekturen 4. Mai 2013: Wheezy, Version 7.0 25.April 2015 [Samstag]: Jessie, Version 8.0 (Freeze war am 5. November 2014 - weitere Updates nur für Bugfixes) etwa 21.000 Pakete Debian-Verfassung, Gesellschaftsvertrag Debian Social Contract -> konsequent freie Software (Dokumentation, etc. alle Komponenten im Hauptzweig main) Firefox = Iceweasel, Thunderbird = Icedove, ... Stammbaum Ubuntu, Knoppix, Raspbian [Debian Wheezy 7 armhf für ARMv6], und über 130 mehr ... Veröffentlichungen stable ca. alle 2,5 Jahre, nur Sicherheitsaktualisierungen gut für Server testing basiert auf stable, mit Neuerungen. Häufig für Arbeitsplatzrechner genutzt. unstable ("Sid" ~ Still in development / Sid is dangerous) Neue Versionen von Paketen und Programmen, erste Prüfung (~ 10 Tage). "bleeding edge" Backports Neue Programm-Versionen "zurückportiert" auf Stable. Neues in Jessie Unterstützung von ARM64 "Debian's finest games": metapackage games-finest 12.253 neue Packages - insgesamt jetzt > 43.512 packages o über 24.573 Packages, oder 66 % wurden geupdated 9 DVDs oder über 60 CDs an Packages systemd-sysv as default init system o monitoring, logging, service management, cron, ... o ersetzt sysvinit-core Desktop GNOME 3.13, o Support for touch screens, intutive gestures based on multiple finger movements o benötigt einfache 3D Grafik -> auf i386 / amd64 SSE2, auf anderen Architekturen 3DBeschleunigung mit EGL Treibern o Raspberry Unterstützung? Xfce = Alternative Paket "debian-security-support" informiert wenn Support für ein Paket vorzeitig beendet werden muss (vor Support für Distribution) Paket "needrestart" - prüft ob Services auf dem System von einem Neustart nach z.B. Update von Libraries profitieren würden (Sicherheit!) libreoffice ersetzt openoffice.org Ruby 2.1 ersetzt ruby 1.8 / ruby 1.9.1 KDE 4.11, Xfce 4.10, LXDE LibreOffice 4.3 Calligra 2.8 GNU C library: 2.19 (war 2.13 in Wheezy) Linux kernel: 3.16 series (war 3.2 series in Wheezy) Debian Paketmanagement Der große Vorteil gegenüber Microsoft Windows Alle Funktionalitäten in Pakete verteilt, z.B. Bibliotheken, Kernel, Software wie LibreOffice. Pakete hängen voneinander ab - die Installation eines Paketes zieht einen Rattenschwanz an anderen Paketen nach sich Paketabhängigkeiten sind manchmal schwierig aufzulösen, v.a. bei Software die man aus der Source kompiliert und installiert / aus "fremden" Repositories Debian Packages werden maintained, enthalten u.U. Anpassungen an Debian. Es gibt aus verschiedenen Gründen Paketquellen / Pakete zum Download außerhalb von Debian's offiziellen Repositories. Wichtig: auf Vertrauenswürdigkeit der Quelle achten! Im Zweifel NICHT installieren! dpkg - low-level, weiß nichts über Repositories. Installation von einem beliebigen .deb Paket: dpkg -i paketname.deb apt-get - Standard-Tool für Installation und entfernen von Packages. Der einzige Befehl den man kennen muss: apt-get install aptitude apt-cache - Standard-Tool für Suche nach Packages und Information über Packages aptitude - Alles in einem, bessere Suche - unser Favorit Softwarekategorien main komplett freie Software und sonstige Werke, gemäß Debian Free Software Guidelines non-free proprietäre Software, beispielsweise Firmware contrib eigentlich freie Software, die aber von non-free Paketen abhängt. (Bspw. früher Java-Programme die Java von Sun benötigten) Hinweis: Backports sind Pakete von neueren Programmversionen die für eine alte Veröffentlichung kompiliert wurden. Unterschiede Debian / Raspbian Debian Vorteile Schneller Bootvorgang & Reboot (systemd) Neuerer Stand von Paketen Mehr Mirrors (noch) mehr Anleitungen Debian Nachteile (nur momentan ;-) enthält noch keine Raspberry-spezifische Software (omxplayer, raspi-config, raspiupdate), an manchen Stellen hakt es daher, oder Dinge müssen anders getan werden (sonicpi? minecraftpi?) Grafikbeschleunigung muss manuell installiert werden ... Installation & Login Follow the instructions / discussion here: http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/ Image can be downloaded here: https://images.collabora.co.uk/rpi2/ Login: root / debian Keyboard umkonfigurieren apt-get update apt-get install keyboard-configuration ruft automatisch auf: dpkg-reconfigure keyboard-configuration (Hinweis: das Zeichen "-" ist auf dem deutschen Keyboard in amerikanischer Belegung das "?" bzw. "ß", "z" und "y" sind vertauscht) Paket-Verwaltung (mit aptitude) Vorteile von aptitude ein Tool für Paketmanagement (statt mehrere apt-get / apt-cache) automatisches Auflösen von Paket-Abhängigkeits-Konflikten und Vorschläge zur Lösung Aptitude installieren apt-get install aptitude Danach wird empfohlen ausschließlich aptitude zu benutzen. Basics Aktuelle Paket-Definitionen herunterladen aptitude update Alle Pakete Upgraden aptitude upgrade Suche nach interessanten Paketen Beispiel: Alle Pakete mit firmware im Namen anzeigen: aptitude search firmware Beispiel: Alle Pakete mit firmware im Namen anzeigen, mit "wireless" in ihrer Beschreibung (~d): aptitude search 'firmware ~dwireless' Welche Pakete sind bereits installiert innerhalb der Suche nach "firmware" im Paketnamen? (~i) aptitude search ~ifirmware Welche Pakete stellen den Service "mail-transport-agent" bereit? aptitude search '?provides(mail-transport-agent)' Wie finde ich heraus, wie Services benannt sind, beispielsweise Webserver? apache2 ist zum Beispiel ein beliebtes Web Server Paket. Wir lassen uns die Details anzeigen: aptitude show apache2 Package: apache2 State: not installed Version: 2.4.10-10 Priority: optional Section: httpd Maintainer: Debian Apache Maintainers <[email protected]> Architecture: armhf Uncompressed Size: 518 k Depends: lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.10-10), apache2-utils (>= 2.4), apache2-data (= 2.4.10-10) PreDepends: dpkg (>= 1.17.14) Recommends: ssl-cert Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom Conflicts: apache2.2-common (< 2.3~) Replaces: apache2.2-common Provides: httpd, httpd-cgi Description: Apache HTTP Server The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. Installing this package results in a full installation, including the configuration files, init scripts and support scripts. Homepage: http://httpd.apache.org/ Tags: role::metapackage, suite::apache Frage: Welche Pakete kann ich Alternativ zu Apache als Web Server installieren? ... mehr zu Suche mit aptitude: http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html Warum sind bestimmte Pakete installiert (Abhängigkeiten)? aptitude why cron Paketquellen managen Problem: Wir wollen uns ins WLAN verbinden (aus Xfce Desktop mittels network-manager) WL0084B WLAN Stick funktioniert nicht, Firmware fehlt. (Teilt uns network-manager bei links-Klick so mit - device not ready, firmware missing). Debian-Policy: ALLES muss frei sein in main. Anzeigen von aktuellen Paketquellen: cat /etc/apt/sources.list deb http://ftp.debian.org/debian jessie main deb https://repositories.collabora.co.uk/debian/ jessie rpi2 Aufbau einer Zeile deb uri distribution [component1] [component2] [...] uri: file / cdrom / http / ftp / copy mit vollem Pfad zum Hauptverzeichnis des jeweiligen Mirrors Bspw. http://ftp.debian.org/debian distribution: stable / testing / unstable oder wheezy / jessie / sid Bspw. jessie component: main / contrib / non-free - Angabe mehrerer davon durch Leerzeichen getrennt möglich Bspw. main contrib non-free Frage: Wir wollen die Kategorien contrib und non-free zusätzlich aufnehmen, um die Firmware installieren zu können. Wie lautet die neue erste Zeile in /etc/apt/sources.list? Trage sie ein, und führe ein aptitude update durch, um die neuen Paketbeschreibungen zu laden. Firmware installieren Was für eine Firmware brauche ich? lsusb bei eingestecktem Stick, zeigt Bus 001 Device 005: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter Frage: Wie heißt das Paket, was installiert werden soll? Installiere es bitte. Hinweis: Suche mit aptitude, siehe oben. Nach Installation des richtigen Paketes sollte das Funknetzwerk konfigurierbar sein. Advanced: Pinning von einem Paket aptitude versions flash-kernel i p 3.33.co1+b1 3.35 Package mit niedrigerer Version installiert, sogar automatisches Downgrade bei aptitude install flash-kernel Durch diese neu angelegte Konfigurationsdatei: /etc/apt/preferences.d/flash-kernel Package: flash-kernel Pin: version 3.33.co1+b1 Pin-Priority: 1001 Pin-Priority: -1: Paket wird nie installiert 0 - 90: Paket wird nur installiert wenn es noch nicht installiert ist 990 - 1000: Installiert ein Paket auch wenn es nicht aus dem "Target" Release stammt, außer die bereits installierte Version ist aktueller 1001: Installiert ein Paket auch wenn dies ein Downgrade des Paktes bewirkt. Quelle: http://debiananwenderhandbuch.de/apt-get.html Pins ermöglichen genauen Anweisungen, woher und welche Version des Paketes installiert werden soll. systemd Interessante Infos / Recherchequellen: http://0pointer.de/blog/projects/systemd.html http://0pointer.de/public/systemd-man/systemd.html http://0pointer.de/public/systemd-man/systemd.unit.html http://0pointer.de/public/systemd-man/systemd.service.html Grundlagen systemd wird in Debian ab Version 8 Jessie eingesetzt - es ist ein modernes init System. Es ersetzt den sysvinit daemon. Französisch "Système D" = "Trick 17" Der erste Prozess den der Kernel erzeugt ist der Init Prozess. systemd (der neue Init Prozess) ist dann für die Initialisierung und Einrichtung des Linux-Systems zuständig (es startet alle benötigten Dienste und Programme beim Bootvorgang). Es ist außerdem für das Herunterfahren des Systems zuständig. Features Abwärtskompatibel zu SysVinit Skripten Mehr Parallelisierung -> bessere Auslastung beim Systemstart, weniger Verzögerungen journald - System-Log Konzept Alle Prozesse beim Boot gleichzeitig starten, Nachrichten an andere Prozesse (D-Bus / IPC-Sockets), sowie Anfragen an Dateisysteme (autofs) werden gepuffert bis Prozess soweit ist. Nur gelegentlich benötigte Dienste ereignisbasiert starten (wie früher inetd). z.B. SSH erst beim ersten Aufruf starten, CUPS wenn tatsächlich ein Drucker angeschlossen wird / gedruckt wird, ... Shell-Boot-Skripte sollen durch deklarative Konfigurationsdateien ersetzt werden. einfacher zu schreiben vermeiden Overhead von Shell-Skripten Beispiel für parallelen Start von Syslog und D-Bus D-Bus verbindet sich mit Socket /dev/log, um Status /Fehlermeldungen schreiben zu können. Sysvinit kann den D-Bus daher erst starten, wenn der Syslog Dienst komplett gestartet ist. systemd legt /dev/log selbst an, und startet Syslog und D-Bus gleichzeitig. Alles was D-Bus an /dev/log schickt wird von systemd mit der Log Funktion "Journal" zwischengespeichert. Dienste die eine Antwort brauchen bleiben an der Stelle stehen, bis die Antwort fertig ist - dann starten sie weiter. Diese Puffer-Funktion kann auch genutzt werden um Dienste im Hintergrund neu zu starten - die Kommunikation wird währenddessen zwischengepuffert. Units .service - Service-Units Die "klassischen" Daemons. Systemd generiert automatisch Service-Units aus SysV Init Skripten. Wenn eine Unit-Datei mit gleichem Namen vorhanden ist, werden die Skripte allerdings ignoriert. .socket - Socketaktivierung zugehöriger .service Dienst wird aktiviert wenn ein anderer Prozess Daten auf den Socket schreibt. Beispiel: nscd.socket startet nscd.service bei ankommender Verbindung. .device - Device in /dev Ein Device kann mittels udev markiert werden, und in systemd als device "exponiert" werden. .mount - Ein / Aushängen von Dateisystemen Systemd überwacht die Mount Points, und kann auch Dateisysteme mounten / unmounten. /etc/fstab wird als zusätzliche Konfigurationsquelle verwendet .automount - idem, mit Automounter hängt Dateisysteme bei erstem Zugriff automatisch ein .target - Gruppieren von Units Bspw. multi-user.target (entspricht Run-Level 5), oder bluetooth.target (aktiviert Bluetooth Services sobald Bluetooth Dongle eingesteckt wird). .timer - Aktiviere andere Units nach Timer bspw. starte diesen Service alle 5 Stunden, oder starte diesen Service jeden Montag 5 Uhr. .slice - Gruppiere für Resource Management Gruppiere Units in einem hierarchischen Baum für Resource Management. .path - überwache bestimmte Dateien / Verzeichnisse mittels Inotify. Falls Zugriff, startet Systemd diese Unit. (Aktiviere bestimmte Services) Beim Starten wird default.target aktiviert - z.B. ein Alias von multi-user.target Systemd steuern: systemctl Zeige alle Units an: systemctl --all Zeige nur Service Units an: systemctl --type=service Ausgabe: boot-firmware.mount loaded active mounted /boot/firmware Name der Unit (z.B. boot-firmware.mount) konnte die Definition geladen werden? (loaded, sonst: not-found) Ist die Unit zum Start vorgesehen? (active, sonst: inactive) aktueller Status (z.B. mounted, plugged, running, exited, dead, listening, ...) Beschreibung der Unit Statuse exited: Prozess hat sich ohne Fehler beendet o Beispiel: rc-local.service, der /etc/rc.local ausführt running: Hintergrund-Dienste o Beispiel: ssh.service - OpenBSD Secure Shell Server Ausführlichere Infos zu einem Service anzeigen: systemctl status ssh.service Services aktivieren / deaktiveren, starten und stoppen systemctl start avahi-daemon.service systemctl stop avahi-daemon.service systemctl disable avahi-daemon.service systemctl enable avahi-daemon.service Wie schnell war ich? Startzeit analysieren systemd-analyze Startup finished in 2.828s (kernel) + 7.679s (userspace) = 10.507s Im Detail analysieren: systemd-analyze blame Schön grafisch aufbereitetes SVG: systemd-analyze plot > /tmp/plot.svg Kann z.B. mit dem Web-Browser angeschaut werden ( URL ist file:///tmp/plot.svg ) Konfig-Dateien von systemd In den Pfaden /etc/systemd/system (= priorisierter Pfad, wird bei Updates des Systems NICHT überschrieben) /lib/systemd/system Beispiel für eine Konfigdatei (dbus-org.freedesktop.Avahi.service): [Unit] Description=Avahi mDNS/DNS-SD Stack Requires=avahi-daemon.socket [Service] Type=dbus BusName=org.freedesktop.Avahi ExecStart=/usr/sbin/avahi-daemon -s ExecReload=/usr/sbin/avahi-daemon -r NotifyAccess=main [Install] WantedBy=multi-user.target Also=avahi-daemon.socket Alias=dbus-org.freedesktop.Avahi.service Trivia Debian 9 "Stretch", Debian 10 "Buster" Security Support - Mediawiki is only covered by security support until April 2016 Node.js - built on top of libv8-3.14, high volume of security issues - currently no volunteers within the project or security team sufficiently interested. -> nodejs, node-* package ecosystem should not be used with untrusted content, such as unsanitized data from the Internet. These packages will not receive any security updates during the lifetime of the Jessie release. If the RTC (real time clock) is set to local time and the local time is ahead of UTC, e2fsck will print a warning during boot about the time changing backward (bug #767040). You can disable this by putting the following lines in /etc/e2fsck.conf: [options] broken_system_clock=1 References https://www.debian.org/releases/testing/armhf/release-notes/ Bitte bewertet unseren Workshop auf MeetUp und gebt uns Input zu Themen die Euch interessieren. Bitte tragt euch in meinem Newsletter ein (Tipps zum Raspberry Pi): http://www.pi3g.com/newsletter
© Copyright 2024 ExpyDoc