[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Packprogramme: Archive entpacken] [:Terminal: Ein Terminal öffnen] [:Programme_starten: Ein Programm starten] [:Programmstarter: Erstellen eines Programmstartes] [:Editor: Einen Editor öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/Oxygen/folder.png, 48, align=left)]] Das Verzeichnis '''/opt/''' (für optional) ist ein Ordner, in dem sämtliche Zusatzprogramme installiert werden, die nicht unter einer freien Lizenz stehen oder bewusst vom Anwender an der [:Paketverwaltung:] vorbei geschleust werden sollen. Der Hauptvorteil gegenüber einer Installation im eigenen [:Homeverzeichnis:] ist die Möglichkeit, systemweit (durch alle auf dem Rechner vorhandenen Benutzer) auf die dort installierten Programme zugreifen zu können. Neben kommerziellen Programmen wie LinDVD oder [:SPSS:] können hier z.B. [:Spiele:] installiert werden. Auch kostenlose, aber [:unfreie_Software:] wie [:Google_Earth:Google Earth] findet in diesem Ordner ihren Platz. Ein weiterer Anwendungszweck ist die (testweise) Installation von neueren Programmversionen. Dies setzt aber voraus, dass die Programme als vorkompilierte statische Binärdateien (precompiled static binaries) vorliegen. Dies hat den Vorteil, dass man Programme relativ schnell installieren kann, ohne die Paketverwaltung zu bemühen und vermeidet darüber hinaus das Ersetzen einer älteren, aber stabilen Programmversion aus den Paketquellen. Des Weiteren kann man sich so das Kompilieren eines Programms sparen. Programme werden dabei einfach nach dem Muster '''/opt/programmname''' in einen Unterordner von '''/opt''' kopiert. Allerdings muss man unter Umständen beachten, dass über diesen Weg installierte Programme Probleme bereiten können (Änderungen in Konfigurationsdateien). = Installation = Das gewünschte Programm muss bereits entpackt [1] vorliegen. Nun verwendet man entweder einen [:Dateimanager:] mit [:sudo:Root-Rechten] oder wechselt alternativ in ein Terminal-Fenster [2]. == Kopieren == Im ersten Schritt muss das Programm bzw. der Programmordner nach '''/opt/''' kopiert werden - ORDNER ist entsprechend zu ändern. Allgemein: {{{#!vorlage Befehl sudo cp -a --no-preserve=owner ORDNER /opt/ }}} Beispiel: {{{#!vorlage Befehl sudo cp -a --no-preserve=owner firefox /opt/ }}} Dieser Befehl sorgt auch dafür, dass die Dateien [:sudo:Root] gehören, was in den meisten Fällen sinnvoll ist. Dadurch wird verhindert, dass normale Benutzer unberechtigte Änderungen an den Programmdateien vornehmen können. Die Nutzung des Programms wird im Allgemeinen nicht eingeschränkt. Möchte man dennoch, dass der bisherige Dateieigentümer erhalten bleibt (wie bei einer Installation im [:Homeverzeichnis:]), dann lässt man einfach den Parameter `--no-preserve=owner` weg. Wer möchte, kann nun noch den Original-Ordner löschen. Das gewünschte Programm ist nun im Ordner '''/opt/''' zu finden. Damit man es direkt aufrufen kann [3], wird entweder eine symbolische Verknüpfung (Symlink) oder ein Startskript erstellt: == Symlink == Allgemeine Syntax einer Verknüpfung: {{{#!vorlage Befehl sudo ln -s /opt/ordner/programm /usr/local/bin/startername }}} Das Programm kann nun mittels '''startername''' aufgerufen und bei Bedarf ein Programmstarter [4] vorgenommen werden. == Skript == Mitunter kann es vorkommen, dass ein Symlink nicht funktioniert, da z.B. Umgebungsvariablen gesetzt werden müssen. Dann kann man in '''/usr/local/bin/''' mit einem Editor [5] und [:sudo:Root-Rechten] ein Skript `startername` anlegen. Inhalt: {{{#!/bin/sh cd /opt/programm/ ./programm }}} Dieses Skript anschließend ausführbar machen [6]: {{{#!vorlage Befehl sudo chmod +x /usr/local/bin/startername }}} === Java === Bei Programmen, die auf [:Java:] basieren, wird das Skript entsprechend abgeändert: {{{#!/bin/bash cd /opt/programm/ java -jar programm.jar }}} Falls ausdrücklich eine andere (z.B. ältere) Version von Java für ein Programm genutzt werden soll, muss man lediglich den Pfad zur Java-Version mit angeben. Beispiel: {{{ /usr/lib/jvm/java-1.5.0-sun/jre/bin/java -jar programm.jar }}} = Deinstallation = Zum Deinstallieren genügt es, die bei der Installation in '''/opt/''' abgelegten Dateien und die Symlinks oder Skripte in '''/usr/local/bin''' zu löschen. Eventuell vom Programm im [:Homeverzeichnis:] erstellte, [:Versteckte_Dateien:versteckte] Konfigurations-Dateien kann man bei Bedarf sichern oder ebenfalls löschen. Hinweise hierzu finden sich in der Regel im Artikel zum jeweiligen Programm. = Problembehebung = == Sich selbst aktualisierende Programme == Problematisch bei der Installation nach '''/opt/PROGRAMMNAME/''' sind alle Anwendungen, die sich selbst um eine Aktualisierung kümmern möchten. Da der Benutzer eines Programms nicht die entsprechenden Rechte besitzt, muss eine Aktualisierung scheitern. Abhilfe bringt eine vorübergehende Änderung der Besitzrechte mit [:chown:]: {{{#!vorlage Befehl sudo chown -R BENUTZERNAME:BENUTZERNAME /opt/PROGRAMMNAME }}} `BENUTZERNAME` und `PROGRAMMNAME` müssen an das eigene System angepasst werden. Nun kann beim nächsten Start des Programms (durch den angegebenen Benutzer!) eine Aktualisierung durchgeführt werden. Da dies eine potentielle Sicherheitslücke darstellt, sollte man später die Besitzrechte wieder zurücksetzen: {{{#!vorlage Befehl sudo chown -R root:root /opt/PROGRAMMNAME }}} Komplett umgehen kann man das Problem nur, wenn man das gewünschte Programm nicht nach '''/opt/''', sondern ins eigene [:Homeverzeichnis:] installiert. Wenn dort mehrere Anwendungen installiert werden sollen, ist es empfehlenswert, sich einen eigenen Ordner '''~/bin/''' mit Unterordnern für die jeweiligen Programme einzurichten. Ein oben erwähnter [#Symlink Symlink] hat auch hier den Vorteil, dass man eine Anwendung einfach über ihren Namen starten kann, ohne den vollständigen Pfad angeben zu müssen. = Links = * [:Verzeichnisstruktur:] {Übersicht} Übersichtsartikel # tag: System