.. _Linux-Installation:
.. _Linux installieren:

Linux installieren
==================

Linux ist komfortabel geworden. Das gilt nicht nur für die Vielfalt und
Anwenderfreundlichkeit der Programme, sondern auch für die
Installations-Routinen. Dank gut ausgearbeiteter Dokumentationen (z.B. das
`Ubuntu-Wiki <https://wiki.ubuntuusers.de/Startseite>`_) lässt sich heute in
kurzer Zeit und ohne Grundkenntnisse ein gut funktionierendes Linux-System
einrichten.

.. index:: Distribution
.. _Linux-Distribution:
.. _Linux-Distributionen:
.. _Auswahl einer Linux-Distribution:

.. rubric:: Auswahl einer Linux-Distribution

Als Distribution wird im Software-Bereich eine Zusammenstellung von Software zu
einem gut nutzbaren Gesamtpaket bezeichnet. Die Vielzahl an Linux-Distributionen
[#LD]_ unterscheidet sich im Wesentlichen dadurch, welche Programme
grundsätzlich installiert sind, wie häufig Updates erfolgen und wie viel
Konfigurationen der Benutzer gewöhnlich manuell vornehmen möchte.

In Deutschland laufen die meisten Server mit der Distribution `Debian
<https://de.wikipedia.org/wiki/Debian>`_; bei den Privat-PCs zählen die auf
Debian basierenden Distributionen `Ubuntu
<https://de.wikipedia.org/wiki/Ubuntu>`_ und `Linux Mint <https://linuxmint.com>`_
zu den beliebtesten Systemen. Alle Tips dieser Notizen-Sammlung beziehen sich
auf diese einander weitgehend ähnlichen Systeme.

.. image:: pics/linux-desktops.png
    :align: center
    :width: 50%

Wie Linux letztendlich "aussieht", hängt nur bedingt von der Distribution ab.
Die graphische Bedienoberfläche und das eigentliche Betriebsystem sind -- anders
als bei Windows -- zweierlei Dinge. Das Betriebsystem Linux unterstützt eine
Vielzahl an Bedienoberflächen ("Desktop-Umgebungen"), die sich auch nach der
Installation jederzeit austauschen lassen. Die wohl bekanntesten
Bedienoberflächen sind `GNOME <https://de.wikipedia.org/wiki/Gnome>`_ und `KDE
<https://de.wikipedia.org/wiki/KDE>`_. Persönlich nutze ich derzeit bevorzugt
die unter Ubuntu und Linux Mint übliche Oberfläche `Mate
<https://de.wikipedia.org/wiki/MATE_Desktop_Environment>`_.

.. _Basis-Installation:
.. _Die Basis-Installation:

Die Basis-Installation
----------------------

Ein Linux-System zu installieren ist heute dank moderner Hardware-Erkennung und
graphischer Installations-Assistenten denkbar einfach. Das Installations-Schema
ist bei fast allen Distributionen gleich:

#.  Man lädt sich von der jeweiligen Homepage eine ISO-Image-Datei herunter.
    Persönlich bevorzuge ich derzeit `Linux Mint Ubuntu Edition
    <https://www.linuxmint.com/download.php>`_ mit Mate-Desktop. Je nach Hardware
    muss die 32- oder 64-Bit-Variante gewählt werden. [#MC32]_
#.  Man erstellt aus diesem Image mit einem beliebigen Brennprogramm eine
    bootbare CD beziehungsweise mit `UNetBootin
    <https://wiki.ubuntuusers.de/UNetbootin>`__ einen bootbaren USB-Stick. Eine
    gute Anleitung zur Erstellung eines Ubuntu-USB-Sticks, die mit Linux Mint
    genauso funktioniert, findet sich `hier
    <https://wiki.ubuntuusers.de/Live-USB>`_.

#.  Man bootet den Rechner mit eingelegter Boot-CD beziehungsweise angestecktem
    Boot-USB-Stick neu.

Die Boot-Reihenfolge wird vom BIOS des Rechners festgelegt. Entsprechende
Einstellungen werden im BIOS-Menü vorgenommen, das sich bei einem Neustart des
Rechners meist mit ``F2`` (manchmal auch mit ``F8``) öffnen lässt. Je nach
ausgewählter Distribution erscheint automatisch ein Installations-Assistent
(Debian), oder es wird ein Live-System gebootet (Ubuntu und Linux Mint), in dem
der Installations-Assistent als Icon auf dem Desktop zu finden ist.

Zu Beginn der Installationsroutine legt man den Benutzernamen mit dazugehörigem
Passwort und bevorzugte Einstellungen (Tastaturlayout, Zeitzone, etc.) fest.
Nachträgliche Änderungen dieser Einstellungen sind auch später ohne Aufwand
möglich.

Der wichtigste Schritt der Installation besteht anschließend in der Festlegung
der zu nutzenden Festplattenpartitionen. Diese lassen sich wahlweise automatisch
oder von Hand mittels eines integrierten Partitionsprogramms einrichten.
Der Installations-Assistent führt die Grundinstallation daraufhin
vollautomatisch durch.


.. _Partitionen einrichten:

.. rubric:: Empfehlenswert: Partitionen manuell einrichten

Bei einer nicht-automatischen Festlegung der Partitionen ist, sofern genügend
Festplattenspeicher vorhanden ist, folgende Partitionierung sinnvoll:

* Eine mittelgroße Partition (min. 10 GB, max. 30 GB) mit Einhängepunkt ``/``
  für das Basis-System
* Eine beliebig große Partition (min. 10 GB) mit Einhängepunkt ``/home`` für
  eigene Dokumente, Konfigurationsdateien, etc.
* Empfehlenswert: Eine kleine Partition (2 bis 5 GB) als ``swap`` (Erweiterung
  des Arbeitsspeichers)
* Optional: Eine beliebig große Daten-Partition (ohne bei der Installation
  festgelegten Einhängepunkt) für gemeinsam genutzte und/oder
  verschlüsselte Dateien
* Optional: Nicht verwendeter Speicherplatz für ein weiteres, parallel
  installierbares oder bereits installiertes Betriebsystem [#WI]_

Eine separate ``/home``-Partition  bietet den Vorteil, dass das System jederzeit
neu installiert werden kann, ohne dass eigene Daten und Einstellungen davon
berührt werden. Das gilt ebenso für Systeme mit mehreren Benutzern.

Für die ``/`` beziehungsweise  ``/home``-Partition empfiehlt sich als Dateisystem ``EXT-4``,
da es sehr schnell, sehr stabil und quasi wartungsfrei ist. Für
Daten-Partitionen empfiehlt sich ebenfalls ``EXT-4`` als Dateisystem, solange
man nur mit Linux darauf zugreifen möchte. Falls man die Daten auch unter
Windows oder MacOS nutzen mag, muss ``FAT32`` als Dateisystem verwendet werden.
``FAT32`` verfügt allerdings über keine Unterstützung von nützlichen Symlinks
und bietet keine Unterscheidung von Groß- und Kleinschreibung.


.. _Passwortgeschützte Partition:
.. _Passwortgeschützte Partitionen:

.. rubric:: Passwortgeschützte Partitionen

Linux ist als Betriebsystem verhältnismäßig sicher. Lässt man jedoch
beispielsweise ein Notebook unbeaufsichtigt liegen, so helfen die besten
Konfigurationen nichts, um vertrauliche Daten vor unbefugtem Fremdzugriff zu
schützen. Eine Festplatte kann einfach ausgebaut und extern an einen anderen PC
angeschlossen werden, und schon sind alle Daten (Passwörter, evtl.
Onlinebanking-Daten, Emails, etc.) frei abrufbar...

Wer private Daten in einem passwortgeschützten ("verschlüsselten") Bereich
ablegen möchte, kann sich unter Linux für eine der folgende Möglichkeiten
entscheiden:

:ref:`Partition-Verschlüsselung <Partitions-Verschlüsselung>`:
    Die Partition kann bereits während der Installation -- ohne Festlegung eines
    Einhängepunktes -- auf einem freien (unformatierten) Bereich eines
    Datenträgers angelegt werden.

    Der Vorteil dieser Methode liegt darin, dass sie verhältnismäßig einfach
    einzurichten und die verschlüsselte Partition unabhängig vom System ist.
    Somit kann der geschützte Bereich auch auf einem laufenden Rechner
    verschlossen bleiben.

    Nachteilig bei dieser Methode ist, dass jeder Unbefugte mit Hardware-Zugriff
    das Betriebsystem ohne Hindernis verändern kann, beispielsweise um Trojaner
    oder Keyboard- beziehungsweise Datenlogger zu installieren.


:ref:`System-Verschlüsselung <System-Verschlüsselung>`:
    Beim Start erscheint eine Passwort-Abfrage. Erst wenn das Passwort richtig
    eingegeben wurde, wird die Systempartition entschlüsselt, und der Rechner
    bootet.

    Der Vorteil dieser Methode liegt darin, dass kein Unbefugter Zugriff auf
    Teile des Systems oder der persönlichen Dateien hat -- sofern er den Rechner
    ausgeschaltet vorfindet.

    Nachteilig bei dieser Methode ist, dass sie einem Rechner im laufenden
    Betrieb -- die Systempartition ist wohl immer geöffnet -- keinerlei Schutz
    bietet. Darüber hinaus setzt diese Methode setzt einige Linux-Kenntnisse
    voraus und ist für Anfänger ungeeignet.

.. _truecrypt:
.. index:: truecrypt

Darüber hinaus ist es möglich, mittels `Truecrypt
<https://wiki.ubuntuusers.de/TrueCrypt>`__ passwortgeschützte Daten-"Container" zu
erstellen. Diese können nach der Installation auf einer beliebigen Partition
eingerichtet werden und sind auch auf anderen Betriebsystemen nutzbar.

Der Vorteil bei der Verwendung von ``truecrypt`` liegt darin, dass -- im
Gegensatz zu den obigen Methoden -- auch Windows- und MacOS-Systeme auf den
passwortgeschützten Bereich zugreifen können.

Als Nachteil ist zu nennen, dass das Erstellen eines Containers -- je nach
Größe und Rechnerleistung -- mehrere Stunden dauern kann; ``truecrypt`` wird
zudem nicht mehr aktiv weiterentwickelt.


.. _Zusatzpaket:
.. _Zusatzpakete:
.. _Zusatzpakete installieren:

Zusatzpakete installieren
-------------------------

Nach einer erfolgreichen Basis-Installation werden üblicherweise noch weitere
Anpassungen vorgenommen. Im Wesentlichen gibt es dafür zwei Gründe:

* Einerseits mag man als Nutzer zusätzliche Software gemäß den eigenen Vorlieben
  installieren. Die Menge an verfügbarer Software passt allerdings nicht
  unbedingt auf eine CD, eine DVD, oder einen USB-Stick. Die Programme werden
  darüber hinaus beständig weiter entwickelt und sind möglicherweise in der
  Zwischenzeit aktualisiert worden.

* Andererseits werden je nach Linux-Distribution nur Software-Pakete
  mitgeliefert, die bestimmten Kriterien genügen (beispielsweise gewisse
  Lizenzbedingungen aufweisen). Manche wichtigen Pakete müssen daher, selbst
  wenn sie frei verfügbar sind, manuell installiert werden.


.. index:: Paketverwaltung
.. _synaptic:
.. _Paketverwaltung:
.. _Paketverwaltung mittels graphischer Bedienoberfläche:

Paketverwaltung mittels graphischer Bedienoberfläche
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Je nach Linux-Distribution gibt es unterschiedliche graphische
Verwaltungsprogramme, mit denen Programme installiert, aktualisiert oder auch
wieder entfernt werden können:

* Unter Ubuntu gibt es  `Synaptic <https://wiki.ubuntuusers.de/Synaptic>`__,

* Unter Linux Mint gibt es zusätzlich das Programm ``mintinstall``, das auf
  Synaptic aufbaut und eine sehr komfortable (aber etwas langsame) graphische
  Oberfläche bietet.

Die obigen Programme sind nur nutzbar, wenn der angemeldete Benutzer sich
zeitweise auch SuperUser-Rechte geben darf; gibt es nur einen Benutzer-Account,
den man bei der Installation selbst eingerichtet hat, so ist dies bei diesem
Account stets der Fall. [#]_ Man muss lediglich beim Start der
Anwendungsverwaltung das eigene Benutzerpasswort eingeben, um die Anwendung im
SuperUser-Modus laufen zu lassen.

Die graphischen Anwendungsverwaltungs-Programme sind ohne weitere Einarbeitung
intuitiv mit der Maus bedienbar:

.. image:: pics/anwendungsverwaltung-1a.png
    :align: center
    :width: 65%

* Man klickt zunächst auf die jeweilige Programm-Kategorie (beispielsweise
  Graphik und Bildbearbeitung), um alle entsprechenden verfügbaren Programme
  aufzulisten.

.. image:: pics/anwendungsverwaltung-1b.png
    :align: center
    :width: 65%

* Klickt man dann auf gewünschte Programm, so bekommt man eine detailierte
  Ansicht, ob das Programm installiert ist, welche Funktionen das Programm
  bietet, und welche Bewertung es durchschnittlich von Benutzern bekommen hat.

.. image:: pics/anwendungsverwaltung-2.png
    :align: center
    :width: 65%

Gleich unter der Hauptüberschrift befindet sich eine Status-Zeile, über die das
jeweilige Programm mit einem Klick installiert oder wieder entfernt werden kann.


.. index:: Paketverwaltung; apt
.. _Paketverwaltung mittels apt:

Paketverwaltung mittels ``apt``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Die graphischen Verwaltungs-Programme von Debian/Ubuntu/Linux Mint nutzen
indirekt die Shell-Anwendung ``apt`` ("Advanced Packaging Tool") zur Verwaltung
und Aktualisierung der installierten Programme und Code-Bibliotheken (siehe auch
`Ubuntuusers-Wiki <https://wiki.ubuntuusers.de/Paketverwaltung>`__).

In einer Shell kann ``apt`` auch direkt auf einfache Weise genutzt werden. Es
gibt dabei folgende Möglichkeiten, das Programm aufzurufen:

* Mit ``apt-get update`` kann die Liste der verfügbaren Pakete aktualisiert
  werden. Hierzu prüft ``apt``, ob die
* Mit ``apt-cache search suchbegriff`` ein in Frage kommenden Paket suchen,
* Mit ``apt-get install paketname`` ein verfügbares Paket installieren.

Zur Vereinfachung ist das Programm ``aptitude`` empfehlenswert. [#]_  So
lassen sich die beiden Aufruf-Varianten ``apt-get`` und ``"apt-cache"`` durch
den entsprechenden ``aptitude``-Befehl ersetzen:

.. code-block:: sh

    # Programm suchen:
    aptitude search suchbegriff

    # Programm installieren:
    sudo aptitude install paketname

Wird versucht mittels ``sudo aptitude install paketname`` ein Programm zu
installieren, das bereits installiert ist, so bleibt der Aufruf ohne Wirkung;
mittels ``sudo aptitude purge paketname`` kann ein Programm wieder deinstalliert
werden.

Weitere Infos zur Verwendung von ``apt`` gibt es im Abschnitt
:ref:`Administrator-Programme <apt>`


.. raw:: html

    <hr />

.. only:: html

    .. rubric:: Anmerkungen:

.. [#LD] Je nach Vorliebe und Anwendungszweck bietet sich ein weites Spektrum an
    Distributionen:

    * "Live"-Systeme (beispielsweise `Knoppix <https://de.wikipedia.org/wiki/Knoppix>`_):

      Einige Linux-Varianten sind darauf ausgelegt von einem externen
      Datenträger (CD, USB-Stick) geladen und ohne Installation von diesem aus
      genutzt zu werden.

    * Extrem konfigurierbare Distributionen (beispielsweise `Gentoo
      <https://de.wikipedia.org/wiki/Gentoo_Linux>`_, `Arch
      <https://de.wikipedia.org/wiki/Arch_Linux>`_):

      In manchen Distributionen ist es normal, den Linux-Kernel und die
      Programme stets selbst aus dem Quellcode zu compilieren, d.h. in
      ausführbaren Maschinencode zu übersetzen. Dies bietet eine maximale
      Kontrolle über die laufenden Programme und kann erhebliche
      Geschwindigkeitsvorteile im laufenden System mit sich bringen. Um das
      Potential derartiger Distributionen auch ausschöpfen zu können, sollte man
      allerdings ausreichend mit Linux- und Hardware-Grundlagen vertraut sein.

    * Distributionen von kommerziellen Anbietern (beispielsweise `Red Hat
      Enterprise <https://de.wikipedia.org/wiki/Red_Hat_Enterprise_Linux>`_,
      `Fedora <https://de.wikipedia.org/wiki/Fedora_(Linux-Distribution)>`_,
      `Mandrivia <https://de.wikipedia.org/wiki/Mandriva>`_):

      Diese Distributionen werden von Firmen entwickelt und gepflegt und sind
      insbesondere für Geschäftskunden interessant, die darauf angewiesen sind,
      jederzeit einen kommerziellen technischen Support in Anspruch nehmen zu
      können.

.. [#MC32] Ältere Rechner mit einem einzelnen Prozessor (beispielsweise Intel
    Celeron, Intel Core2Duo, Intel Atom) benötigen ein 32-Bit-System, neuere
    Multi-Core-Prozessoren hingegen ein 64-Bit-System.

    Ist man sich nicht sicher, welcher Systemtyp der passende ist
    (beispielsweise weil man nicht weiß, was für ein Prozessor eingebaut ist),
    so kann eine entsprechende Suchmaschinen-Anfrage weiterhelfen. Darüber
    hinaus kann auch ein (versehentlicher) Versuch, einen Rechner mit einem
    nicht passenden System zu booten, keinerlei Schaden anrichten, denn er wird
    unmittelbar unterbrochen und eine entsprechende Fehlermeldung ausgegeben.

.. [#WI] Linux lässt sich auch parallel zu einem bestehenden Windows-System
    installieren. Hierzu nutzt man am besten eine eigene Festplatte oder legt
    mit dem Installations-Assistenten eine neue ``ext4``-Partition an
    (mindestens 15 GB) und installiert Linux in diesen Bereich; auch zwei neue
    Partitionen mit den Einhängepunkten  ``/`` für das Grundsystem und ``/home``
    für persönliche Dateien sind als Variante möglich. Nach einer üblichen
    Installation lässt sich anschließend bei jedem Rechnerstart in einem Menü
    auswählen, welches Betriebsystem gestartet werden soll.

    *Achtung:* Bei einer Veränderung einer bestehenden Partition --
    beispielsweise einer Verkleinerung, um Platz für eine neute Partition zu
    schaffen -- lässt sich ein Datenverlust niemals völlig ausschließen. Eine
    Sicherheitskopie bestehender Daten ist daher auf alle Fälle empfehlenswert!

    Linux kann lesend und schreibend auf alle Windows-Dateien und zugreifen. Windows
    kann jedoch nicht mit Linux-Dateisystemen umgehen, da es beispielsweise nicht
    zwischen Groß- und Kleinschreibung in Dateinamen unterscheidet. Möchte man auf
    bestimmte Daten mit beiden Systemen zugreifen, so müssen diese folglich auf
    einer Windows-Partition liegen.


.. [#] Fügt man als SuperUser weitere Accounts hinzu, so kann man entscheiden,
    ob diese sich ebenfalls temporär SuperUser-Rechte verschaffen dürfen.

.. [#] Unter Ubuntu/LinuxMint ist :ref:`aptitude <aptitude>` bereits
    vorinstalliert. Unter Debian kann es mittels ``sudo apt-get install
    aptitude`` nachinstalliert werden.