Programme.html 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui">
  6. <title>Linux-Kurs - Programme</title>
  7. <link type="text/css" rel="stylesheet" href="assets/css/github-markdown.css">
  8. <link type="text/css" rel="stylesheet" href="assets/css/pilcrow.css">
  9. <link rel="shortcut icon" href="assets/favicon.ico">
  10. </head>
  11. <body>
  12. <article class="markdown-body"><h1 id="linux-kurs---programme"><a class="header-link" href="#linux-kurs---programme"></a>Linux-Kurs - Programme</h1>
  13. <p><a href="https://linuxkurs.ch">https://linuxkurs.ch</a></p>
  14. <p>Super! Du hast es geschafft auf deinem Linux-Computer eine grafische Oberfläche zu installieren. In der Zwischenzeit hattest du sicherlich bereits die Möglichkeit das ein oder andere enthaltene Programm auszuprobieren. Slackware bringt bereits hunderte von Applikationen mit. Dennoch kann es sein, dass du ein Programm vermisst. In diesem Kursteil lernst du, wie du zusätzliche Anwendungen installieren kannst.</p>
  15. <h2 id="paketverwaltung"><a class="header-link" href="#paketverwaltung"></a>Paketverwaltung</h2>
  16. <p>Die meisten Linux-Distributionen bringen eine eigene Paketverwaltung mit. Bei Paketen handelt es sich um für eine einfache Installation vorbereitete Programme. Diese Pakete können Abhängigkeiten untereinander aufweisen. Paket X benötigt zum Beispiel Paket Y damit es lauffähig ist.</p>
  17. <p>Viele Linux Distributionen lösen diese Paketabhängigkeiten über den Paketmanager automatisch auf. Diese Vorgehensweise bietet dem Anwender einiges an Komfort, da so die Softwareinstallation deutlich vereinfacht wird. Dennoch bringt sie auch Nachteile mit sich. So sind solche automatischen Systeme oftmals nicht sehr flexibel. Benötigst du zum Beispiel nicht genau die Version eines Programms, die in den Paketquellen enthalten ist, kann die Installation schwierig werden.</p>
  18. <p>Ein aktueller Ansatz dieses Problem zu lösen, sind sogenannte Applikations-Container. Dabei handelt es sich um gebündelte Applikationen, die alle zum Betrieb benötigten Abhängigkeiten wie Bibliotheken (Libraries) bereits enthalten. Prominente Beispiele dieser Technologie heissen: <em>Snap</em>, <em>FlatPak</em> oder <em>AppImage</em>. Ein Vorteil dieser Lösungen ist, dass auch mehrere Versionen des gleichen Programms nebeneinander installiert werden können. Leider widersprechen die Ansätze einigen wichtigen Grundsätzen von Linux. Da jeder Applikations-Container seine eigenen Libraries mitbringt, können diese parallel in mehrfacher Ausführung auf dem System vorhanden sein. Dadurch wird einerseits zusätzlicher Speicherplatz benötigt, andererseits müssen all diese Duplikate aktuell gehalten werden, um die Sicherheit des Systems zu garantieren.</p>
  19. <p>Ein anderer Aspekt ist, dass diese Container oftmals nicht über die Distribution aktualisiert werden. Das heisst, die Sicherheit der Applikation wird ausschliesslich durch den Entwickler des Containers und die Aktualisierungsmechanismen der Containerverwaltung gewährleistet.</p>
  20. <p>Die Distribution Slackware verwendet viele dieser Mechanismen standardmässig nicht. Abhängigkeiten werden nicht automatisch aufgelöst. Das heisst du musst selber sicherstellen, dass alle benötigten Abhängigkeiten ebenfalls installiert sind. Die Pakete bestehen im Wesentlichen aus .tar.xz (txz) Archiven und BASH Scripten, welche während der Installation entpackt und ausgeführt werden. <em>tar</em> ist ein gängiges Archivformat, ähnlich wie <em>zip</em> auf anderen Plattformen. <em>xz</em> ist ein effektives Datenkompressionsformat, das genutzt wird, um die Grösse der Pakete zu reduzieren. Einige Pakete liegen auch im .tar.gz (tgz) oder ähnlichen Formaten vor.</p>
  21. <p><strong>Hinweis</strong>: nicht bei jedem tar-Archiv, das du im Internet findest, handelt es sich um ein Slackware-Paket. Vertrauenswürdige Pakete findest du im offiziellen Repository der Distribution.</p>
  22. <div style="page-break-after: always;"></div>
  23. <p>Folgende offizielle Tools können verwendet werden um solche Pakete unter Slackware zu verwalten:</p>
  24. <ul class="list">
  25. <li>installpkg – installiert ein neues Paket</li>
  26. <li>removepkg – entfernt ein vorhandenes Paket</li>
  27. <li>upgradepkg – aktualisiert ein vorhandenes Paket</li>
  28. </ul>
  29. <p><em>upgradepkg</em> wird häufig in Verbindung mit dem Parameter <strong>--install-new</strong> verwendet, da es beide Fälle abdeckt: die Installation eines neuen Paketes sowie die Aktualisierung eines bereits vorhandenen Paketes.</p>
  30. <p>Es gibt noch weitere Tools wie <em>explodepkg</em> zum einfachen Entpacken eines Paketes, <em>makepkg</em> zur Erstellung von Paketen oder <em>pkgtool</em>. Letzteres bietet ein TUI-Frontend (Terminal User Interface) für die Paketverwaltung. Es kann allerdings nur mit lokalen Paketquellen arbeiten.</p>
  31. <p>Für die allgemeine Installation von Paketen von einem Mirror empfiehlt sich die Nutzung des Programms <em>slackpkg</em>, welches du bereits kennenlernen durftest.</p>
  32. <p>Durch die Wahl der Installationsmethode <em>full</em> bei der Einrichtung deines Linux-Systems sind bereits viele Programme installiert worden. Da wir die Desktopumgebung KDE bei der Auswahl der Paketgruppen abgewählt haben, wurden allerdings keine KDE-Programme mit installiert. </p>
  33. <p>Am Beispiel einer KDE-Anwendung schauen wir uns die Installation von Zusatzpaketen mithilfe vom <em>slackpkg</em> genauer an. Im Folgenden stellen wir dir ausserdem weitere Möglichkeiten zur Installation von Zusatzsoftware vor.</p>
  34. <div style="page-break-after: always;"></div>
  35. <h3 id="slackpkg"><a class="header-link" href="#slackpkg"></a>slackpkg</h3>
  36. <p>Grundlegend hast du das Konsolenprogramm slackpkg bereits kennengelernt. Du hast dein System aktualisiert, Pakete gesucht, Paket installiert und entfernt. Nehmen wir an, du möchtest ein weiteres Paket installieren, zum Beispiel den KDE-Texteditor namens <em>kate</em>. Öffne dazu ein Terminalfenster und erlange mit <code>su -</code> Root-Rechte. Mithilfe der Suchfunktion von slackpkg kannst du herausfinden, ob es ein Paket mit dem Namen <em>kate</em> gibt:</p>
  37. <pre class="hljs"><code><span class="hljs-keyword">su</span> -
  38. slackpkg <span class="hljs-keyword">search</span> kate</code></pre><p class="img-container"><img src="./slackware_slackpkg_search_kate.png" alt=""></p>
  39. <p>Es wurde ein Paket mit dem Namen <em>kate</em> gefunden, welches aktuell nicht installiert ist. Dies erkennst du an dem <strong>[uninstalled]</strong> Vermerk vor dem Paketnamen.</p>
  40. <p>Die Installation des Paketes erfolgt wie gewohnt mit dem <em>install</em> Parameter. Zuerst wird jedoch die slackpkg Datenbank aktualisiert.</p>
  41. <pre class="hljs"><code>slackpkg update
  42. slackpkg <span class="hljs-keyword">install</span> kate</code></pre><p>Öffne bitte ein zweites Terminalfenster oder ein neues Terminal-Tab (Ctrl+Shift+T) und versuche aus der Kommandozeile als normaler Benutzer das neu installierte Programm zu starten:</p>
  43. <p><code>kate</code></p>
  44. <p class="img-container"><img src="./slackware_kate_missing_deps.png" alt=""></p>
  45. <p>Die Applikation kann nicht gestartet werden, da eine weitere Abhängigkeit nicht gefunden wird. In diesem Fall benötigt kate das Library <em>ktexteditor</em>.</p>
  46. <div style="page-break-after: always;"></div>
  47. <p>Wechsle zurück in das Root-Terminal und nutze die bereits bekannte <em>file-search</em> Option um herauszufinden, welches Paket die benötigte Library bereitstellt:</p>
  48. <p><code>slackpkg file-search libKF5TextEditor.so.5</code></p>
  49. <p class="img-container"><img src="./slackware_slackpkg_search_kactivities.png" alt=""></p>
  50. <p>Du siehst, dass die Bibliothek <em>libKF5TextEditor.so.5</em> vom Paket <em>ktexteditor</em> bereitgestellt wird. Installieren kannst du die Abhängigkeit mit folgendem Befehl:</p>
  51. <p><code>slackpkg install ktexteditor</code></p>
  52. <p>Wechsle in das Terminalfenster des Benutzers und versuche den Editor durch die Eingabe von <code>kate</code> erneut zu starten. Du wirst feststellen, dass kate noch immer nicht gestartet werden kann.</p>
  53. <p>Um nicht für jede Dependency diese Schritte durchführen zu müssen gibt es die Möglichkeit mithilfe des Programmes <strong>ldd</strong> zu arbeiten. Dieses Programm hilft dabei, Bibliotheksabhängigkeiten herauszufinden.</p>
  54. <p>Du kannst ldd mit dem Pfad zu dem Programm aufrufen, für das die Abhängigkeiten dargestellt werden sollen. </p>
  55. <p>Wo ein Programm im Dateisystem abgelegt ist, findest du mit dem Befehl <code>which</code> heraus:</p>
  56. <p><code>which kate</code></p>
  57. <p class="img-container"><img src="./slackware_which_kate.png" alt=""></p>
  58. <p>Das Programm kate befindet sich im Pfad <code>/usr/bin/</code></p>
  59. <p>Um nun die Abhängigkeiten zu sehen, kannst du <strong>ldd /usr/bin/kate</strong> ausführen.</p>
  60. <p>Es wird eine lange Liste von Bibliotheken ausgegeben. Du musst möglicherweise nach oben scrollen, oder ldd mit <code>| more</code> aufrufen:</p>
  61. <p><code>ldd /usr/bin/kate | more</code></p>
  62. <p>Sollte die Ausgabe im Terminal zu lang sein um vollständig dargestellt werden zu können, kannst du wahlweise auch das Mausrad (falls verfügbar), die Scrollfunktion deines Touchpads oder Shift+PageUp/PageDown nutzen, um den vorherigen Inhalt darzustellen.</p>
  63. <p>Unter den Bibliotheken werden einige vorhanden sein, welche als <strong>not found</strong> angegeben werden.</p>
  64. <p>Noch übersichtlicher wird die Ausgabe, wenn du sie mit dem <strong>grep</strong> Befehl einschränkst:</p>
  65. <p><code>ldd /usr/bin/kate | grep &#39;not found&#39;</code></p>
  66. <p>So werden nur noch die nicht vorhandenen Bibliotheken angezeigt.</p>
  67. <div style="page-break-after: always;"></div>
  68. <p>Nun kannst du die fehlenden Abhängigkeiten installieren.</p>
  69. <p><code>slackpkg install kparts kio kjobwidgets solid kcompletion kxmlgui kconfigwidgets kcodecs kauth syntax-highlighting kcrash ktextwidgets sonnet kactivities karchive kitemviews kguiaddons kiconthemes kglobalaccel</code></p>
  70. <p>Wenn alles funktioniert hat, begrüsst dich <em>kate</em> mit folgender Ansicht:</p>
  71. <p class="img-container"><img src="./slackware_xfce_kate.png" alt=""></p>
  72. <p>Wenn du nun erneut ldd mit dem grep ausführst, sollte keine fehlende Abhängigkeit mehr ausgegeben werden:</p>
  73. <p><code>ldd /usr/bin/kate | grep &#39;not found&#39;</code></p>
  74. <div style="page-break-after: always;"></div>
  75. <h3 id="slackbuilds"><a class="header-link" href="#slackbuilds"></a>SlackBuilds</h3>
  76. <p>Slackware enthält bereits eine Vielzahl von Freien Applikationen. Es kann jedoch vorkommen, dass ein Programm nicht Bestandteil der Distribution ist. Viele weitere Programme lassen sich anhand von sogenannten SlackBuilds compilieren und paketieren. Man spricht von compilieren, wenn ein Programm aus dem menschenlesbaren Quelltext in ein vom Computer interpretierbares Binärformat übersetzt wird.</p>
  77. <p>Bei den erwähnten SlackBuilds handelt es sich sozusagen um Rezepte zur Erstellung von Slackware-Paketen. Eine grosse Sammlung dieser SlackBuilds findest du auf der Webseite SlackBuilds.org <nobr>(<a href="https://slackbuilds.org">https://slackbuilds.org</a>)</nobr>.</p>
  78. <p>Die Suche auf der Webseite ermöglicht es dir das passende Paketrezept zu finden. Neben dem Suchfeld findest du eine Drop-Down-Liste mit Slackware-Versionen. Standardmässig wird nach SlackBuilds für die aktuelle stabile Version von Slackware gesucht.</p>
  79. <p>Gebe als Beispiel in das Suchfeld den Namen des erweiterten grafischen Texteditors <em>gedit</em> ein. Dieser fügt sich etwas besser in die Xfce Desktopumgebung ein als kate und bietet einen ähnlichen Funktionsumfang.</p>
  80. <p>Nachdem du die Suche ausgelöst hast, wird eine Liste von Treffern angezeigt. Klicke auf den Namen des Programms <em>gedit</em>.</p>
  81. <p class="img-container"><img src="./sbo_gedit_1.png" alt=""></p>
  82. <div style="page-break-after: always;"></div>
  83. <p>Wichtig ist der Punkt <em>This requires</em>. In diesem Beispiel benötigt die Applikation gedit <em>gspell</em>, <em>libpeas</em> und <em>tepl</em>. Klicke beispielsweise auf den Namen <em>tepl</em> und du siehst dessen Paketdetails:</p>
  84. <p class="img-container"><img src="./sbo_gedit_2.png" alt=""></p>
  85. <p>Wie du siehst hat <em>tepl</em> weitere Abhängigkeiten. <em>gspell</em> und <em>libpeas</em> lassen sich hingegen ohne Abhängigkeiten übersetzen. </p>
  86. <p>Resultierend daraus müssen die Pakete in folgender Reihenfolge erstellt werden:</p>
  87. <p><strong>gtksourceview4, amtk -&gt; tepl, gspell, libpeas -&gt; gedit</strong></p>
  88. <p>Du könntest jetzt für jedes dieser Programme das SlackBuild und die Quellen (Sources) herunterladen, das SlackBuild Archiv entpacken, das Quellarchiv in den neu entstandenen Ordner kopieren und mit Root-Rechten das enthaltene SlackBuild Script ausführen. Die resultierenden Pakete könntest du dann mit <em>upgradepkg --install-new</em> installieren. </p>
  89. <div style="page-break-after: always;"></div>
  90. <h3 id="sbopkg"><a class="header-link" href="#sbopkg"></a>sbopkg</h3>
  91. <p>Viel einfacher geht die Installation jedoch mit dem Tool <em>sbopkg</em>. Es ist nicht Teil der offiziellen Slackware Distribution. Du kannst es auf der Homepage des Projektes herunterladen: <a href="https://sbopkg.org">https://sbopkg.org</a> </p>
  92. <p>Klicke auf den Reiter Downloads und lade das Slackware Paket herunter. Du kannst es im Download-Ordner deines Benutzers abspeichern:</p>
  93. <p class="img-container"><img src="./sbo_sbopkg_download.png" alt=""></p>
  94. <p>Öffne ein Xfce-Terminalfenster und erlange mithilfe von <code>su -</code> Root-Rechte. Mit dem Befehl <code>installpkg</code> unter Angabe des Pfades, unter dem du das Paket gespeichert hast, kannst du es installieren. In diesem Beispiel wäre es:</p>
  95. <pre class="hljs"><code>su -
  96. installpkg <span class="hljs-regexp">/home/</span>linuxuser<span class="hljs-regexp">/Downloads/</span>sbopkg-*.tgz</code></pre><p>Das * bedeutet, dass an dieser Stelle ein beliebig langer Zeichen- und Zahlenwert stehen kann. </p>
  97. <p>Du kannst natürlich auch die genaue Version des Paketes angeben, in diesem Beispiel <em>sbopkg-0.38.1-noarch-1_wsr.tgz</em>.</p>
  98. <p class="img-container"><img src="./sbo_sbopkg_install.png" alt=""></p>
  99. <div style="page-break-after: always;"></div>
  100. <p>Vor der Nutzung muss die sbopkg Datenbank aktualisiert werden. Dafür wird folgender Befehl angegeben:</p>
  101. <pre class="hljs"><code><span class="hljs-attribute">sbopkg -r</span></code></pre><p>Daraufhin kannst du sbopkg durch Eingabe des Befehls <code>sbopkg</code> das erste Mal starten. </p>
  102. <p class="img-container"><img src="./sbo_sbopkg_tui.png" alt=""></p>
  103. <p>Bei <em>sbopkg</em> handelt es sich um eine CLI (Command Line Interface) Anwendung mit optionaler TUI (Terminal User Interface). Letztere funktioniert sehr ähnlich wie Teile der Slackware-Installationsroutine, die du bereits kennst, in den allermeisten Fällen solltest du allerdings mit dem CLI weiterkommen. Mittels <code>Exit</code> kannst du die TUI wieder verlassen.</p>
  104. <div style="page-break-after: always;"></div>
  105. <h4 id="sbopkg-cli"><a class="header-link" href="#sbopkg-cli"></a>sbopkg CLI</h4>
  106. <p>sbopkg bringt ein kleines Hilfsprogramm mit dem Namen <strong>sqg</strong> mit. Es bietet die Möglichkeit automatisch Queues für Pakete von SlackBuilds.org zu erstellen. Queues sind Listen mit Apllikationen welche der Reihe nach installiert werden. Dazu empfiehlt es sich zunächst für alle verfügbaren SlackBuilds Queuefiles erstellen zu lassen. Dies geschieht als Root mit folgendem Befehl:</p>
  107. <p><strong>Hinweis</strong>: Wie auch sbopkg lässt sich sqg nur mit Root-Rechten nutzen. Im Folgenden gehen wir davon aus, dass du die angegebenen Kommandos in einem Root-Terminal ausführst.</p>
  108. <pre class="hljs"><code>su -
  109. sqg -<span class="hljs-selector-tag">a</span></code></pre><p>Der Vorgang kann einige Zeit in Anspruch nehmen, da alle verfügbaren SlackBuilds analysiert werden.</p>
  110. <p class="img-container"><img src="./sbo_sqg_a.png" alt=""></p>
  111. <p>Nachdem dies abgeschlossen ist, können wir die Installation von <strong>gedit</strong> starten.</p>
  112. <p>Da wir für alle Programme Queuefiles erstellt haben, sollte bereits ein entsprechendes Queuefile unter <code>/var/lib/sbopkg/queues/</code> mit dem Namen <code>gedit.sqf</code> erstellt worden sein. Du kannst es dir mit dem <code>cat</code> Befehl anzeigen lassen:</p>
  113. <p><code>cat /var/lib/sbopkg/queues/gedit.sqf</code></p>
  114. <p class="img-container"><img src="./sbo_cat_queuefile.png" alt=""></p>
  115. <p>Die Verarbeitung des Queuefiles kannst du mit der Hilfe des folgenden Befehls starten:</p>
  116. <p><code>sbopkg -k -i gedit</code></p>
  117. <p>Die Option <code>-k</code> legt fest, dass Pakete in der Queueliste, die bereits erstellt worden sind, nicht erneut erstellt werden.</p>
  118. <p>sbopkg erkennt, dass es ein Queuefile sowie eine gleichnamige Paketdefinition gibt. Wir möchten das Queuefile verwenden. Wähle daher <strong>Q</strong> und drücke Enter:</p>
  119. <p class="img-container"><img src="./sbo_process_queuefile.png" alt=""></p>
  120. <div style="page-break-after: always;"></div>
  121. <p>Danach wird das PRE-CHECK LOG ausgegeben. Du kannst die Installation durch Eingabe von <strong>P</strong> gefolgt von Enter starten.</p>
  122. <p class="img-container"><img src="./sbo_precheck_queuefile.png" alt=""></p>
  123. <p>Nach erfolgreicher Installation findest du den Texteditor <em>gedit</em> im Anwendungsmenü unterhalb der Kategorie <strong>Zuberhör</strong>.</p>
  124. <div style="page-break-after: always;"></div>
  125. <h4 id="sbo-blacklist"><a class="header-link" href="#sbo-blacklist"></a>SBo Blacklist</h4>
  126. <p>Damit die mittels sbopkg installierten Systeme nicht von slackpkg deinstalliert werden (wie zum Beispiel bei einem Aufruf von <code>slackpkg clean-system</code>), sollten diese in der Datei <code>/etc/slackpkg/blacklist</code> als Ausnahme definieren werden. Dazu kannst du die Raute vor der Zeile <code>[0-9]+_SBo</code> entfernen:</p>
  127. <pre class="hljs"><code>su -
  128. vi <span class="hljs-regexp">/etc/</span>slackpkg/blacklist</code></pre><pre class="hljs"><code><span class="hljs-comment"># This one will blacklist all SBo packages:</span>
  129. [<span class="hljs-number">0</span><span class="hljs-number">-9</span>]+_SBo</code></pre><p class="img-container"><img src="./slackware_slackpkg_blacklist_sbo.png" alt=""></p>
  130. <p>Speichere die Änderungen ab und verlasse den Editor.</p>
  131. <p>Die Definition des obigen Blacklist Eintrages sorgt dafür, dass alle Pakete, die auf eine Zahl gefolgt von der Zeichenkette <code>_SBo</code> enden, nicht mehr von slackpkg behandelt werden. Das hat zur Folge, dass diese auch nicht mithilfe von <code>slackpkg remove</code> entfernt werden können. Dazu kann der Befehl <code>removepkg</code> gefolgt vom Paketnamen genutzt werden. Alle bisher mittels sbopkg installierten Pakete kannst du dir mit folgendem Befehl ausgeben lassen:</p>
  132. <p><code>ls -al /var/log/packages/*_SBo</code></p>
  133. <div style="page-break-after: always;"></div>
  134. <h5 id="parameter"><a class="header-link" href="#parameter"></a>Parameter</h5>
  135. <p>Anhand eines weiteren Beispiels schauen wir uns eine mächtige Option an die viele SlackBuilds bieten: die Parametrisierung. Wenn ein SlackBuild Parameter unterstützt, wird die üblicherweise in der Beschreibung auf SlackBuilds.org angegeben. <strong>Hinweis</strong>: Parameter werden nur bei einzelnen Paketen unterstützt und nicht bei Queues.</p>
  136. <p>Suche auf SlackBuilds.org nach dem Paket <em>transmission</em>, einem Programm zur Übertragung von Torrent Dateien:</p>
  137. <p class="img-container"><img src="./sbo_transmission_parameters.png" alt=""></p>
  138. <p>Da wir die grafische Oberfläche des Programmes und nicht die CLI benutzen wollen, spezifizieren wir den Parameter <strong>CLI=no</strong>.</p>
  139. <p>Um den Build mit dem Parameter zu starten, kannst du sbopkg wie folgt aufrufen:</p>
  140. <p><code>sbopkg -i transmission:CLI=&quot;no&quot;</code></p>
  141. <p>Das Programm fragt dich vor dem Build, ob du die <em>Command line options</em> verwenden möchtest. Bestätige dies mit <strong>C</strong>:</p>
  142. <p class="img-container"><img src="./sbo_transmission_qt_no.png" alt=""></p>
  143. <p>In diesem Falle wird nur die GTK Version des Programmes erstellt. </p>
  144. <div style="page-break-after: always;"></div>
  145. <h5 id="empfohlene-pakete"><a class="header-link" href="#empfohlene-pakete"></a>Empfohlene Pakete</h5>
  146. <p>Im Folgenden werden einige Applikationen vorgestellt, die sich für einen Xfce-Desktop gut eignen:</p>
  147. <ul class="list">
  148. <li><code>filezilla</code> ein FTP Client</li>
  149. <li><code>unrar</code> ein Entpackprogramm für rar Dateien </li>
  150. <li><code>evince</code> ein PDF-Betrachter</li>
  151. <li><code>gpicview</code> ein schlanker Bildbetrachter mit Diashow und Vollbildfunktion</li>
  152. <li><code>mcomix</code> mehr als nur ein ComicReader. Er stellt auch epub und andere Formate dar</li>
  153. <li><code>vokoscreen</code>ein Programm zur Aufnahme von Bildschirmvideos</li>
  154. <li><code>telegram</code> ein multi-Plattform Chatprogramm</li>
  155. <li><code>galculator</code> ein Taschenrechner</li>
  156. <li><code>sun</code> ein Benachrichtigungsapplet welches dich über verfügbare Updates informiert.</li>
  157. </ul>
  158. <p>Im Laufe der Zeit wirst du noch viele weitere Anwendungen entdecken.</p>
  159. <p>Je nach Programm kann die Erstellung der gewünschten Pakete sehr lange Zeit in Anspruch nehmen. Hier einige Empfehlungen die sich unbedingt lohnen. Je nach Rechnertyp kann die Erstellung solcher Pakete jedoch mehr als einen Tag dauern. Du kannst den Buildprozess zum Beispiel morgens starten bevor du aus dem Haus gehst und dich möglicherweise Abends, wenn du zurückkommst über das fertige Programm freuen: </p>
  160. <ul class="list">
  161. <li><code>vlc</code> der ultimative Mediaplayer. Spielt alle gängigen Audio- und Video-Formate und DVDs</li>
  162. <li><code>LibreOffice</code> das bekannte Büroprogramm. <strong>Hinweis</strong>: Achte bei der Angabe auf die Gross- und Kleinschreibung</li>
  163. </ul>
  164. <p>Alternativ kannst du, wie später im Abschnitt <em>Slackpkg+</em> beschrieben, vorcompilierte Pakete installieren, </p>
  165. <h6 id="sbopkg-interaktion"><a class="header-link" href="#sbopkg-interaktion"></a>sbopkg Interaktion</h6>
  166. <p>Es kann vorkommen, dass einige Pakete zur Erstellung aus den SlackBuilds eine manuelle Interaktion erfordern.</p>
  167. <p>In solch einem Fall kannst du einfach ein zweites Terminalfenster (oder Tab) öffnen und dort die angegebenen Kommandos ausführen:</p>
  168. <p>Daraufhin wechselst du zurück in das Fenster, in dem die sbopkg Queueverarbeitung angehalten wurde und gibst <strong>R</strong> für <em>(R)etry the build</em> ein.</p>
  169. <div style="page-break-after: always;"></div>
  170. <h5 id="updates"><a class="header-link" href="#updates"></a>Updates</h5>
  171. <p>Wie auch die offiziellen Slackware Pakete erhalten SlackBuilds ebenfalls Updates. Oftmals handelt es sich dabei um neue Versionen eines Programms oder einer Library. Es gibt aber auch relevante Sicherheitsupdates. Mithilfe des <code>-c</code> Parameters kannst du prüfen, ob es Aktualisierungen für Pakete anstehen:</p>
  172. <p><code>sbopkg -c</code></p>
  173. <p>Es werden nach einiger Zeit alle Pakete (keine Queues) ausgegeben für die es Updates gibt. Gäbe es zum Beispiel für den Mediaplayer <code>vlc</code> eine Aktualisierung, könntest du diese mit <code>sbopkg -i vlc</code> und der Auswahl von <strong>Package</strong> statt Queue installieren:</p>
  174. <p class="img-container"><img src="./sbo_sbopkg_check_install_update.png" alt=""></p>
  175. <p><strong>Hinweis</strong>: Viele aktuelle Applikationen wie VLC basieren auf dem Framework <em>Qt</em>. Für dieses stehen immer wieder neue Versionen an, wobei es sich in den allermeisten Fällen um Feature-Releases handelt. Die Erstellung des <em>Qt</em> Paketes dauert sehr lange. Daher ist für die Aktualisierung von <em>Qt</em> entsprechend Zeit einzuplanen.</p>
  176. <div style="page-break-after: always;"></div>
  177. <h3 id="3rd-party-repositories"><a class="header-link" href="#3rd-party-repositories"></a>3rd Party Repositories</h3>
  178. <p>Neben dem offiziellen Slackware Repository gibt es auch einige Paketquellen von Drittanbietern die bereits vorcompilierte Slackware-Pakete enthalten, wie zum Beispiel die Repositories des Slackware-Entwicklers <em>Alien BOB</em>: <a href="http://www.slackware.com/~alien/slackbuilds/">http://www.slackware.com/~alien/slackbuilds/</a></p>
  179. <p>Dort findest du auch bereits erstellte Pakete für <code>vlc</code> oder <code>Libre Office</code>. Pro Paket gibt es einen Unterordner <code>pkg64</code> für die 64Bit Version und darin wiederum Ordner für die verschiedenen Slackware Versionen. Du benötigst zur Installation jeweils nur die <code>.txz</code> Dateien, die du nach dem Herunterladen mit Root-Rechten über das Kommando <code>upgradepkg --install-new /Pfad/zum/Paket.txz</code> installieren kannst (wobei du natürlich <em>/Pfad/zum/Paket.txz</em> durch den tatsächlichen Downloadort ersetzen musst).</p>
  180. <h4 id="slackpkg-1"><a class="header-link" href="#slackpkg-1"></a>Slackpkg+</h4>
  181. <p>Grundsätzlich ist es empfehlenswert die alien-Repositories über die <em>slackpkg</em>-Erweiterung mit dem Namen <em>Slackpkg+</em> einzubinden.</p>
  182. <p>Lade zunächst von der Webseite des Projektes das Paket im <em>txz</em> Format herunter und speichere es im Downloadordner deines Benutzers: <nobr><a href="https://sourceforge.net/projects/slackpkgplus/">https://sourceforge.net/projects/slackpkgplus/</a></nobr></p>
  183. <p>Öffne ein Xfce-Terminalfenster und erlange mithilfe von <code>su -</code> Root-Rechte. Mit dem Befehl <code>upgradepkg</code> kannst du das Paket installieren. In diesem Beispiel wäre es:</p>
  184. <pre class="hljs"><code>su -
  185. upgradepkg --install-<span class="hljs-keyword">new</span> <span class="hljs-regexp">/home/</span>linuxuser<span class="hljs-regexp">/Downloads/</span>slackpkg+*.txz</code></pre><p>Die Konfiguration von Slackpkg+ erfolgt in der Datei <em>/etc/slackpkg/slackpkgplus.conf</em>.</p>
  186. <p><code>vi /etc/slackpkg/slackpkgplus.conf</code></p>
  187. <p>Entferne zunächst das Rautezeichen vor den folgenden Mirror-Definitionen:</p>
  188. <pre class="hljs"><code>MIRRORPLUS[<span class="hljs-string">&#x27;alienbob&#x27;</span>]=http:<span class="hljs-regexp">//</span>bear.alienbase.nl<span class="hljs-regexp">/mirrors/</span>people<span class="hljs-regexp">/alien/</span>sbrepos<span class="hljs-regexp">/15.0/</span>x86_64/
  189. MIRRORPLUS[<span class="hljs-string">&#x27;restricted&#x27;</span>]=http:<span class="hljs-regexp">//</span>bear.alienbase.nl<span class="hljs-regexp">/mirrors/</span>people<span class="hljs-regexp">/alien/</span>restricted_sbrepos<span class="hljs-regexp">/15.0/</span>x86_64/</code></pre><p>Das restricted Repository enthält eine Version von vlc die auch patent-behaftete Codecs abspielen kann.</p>
  190. <p>Füge daraufhin die Namen der Repositories (das was bei der Mirror-Definition in den eckigen Klammern steht) zu der Variable REPOPLUS hinzu:</p>
  191. <p><code>REPOPLUS=( slackpkgplus alienbob restricted )</code></p>
  192. <p>Darüber hinaus sollte der Spiegelserver für Aktualisierungen von Slackpkg+ selbst wie folgt angepasst werden:</p>
  193. <p><code>MIRRORPLUS[&#39;slackpkgplus&#39;]=https://slackware.nl/slackpkgplus15/</code></p>
  194. <div style="page-break-after: always;"></div>
  195. <p>Falls du vlc aus dem <em>restricted</em> Repository installieren möchtest, solltest du dieses Repository über die Definition eine <code>PKGS_PRIORITY</code> bevorzugen. Du kannst wie folgt bestimmen, dass nur das vlc Paket bevorzugt aus dem <em>restricted</em> Repository installiert werden soll:</p>
  196. <p><code>PKGS_PRIORITY=( restricted:vlc )</code></p>
  197. <p class="img-container"><img src="./slackware_slackpkgplus_alien_restricted.png" alt=""></p>
  198. <p>Nach der Anpassung der Konfigurationsdatei müssen die GPG-Entwicklerschlüssel und die Repository-Metadaten aktualisiert werden:</p>
  199. <pre class="hljs"><code>slackpkg <span class="hljs-keyword">update</span> gpg
  200. slackpkg <span class="hljs-keyword">update</span></code></pre><p>Die Aktualisierung der GPG-Schlüssel muss jeweils nur nach Änderungen an den Repositories erfolgen.</p>
  201. <p>Die Installation von Programmen erfolgt wie bisher mit dem <code>slackpkg</code> Befehl.</p>
  202. <p>Für vlc lautet dieser:</p>
  203. <p><code>slackpkg install vlc</code></p>
  204. <p>Stelle bitte zuvor sicher, dass du keine dieser Pakete aus SlackBuilds installiert hast. Dazu kannst du folgenden Befehl eingeben:</p>
  205. <p><code>ls -al /var/log/packages/{vlc*}</code></p>
  206. <p>Sollte dies der Fall sein, entferne diese zuvor mittels <strong>removepkg</strong> unter Angabe des Paketnamens. </p>
  207. <p>Für die Installation von LibreOffice inklusive der deutschen Sprachpakete und Wörterbücher lautet der Befehl:</p>
  208. <p><code>slackpkg install libreoffice-6 libreoffice-l10n-de libreoffice-dict-de</code></p>
  209. <div style="page-break-after: always;"></div>
  210. <h3 id="drittanbieter-applikationen"><a class="header-link" href="#drittanbieter-applikationen"></a>Drittanbieter Applikationen</h3>
  211. <p>Einige Softwarehersteller bieten Ihre Applikationen wahlweise als <em>deb</em>-, <em>rpm</em>-Paket oder als Archiv mit eigener Installationsroutine an. <em>deb</em>-Pakete kommen bei vielen Debian basierten Distributionen zum Einsatz, <em>rpm</em> wurde ursprünglich von Red Hat entwickelt. Distributionen wie <em>openSUSE</em> nutzen ebenfalls dieses Format. Einige SlackBuilds konvertieren lediglich solche vorcompilierten <em>deb</em>- oder <em>rpm</em>-Pakete in das Slackware Format. </p>
  212. <h4 id="google-chrome"><a class="header-link" href="#google-chrome"></a>Google Chrome</h4>
  213. <p>Ein prominentes Beispiel ist das SlackBuild Script für den Google Chrome-Browser aus dem extra/ Repository der Slackware Distribution:</p>
  214. <p><nobr><a href="https://mirrors.slackware.com/slackware/slackware64-14.2/extra/google-chrome/">https://mirrors.slackware.com/slackware/slackware64-14.2/extra/google-chrome/</a></nobr></p>
  215. <p>In solchen Fällen lies dir bitte unbedingt das README durch. Dort wird in der Regel die genaue Vorgehensweise beschrieben. In diesem Falle musst du zunächst das offizielle Chrome Paket für Debian in der x86_64 Variante herunterladen: <a href="http://www.google.com/chrome">http://www.google.com/chrome</a></p>
  216. <p>Speichere im gleichen Ordner das SlackBuild-Script <em>google-chrome.SlackBuild</em> und die Beschreibungsdatei <em>slack-desc</em> ab. Im Firefox klickst du dazu mit der rechten Maustaste auf den Dateinamen und wählst im Menü den Punkt <strong>Ziel Speichern unter</strong> aus. Öffne daraufhin ein Terminal, erlange Root-Rechte und wechsle in das Verzeichnis, in das du die Dateien abgespeichert hast (in diesem Beispiel <em>~/Downloads</em>).:</p>
  217. <pre class="hljs"><code>su -
  218. cd <span class="hljs-regexp">/home/</span>linuxuser/Downloads</code></pre><p>Markiere daraufhin das SlackBuild als ausführbar und starte den Paketerstellungsprozess:</p>
  219. <pre class="hljs"><code>chmod +x google-chrome.SlackBuild
  220. <span class="hljs-string">./google-chrome.SlackBuild</span></code></pre><p>Das fertige Paket findest du im Ordner /tmp. Der genaue Dateipfad wird am Ende des Prozesses ausgegeben.</p>
  221. <p>Installieren kannst du es mithilfe von <strong>upgradepkg</strong>:</p>
  222. <p><code>upgradepkg --install-new /tmp/google-chrome-*.txz</code></p>
  223. <p>Beachte bitte, dass diese Pakete nicht über die Update-Mechanismen von <em>slackpkg</em> oder <em>sbopkg</em> aktualisiert werden. Sollte ein möglicherweise sicherheitsrelevantes Update des Chrome-Browsers veröffentlicht werden, musst du das Paket mithilfe des SlackBuild-Skriptes manuell aktualisieren. Ausserdem ist es sinnvoll den Paketnamen <em>google-chrome-stable</em> in die Datei <em>/etc/slackpkg/blacklist</em> einzutragen.</p>
  224. <h4 id="virtualbox"><a class="header-link" href="#virtualbox"></a>VirtualBox</h4>
  225. <p>Bei VirtualBox handelt es sich um eine Virtualisierungssoftware die es dir ermöglicht ein weiteres Betriebssystem in einer virtuellen Maschine (VM) auf deinem Computer zu installieren. Dies ist zum Beispiel dann sinnvoll, wenn du auf einige Windows-Applikationen nicht verzichten kannst. Sofern du in Besitz eines gültigen Lizenzschlüssels bist, kannst du Windows in einer VM installieren und dort die benötigten Programme nutzen.</p>
  226. <div style="page-break-after: always;"></div>
  227. <p>Für VirtualBox gibt es zwar ein SlackBuild auf SlackBuilds.org, dies ist allerdings nicht für seine Stabilität bekannt. Daher empfiehlt sich in diesem Fall die Installation mithilfe des Installationscripts des Herstellers. Du kannst die jeweils aktuelle Version auf folgender Webseite herunterladen:</p>
  228. <p><a href="https://www.virtualbox.org/wiki/Linux_Downloads">https://www.virtualbox.org/wiki/Linux_Downloads</a></p>
  229. <p>Klicke mit der rechten Maustaste auf den Punkt <strong>All Distributions</strong>. Wähle im Menü <strong>Ziel speichern unter...</strong> und es öffnet sich der Download-Dialog.</p>
  230. <p>Starte Thunar und wechsle in dein Downloadverzeichnis. Klicke mit der rechten Maustaste in einen freien Bereich und wähle <strong>Terminal hier öffnen</strong>. Um das Installationsscript starten zu können, musst du es zunächst mit <code>chmod</code> ausführbar machen:</p>
  231. <p><code>chmod +x VirtualBox-*.run</code></p>
  232. <p>Daraufhin kannst du es mit Root-Rechten starten:</p>
  233. <pre class="hljs"><code>su -
  234. <span class="hljs-regexp">/home/</span>linuxuser<span class="hljs-regexp">/Downloads/</span>VirtualBox-*.run</code></pre><p>Wobei du auch den tatsächlichen Dateinamen ohne <em>Wildcards</em> angeben kannst. Nutze hierfür die Tab-Autocompletion, wie du es gelernt hast. Den Pfad zu deinem Downloads-Ordner musst du entsprechend anpassen.</p>
  235. <p>Du findest das Programm nach der Installation im Anwendungsmenü unter der Kategorie <strong>System</strong>.</p>
  236. <p><strong>Hinweis</strong>: VirtualBox bringt kein eigenes Update-Tool zur Aktualisierung des Programms mit, es gibt aber standardmässig eine Benachrichtigung aus, wenn eine neue Version verfügbar ist. Auch hier müsstest du auf der Downloadseite die neue Version herunterladen und wie oben beschrieben vorgehen. Deine bisherigen Einstellungen und VMs bleiben bei einer Aktualisierung bestehen.</p>
  237. <h4 id="typora"><a class="header-link" href="#typora"></a>Typora</h4>
  238. <p>Bei Typora handelt es sich um einen proprietären Markdown Editor. Er bietet sich aufgrund seiner mächtigen Exportfähigkeiten als Ergänzung zu gedit zum Bearbeiten von Markdown-Dateien an. Die Entwickler bieten ein vorcompiliertes Binary Paket an, welches du unter folgender URL herunterladen kannst:</p>
  239. <p><a href="https://download.typora.io/linux/Typora-linux-x64.tar.gz">https://download.typora.io/linux/Typora-linux-x64.tar.gz</a></p>
  240. <p>Speichere das Paket im Download-Ordner ab und entpacke es im Thunar mit einem Rechtsklick auf das Archiv und der Wahl der Option <strong>Hier entpacken</strong>.</p>
  241. <p>Starte als normaler Benutzer ein Xfce-Terminal und erstelle in deinem Homeverzeichnis einen neuen Ordner, beispielsweise mit dem Namen <em>bin</em></p>
  242. <p><code>mkdir ~/bin</code></p>
  243. <p>Verschiebe den entpackten Ordner in das <em>bin</em> Verzeichnis:</p>
  244. <p><code>mv ~/Downloads/bin/Typora-linux-x64 ~/bin/</code></p>
  245. <div style="page-break-after: always;"></div>
  246. <h5 id="desktop-file"><a class="header-link" href="#desktop-file"></a>.desktop-File</h5>
  247. <p>Um Typora über das Anwendungsmenü starten zu können, musst du ein sogenanntes <em>.desktop</em>-File erstellen. Dabei handelt es sich um eine Beschreibungsdatei die unter anderem das auszuführende Kommando, den Namen des Programms, das Anwendungssymbol, die Kategorien in denen das Programm angezeigt werden soll und die unterstützen Dateitypen enthält. Systemweite Anwendungsdateien findest du unter dem Pfad <em>/usr/share/applications/</em>. Für benutzerdefinierte Dateien kannst du den Speicherort <em>~/.local/share/applications/</em> nutzen. Falls das Verzeichnis noch nicht existiert, kannst du es mit folgendem Befehl anlegen:</p>
  248. <p><code>mkdir -p ~/.local/share/applications</code></p>
  249. <p>Der Parameter <strong>-p</strong> sorgt dafür, dass alle Unterverzeichnisse im anzulegenden Pfad ebenfalls erstellt werden. Sollte das Verzeichnis bereits existieren, führt das Kommando <strong>mkdir</strong> keine Änderungen durch.</p>
  250. <p>Du kannst ein entsprechendes <em>.desktop</em>-File für typora erstellen:</p>
  251. <p><code>vi ~/.local/share/applications/Typora.desktop</code></p>
  252. <p>Als Inhalt kannst du folgendes angeben:</p>
  253. <pre class="hljs"><code><span class="hljs-section">[Desktop Entry]</span>
  254. <span class="hljs-attr">Version</span>=<span class="hljs-number">1.0</span>
  255. <span class="hljs-attr">Type</span>=Application
  256. <span class="hljs-attr">Name</span>=Typora
  257. <span class="hljs-attr">Icon</span>=Typora.png
  258. <span class="hljs-attr">Exec</span>=sh -c <span class="hljs-string">&quot;$HOME/bin/Typora-linux-x64/Typora %f&quot;</span>
  259. <span class="hljs-attr">Comment</span>=Minimal markdown md editor
  260. <span class="hljs-attr">Categories</span>=<span class="hljs-literal">Off</span>ice<span class="hljs-comment">;TextEditor</span>
  261. <span class="hljs-attr">Terminal</span>=<span class="hljs-literal">false</span>
  262. <span class="hljs-attr">MimeType</span>=text/markdown</code></pre><p>Es folgt eine kurze Erklärung der wichtigsten Parameter:</p>
  263. <ul class="list">
  264. <li><code>Name</code> der Name der im Anwendungsmenü erscheint.</li>
  265. <li><code>Icon</code> das zu verwendende Symbol</li>
  266. <li><code>Exec</code> der auszuführende Befehl</li>
  267. <li><code>Comment</code> ein Kommentar welches zum Beispiel beim Darüberfahren im Anwendungsmenü angezeigt wird</li>
  268. <li><code>Categories</code> die Kategorien, in denen das Programm aufgeführt werden soll</li>
  269. <li><code>Terminal</code> falls die Anwendung in einem Terminal ausgeführt werden sollte, müsste dieser Wert auf <strong>true</strong> gesetzt werden</li>
  270. <li><code>MimeType</code> die Dateitypen die mit diesem Programm geöffnet werden sollen</li>
  271. </ul>
  272. <div style="page-break-after: always;"></div>
  273. <h5 id="programmsymbol"><a class="header-link" href="#programmsymbol"></a>Programmsymbol</h5>
  274. <p>Das Programmarchiv enthält bereits eine Symboldatei (Icon), die noch an die richtige Stelle kopieren. Benutzerspezifische Icons können im Ordner <em>~/.icons</em> abgespeichert werden. Systemweite Symboldateien findest du unter dem Pfad <em>/usr/share/icons</em> sowie <em>/usr/share/pixmaps</em>.</p>
  275. <p>Erstelle mit deinem normalen Benutzerkonto den Ordner <em>~/.icons</em>, falls dieser noch nicht vorhanden ist, und kopiere das enthaltene Symbol dort hinein. Als Dateinamen solltest du den verwenden, der im <em>.desktop</em>-File angegeben worden ist, in diesem Falle <em>Typora.png</em>:</p>
  276. <pre class="hljs"><code>mkdir ~/.icons
  277. cp ~<span class="hljs-regexp">/bin/</span>Typora-linux-x64<span class="hljs-regexp">/resources/</span>assets<span class="hljs-regexp">/icon/i</span>con_512x512.png ~<span class="hljs-regexp">/.icons/</span>Typora.png</code></pre><h5 id="dateizuordnung"><a class="header-link" href="#dateizuordnung"></a>Dateizuordnung</h5>
  278. <p>Letztendlich werden die <em>MimeTypes</em> aller <em>.desktop</em>-Files in einer Datei namens <em>mimeinfo.cache</em> abgespeichert. Wie auch bei dem <em>.desktop</em>-File gibt es eine benutzerspezifische <em>mimeinfo-cache</em>-Datei im Pfad <em>~/.local/share/applications/</em> sowie eine Systemweite Datei unter <em>/usr/share/applications</em>. Da wir die Änderungen im Benutzerkontext durchgeführt haben, müssen wir auch diese <em>mimeinfo.cache</em> Datei aktualisieren. Dazu kannst du folgenden Befehl ausführen:</p>
  279. <p><code>update-desktop-database ~/.local/share/applications/</code></p>
  280. <p>Schaue dir den Inhalt der Datei mit dem <code>cat</code> Befehl an:</p>
  281. <p><code>cat ~/.local/share/applications/mimeinfo.cache</code></p>
  282. <p class="img-container"><img src="./slackware_mime_cache.png" alt=""></p>
  283. <p>Du siehst, dass eine neue Dateizuordnung für den Typ <code>text/markdown</code> erstellt worden ist.</p>
  284. <p>Nach erfolgreicher Einrichtung findest du im Anwendungsmenü in der Kategorie <strong>Büro</strong> einen neuen Eintrag für das Programm <strong>Typora</strong>. Das entsprechende Anwendungssymbol wird nach einem Neustart auch angezeigt.</p>
  285. <h6 id="dateizuordnungen-korrigieren"><a class="header-link" href="#dateizuordnungen-korrigieren"></a>Dateizuordnungen korrigieren</h6>
  286. <p>Es kann immer wieder vorkommen, dass ein Dateityp nicht mit der Anwendung geöffnet wird, die du dafür gerne verwenden würdest. Gehen wir einmal von folgendem Fall aus: du lädst mit dem Browser Firefox eine Datei herunter und klickst im Download-Manager auf das Ordnersymbol <strong>Ziel-Ordner öffnen</strong>. Doch statt dem Dateimanager <strong>Thunar</strong> öffnet sich der Audioplayer <strong>Audacious</strong>. </p>
  287. <p>Um den Typ einer Datei (den MIME-Type) zu ermitteln, kannst du den Befehl <code>xdg-mime</code> nutzen. Da wir herausfinden möchten, wie der MIME-Type zum Öffnen eines Ordners lautet, kannst du als filetype dein Homeverzeichnis <em>~</em> angeben.</p>
  288. <p><code>xdg-mime query filetype ~</code></p>
  289. <p><strong>Hinweis</strong>: Um den Dateityp für eine reguläre Datei anzeigen zu lassen, kannst du den Pfad zur Datei als Parameter hinter <code>filetype</code> angeben.</p>
  290. <p>Das Ergebnis ist <code>inode/directory</code>. Nun möchten wir herausfinden welches Standardprogramm für diesen MIME-Type hinterlegt ist.</p>
  291. <p><code>xdg-mime query default inode/directory</code></p>
  292. <div style="page-break-after: always;"></div>
  293. <p>In unserem Beispiel gehen wir davon aus, dass <code>audacious.desktop</code> hinterlegt ist.</p>
  294. <p>Um zu erreichen, dass Thunar als Standardanwendung für diesen MIME-Type verwendet werden soll, kannst du folgenden Befehl eingeben:</p>
  295. <p><code>xdg-mime default Thunar-folder-handler.desktop inode/directory</code></p>
  296. <p>Alle Systemprogramme die als MIME-Type <em>inode/directory</em> unterstützen, kannst du mit folgendem Befehl ermitteln:</p>
  297. <p><code>grep inode/directory /usr/share/applications/*</code></p>
  298. <p>Für Thunar wird die Thunar-folder-handler <em>.desktop</em>-Datei verwendet. Prüfe, ob die Änderungen erfolgreich appliziert worden sind:</p>
  299. <p><code>xdg-mime query default inode/directory</code></p>
  300. <p>Nun sollte bei einem Klick auf das Ordnersymbol im Downloadmanager vom Firefox Browser wie gewünscht der Dateimanager Thunar geöffnet werden.</p>
  301. <div style="page-break-after: always;"></div>
  302. <h4 id="appimage"><a class="header-link" href="#appimage"></a>AppImage</h4>
  303. <p>Bei <em>AppImage</em> handelt es sich um ein Applikations-Container-Format. Es bündelt alle zum Start der jeweiligen Applikation benötigten Dateien. Wir schauen uns als Beispielapplikation das Grafikprogramm Gimp an. Slackware enthält zwar bereits <strong>GIMP</strong>, möglicherweise möchtest du aber eine neuere Version des Programmes nutzen.</p>
  304. <p>Das GIMP AppImage findest du über den <em>AppImageHub</em>:</p>
  305. <p><a href="https://appimage.github.io/GIMP/">https://appimage.github.io/GIMP/</a></p>
  306. <p>Wenn du auf <strong>Download</strong> klickst, wirst du auf die GitHub-Seite des Entwicklers weitergeleitet. Klicke dort auf den Punkt <strong>Assets</strong> und es wird dir eine lange Liste mit verfügbaren Versionen ausgegeben:</p>
  307. <p class="img-container"><img src="./slackware_appimage_gimp_assets.png" alt=""></p>
  308. <p>Es empfiehlt sich eine Release-Version zu wählen, da es sich dabei um eine offiziell veröffentlichte Version handelt. Die Versionen welche die Bezeichnung <em>withlugins</em> enthalten, liefern einige erweiterte Plugins für Gimp mit. Suche dir eine entsprechende Version heraus und lade diese herunter. Ein möglicher Versionsname kann wie folgt aufgebaut sein: <code>GIMP_AppImage-release-X.XX.XX-withplugins-x86_64.AppImage</code>, wobei du das <em>X.XX.XX</em> durch die jeweils höchste Versionsnummer ersetzen solltest. Klicke auf die Datei und speichere sie in deinem Download Ordner ab.</p>
  309. <p>Öffne ein Xfce-Terminal und verschiebe das AppImage mithilfe des <code>mv</code> Befehls in den <em>~/bin</em> Ordner und markiere es als ausführbar:</p>
  310. <pre class="hljs"><code>mv ~<span class="hljs-regexp">/Downloads/</span>GIMP*.AppImage ~<span class="hljs-regexp">/bin/</span>
  311. chmod +x ~<span class="hljs-regexp">/bin/</span>GIMP*.AppImage</code></pre><p>Du kannst die Applikation nun im Thunar starten, indem du in den Ordner <em>bin</em> wechselst und die AppImage-Datei anklickst. Beim ersten Start wirst du gefragt, ob sich die Applikation in das System integrieren soll. Beantworte dies mit <strong>Yes</strong> und es wird ein entsprechender Eintrag im Anwendungsmenü erstellt:</p>
  312. <p class="img-container"><img src="./slackware_appimage_gimp_integrate.png" alt=""></p>
  313. <p>Da Slackware bereits eine Version von GIMP mitliefert, findest du nach der Installation des AppImages zwei gleichnamige Einträge im Startmenü:</p>
  314. <p class="img-container"><img src="./slackware_appimage_gimp_duplicate_menu.png" alt=""></p>
  315. <p>Als du die Frage nach der Desktopintegration mit <strong>Yes</strong> beantwortet hast, hat das AppImage ein <em>.desktop</em>-File angelegt. Dieses können wir bearbeiten und den Namen, der im Anwendungsmenü angezeigt wird, eindeutiger gestalten.</p>
  316. <div style="page-break-after: always;"></div>
  317. <p>Ergänze dazu die Zeile die mit <em>Name[de]=</em> beginnt um <em>(AppImage)</em>. <em>Name[de]=</em> kennzeichnet die deutschsprachige Übersetzung des Anwendungsnamens:</p>
  318. <p><code>vi .local/share/applications/appimagekit-gimp.desktop</code></p>
  319. <p class="img-container"><img src="./slackware_appimage_gimp_desktopfile.png" alt=""></p>
  320. <p>Schaue im Anwendungsmenü nach, ob der Name korrekt geändert worden ist.</p>
  321. <p>Leider bieten nicht alle AppImage-Anwendungen diese Form der Desktopintegration. In solchen Fällen kann die Nutzung des Hilfsprogrammes <em>appimaged</em> weiterhelfen. Zur Installation kannst du folgende Befehle in einem Terminal ausführen:</p>
  322. <pre class="hljs"><code>wget <span class="hljs-string">&quot;https://github.com/AppImage/appimaged/releases/download/continuous/appimaged-x86_64.AppImage&quot;</span>
  323. chmod +<span class="hljs-keyword">x</span> appimaged-<span class="hljs-keyword">x</span><span class="hljs-number">86</span>_<span class="hljs-number">64</span>.AppImage
  324. ./appimaged-<span class="hljs-keyword">x</span><span class="hljs-number">86</span>_<span class="hljs-number">64</span>.AppImage --install</code></pre><p>Die Anwendung überwacht nach einer erneuten Anmeldung an der grafischen Oberfläche unter anderem das <code>~/bin</code> Verzeichnis nach neuen AppImage-Anwendungen und erstellt automatisch die entsprechenden <em>.desktop</em>-Files.</p>
  325. <h4 id="flatpak"><a class="header-link" href="#flatpak"></a>Flatpak</h4>
  326. <p>Ein weiteres prominentes Applikations-Image Format ist <em>Flatpak</em>. Zur Nutzung benötigst du das entsprechende Paket, welches du mittels sbopkg installieren kannst. Nutze zur Installation das Queuefile, damit alle Abhängigkeiten erfüllt werden:</p>
  327. <pre class="hljs"><code>su -
  328. sbopkg -k -<span class="hljs-selector-tag">i</span> flatpak</code></pre><p>Damit die benötigten Umgebungsvariablen korrekt gesetzt werden, solltest du dich abmelden und erneut anmelden.</p>
  329. <p>Flatpak Pakete werden über Repositories bereitgestellt. Eines der bekanntesten ist Flathub: <nobr><a href="https://flathub.org/">https://flathub.org/</a></nobr></p>
  330. <div style="page-break-after: always;"></div>
  331. <p>Du kannst das Repository mit folgendem Befehl im Benutzerkontext (nicht mit Root-Rechten) aktivieren:</p>
  332. <p><code>flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo</code></p>
  333. <p>Um eine Applikation zu installieren, kannst du diese auf der Flathub-Webseite auswählen, wie zum Beispiel den schlanken Ebook-Betrachter <em>Foliate</em>:</p>
  334. <p><a href="https://flathub.org/apps/details/com.github.johnfactotum.Foliate">https://flathub.org/apps/details/com.github.johnfactotum.Foliate</a></p>
  335. <p>Im unteren Bereich der Seite wird der zur Installation benötigte Befehl aufgeführt, in diesem Falle:</p>
  336. <p><code>flatpak install flathub com.github.johnfactotum.Foliate</code></p>
  337. <p>Je nach Anwendung werden einige Abhängigkeiten benötigt. Flatpak listet diese auf und du wirst aufgefordert die Installation mit <strong>Y</strong> zu bestätigen.</p>
  338. <p class="img-container"><img src="./flatpak_foliate.png" alt=""></p>
  339. <p>Mithilfe des <em>uninstall</em> Parameters können Pakete wieder entfernt werden.</p>
  340. <p><code>flatpak uninstall com.github.johnfactotum.Foliate</code></p>
  341. <p>Eine Aktualisierung erfolgt über den <em>update</em> Parameter:</p>
  342. <p><code>flatpak update</code></p>
  343. <p>Im Gegensatz zu AppImage werden für Flatpaks automatisch <em>.desktop</em> Files erstellt. Du solltest die neu installierte Anwendungen daher bereits im Startmenü finden können.</p>
  344. <p>Damit hast du die Paketverwaltung kennengelernt und unterschiedliche Paketformate installieren können. Auf SlackBuilds.org, Flathub und im AppImageHub findest du viele weitere Programme.</p>
  345. <h3 id="multilib-optional"><a class="header-link" href="#multilib-optional"></a>Multilib (Optional)</h3>
  346. <p>Bei deiner Linux-Installation handelt es sich um ein reines 64Bit-Setup. Das heisst, alle Anwendungen wurden auf diesen Prozessortyp hin compiliert. Einige Programme wie Wine oder Steam benötigen jedoch 32Bit Libraries. Bei Wine handelt es sich um eine Anwendung, mit der es möglich ist, einige Windows-Anwendungen unter Linux zu betreiben. Steam ist eine kommerzielle Spieleplattform. Du solltest Multilib wirklich nur installieren, wenn es unbedingt notwendig ist.</p>
  347. <div style="page-break-after: always;"></div>
  348. <p>Der Slackware-Entwickler alienBOB stellt sogenannte Multilib-Pakete zur Verfügung, um diese Lücke zu füllen. Ein einfacher Weg zur Installation ist das rsync-Script von Dave Woodfall. Du kannst es mit Root-Rechten mithilfe des <code>wget</code> Befehls herunterladen und mit <code>chmod</code> als ausführbar markieren:</p>
  349. <pre class="hljs"><code>su -
  350. wget https:<span class="hljs-regexp">//</span>slackware.uk<span class="hljs-regexp">/~dive/</span>scripts<span class="hljs-regexp">/alien-multilib-rsync.sh -O /u</span>sr<span class="hljs-regexp">/local/</span>sbin/alien-multilib-rsync.sh
  351. chmod +x <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/sbin/</span>alien-multilib-rsync.sh</code></pre><p>Mit dem <code>-O</code> Parameter von wget kannst du den Zielspeicherort angeben. Andernfalls würde die Datei in dem Ordner abgespeichert, in dem du dich gerade befindest.</p>
  352. <p>Das Script kann nur mir Root-Rechten ausgeführt werden. Es synchronisiert mithilfe des <code>rsync</code> Befehls alle Pakete aus dem Multilib-Repository lokal auf deine Festplatte in den Pfad <em>/root/multilib</em> und installiert diese daraufhin mithilfe von <code>upgradepkg</code>.</p>
  353. <p>Da wir auch <code>slackpkg</code> verwenden und dieses bei einem Upgrade einige der Multilib-Pakete wieder ersetzen würde, musst du mit Root-Rechten folgende Einträge am Ende der Konfigurationsdatei <em>/etc/slackpkg/blacklist</em> einfügen:</p>
  354. <pre class="hljs"><code>su -
  355. vi <span class="hljs-regexp">/etc/</span>slackpkg/blacklist</code></pre><pre class="hljs"><code><span class="hljs-meta"># This will blacklist compat32 and alienBOB&#x27;s packages</span>
  356. [<span class="hljs-meta">0-9</span>]+alien
  357. [<span class="hljs-meta">0-9</span>]+compat32</code></pre><p class="img-container"><img src="./slackware_slackpkg_blacklist_sbo_multilib.png" alt=""></p>
  358. <p>Speichere die Änderungen ab und verlasse den Editor.</p>
  359. <p>Anschliessend muss das Skript noch auf die Version 15.0 umgestellt werden. Hierfür kann der folgende Befehl verwendet werden:</p>
  360. <p><code>sed -i &#39;s/14.2/15.0/&#39; /usr/local/sbin/alien-multilib-rsync.sh</code></p>
  361. <p>Du kannst die Synchronisation und Installation durch einen Aufruf des Scriptes mit Root-Rechten auslösen:</p>
  362. <p><strong>Reminder</strong>: Falls du bereits ein Root-Terminal geöffnet hast, musst du nicht erneut <code>su -</code> eingeben.</p>
  363. <pre class="hljs"><code>su -
  364. <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/sbin/</span>alien-multilib-rsync.sh</code></pre><p>Dieses Script solltest du ebenfalls regelmässig ausführen, zum Beispiel jeweils, nachdem du dein System mithilfe von <code>slackpkg update &amp;&amp; slackpkg upgrade-all</code> aktualisiert hast.</p>
  365. <p>Damit hast du die nötigen Vorbereitungen zur Nutzung von Multilib-Anwendungen getroffen.</p>
  366. <div style="page-break-after: always;"></div>
  367. <h4 id="wine"><a class="header-link" href="#wine"></a>Wine</h4>
  368. <p>Um Windows Anwendungen unter Linux zu betreiben, hast du entweder die Möglichkeit Windows in einer virtuellen Maschine zu betreiben, oder du kannst Wine verwenden.</p>
  369. <p>Einige Anwendungen werden von Wine gut unterstützt. In der Online-Applikationsdatenbank des Wine-Projektes findest du eine Übersicht:</p>
  370. <p><a href="https://appdb.winehq.org/">https://appdb.winehq.org/</a></p>
  371. <p>Es empfiehlt sich das Rating und die Details der jeweiligen Programmversion anzuschauen. Bei Programmen die nicht zumindest ein <strong>Gold</strong> oder <strong>Platinum</strong> Rating erhalten haben, lohnt sich in den allermeisten Fällen nichtmals ein Versuch.</p>
  372. <p>Wine ist als SlackBuild verfügbar. Die Installation erfolgt mithilfe von <code>sbopkg</code>:</p>
  373. <pre class="hljs"><code>su -
  374. sbopkg -k -<span class="hljs-selector-tag">i</span> wine</code></pre><p>Um Wine als Standardanwendung für <em>.exe</em>-Dateien zu definieren, kannst du mit deinem regulären Benutzerkonto in im Xfce-Terminal den folgenden <code>xdg-mime</code> Befehl ausführen:</p>
  375. <p><code>xdg-mime default wine.desktop application/x-ms-dos-executable</code></p>
  376. <h5 id="notepad"><a class="header-link" href="#notepad"></a>Notepad++</h5>
  377. <p>Als Beispielanwendung werden wir den unter Windows beliebten Texteditor <strong>Notepad++</strong> installieren. Die von WineHQ mit <strong>Platinum</strong> bewertete Programmversion ist v4.</p>
  378. <p><a href="https://appdb.winehq.org/objectManager.php?sClass=application&amp;iId=2983">https://appdb.winehq.org/objectManager.php?sClass=application&amp;iId=2983</a></p>
  379. <p>Lade die entsprechende Installationsdatei von einer Archiv-Webseite herunter, in diesem Beispiel <em>v4.4.4</em>:</p>
  380. <p><a href="https://archive.org/details/npp.4.4.Installer">https://archive.org/details/npp.4.4.Installer</a></p>
  381. <p>Öffne den Downloads-Ordner mit Thunar und mit einem Rechtsklick auf die <em>.exe</em>-Datei wählst du <strong>Öffnen mit</strong> aus und klickst <strong>Wine</strong> an. </p>
  382. <p>Beim ersten Start einer Windows-Applikation wird die Basiskonfiguration von Wine erstellt. Diese befindet sich unterhalb des Pfades <em>~/.wine</em>. </p>
  383. <p>Anschliessend wird Wine dich nach dem <em>wine-mono-Paket</em> fragen. Dieses kannst du mit einem Klick auf <strong>Installieren</strong> hinzufügen.</p>
  384. <p class="img-container"><img src="./wine_mono_install.png" alt=""></p>
  385. <p>Daraufhin startet das Installationsprogramm von <strong>Notepad++</strong>. </p>
  386. <div style="page-break-after: always;"></div>
  387. <p>Du kannst das Programm durch Eingabe des folgenden Befehls im Xfce-Terminal starten:</p>
  388. <p><code>wine &quot;C:\Program Files\Notepad++\notepad++.exe&quot;</code></p>
  389. <p>Wine liefert ein grafisches Hilfsprogramm mit dem Namen <code>winecfg</code> mit. Du kannst es beispielsweise aus dem Xfce-Terminal oder mithilfe des Programmstarters, den du über <code>Alt+F2</code> erreichen kannst, aufrufen. Gebe dort <code>winecfg</code> gefolgt von Enter ein. Für unser Beispielprogramm <strong>Notepad++</strong> sind dort keine Einstellungen vorzunehmen. </p>
  390. <p>Es empfiehlt sich die Windows-Standardschriften innerhalb von Wine zu installieren. Eine einfache Möglichkeit bietet das Programm <code>winetricks</code>. Dabei handelt es sich um eine Sammlung von Hilfsprogrammen zur Installation von Anwendungen und Windows-Bibliotheken sowie zur Korrektur von Fehlern in Wine.</p>
  391. <p>Die Anwendung ist als SlackBuild verfügbar. Die Installation erfolgt als Root mithilfe des <code>sbopkg</code> Befehls:</p>
  392. <pre class="hljs"><code>su -
  393. sbopkg -k -<span class="hljs-selector-tag">i</span> winetricks</code></pre><p>Nach der erfolgreichen Installation von winetricks, kannst du mit deinem regulären Benutzerkonto in einem Terminal folgenden Befehl ausführen, um die Windows-Standardschriftarten zu installieren:</p>
  394. <p><code>winetricks corefonts</code></p>
  395. <p>Beim nächsten Programmstart von Notepad++ sollten die Schriften korrekt angezeigt werden.</p>
  396. <p>Die Installation der Schriftwarten wird im Pfad ~/.wine durchgeführt und hat keinen weiteren Einfluss auf dein Linux-System. </p>
  397. <p><strong>Hinweis</strong>: Mithilfe des Befehls <code>winetricks list-download</code> kannst du dir alle verfügbaren winetricks-Downloads anzeigen lassen.</p>
  398. <p class="img-container"><img src="./slackware_wine_notepad_plus_plus.png" alt=""></p>
  399. <p>Beachte bitte, dass eine unter Linux mit Wine gestartete Windows-Applikation in den seltensten Fällen genauso gut funktioniert wie unter Windows selbst. Wenn ein Programm auf WineHQ ein <strong>Platinum</strong> Rating erhalten hat, bedeutet das nur, dass die Person aus der Community die es getestet hat, das Programm für gut befunden hat.</p>
  400. <div style="page-break-after: always;"></div>
  401. <p>Im besten Falle suchst du dir eine unter Linux verfügbare Alternative. Für Notepad++ wäre beispielsweise das Linux-Equivalent <strong>Notepadqq</strong>. Für letzteres ist ein entsprechendes SlackBuild verfügbar:</p>
  402. <p class="img-container"><img src="./slackware_notepadqq.png" alt=""></p>
  403. <p>Damit sind wir am Ende des Kursteiles angekommen. Du hast verschiedene Paketformate kennengelernt und kannst Zusatzprogramme installieren. Anhand von SlackBuilds ist es dir gelungen aus Quelltexten installierbare Pakete zu erzeugen. Sicher wirst du noch viele weitere spannende Programme entdecken, lieben lernen oder wieder verwerfen. Wir wünschen dir viel Spass beim nächsten Kursteil, bei dem es um die erweiterte Systemkonfiguration geht.</p>
  404. <p>Konfiguration &lt; PDF &gt;</br>
  405. ↪ <a href="https://linuxkurs.ch/kurs/Konfiguration.pdf">https://linuxkurs.ch/kurs/Konfiguration.pdf</a></p>
  406. <p>Konfiguration &lt; HTML &gt;</br>
  407. ↪ <a href="https://linuxkurs.ch/kurs/Konfiguration.html">https://linuxkurs.ch/kurs/Konfiguration.html</a></p>
  408. <hr>
  409. <p>© CC-BY-SA - Lioh Moeller</p>
  410. </article>
  411. </body>
  412. </html>