Programme.html 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  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 so genannte 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 mit Hilfe vom <em>slackpkg</em> genauer an. Im Folgenden stellen wir dir ausserdem weitere Möglichkeiten zur Installation von Zusatzsoftware vor.</p>
  34. <h3 id="slackpkg"><a class="header-link" href="#slackpkg"></a>slackpkg</h3>
  35. <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. Mit Hilfe der Suchfunktion von slackpkg kannst Du herausfinden, ob es ein Paket mit dem Namen <em>kate</em> gibt:</p>
  36. <pre class="hljs"><code><span class="hljs-keyword">su</span> -
  37. slackpkg <span class="hljs-keyword">search</span> kate</code></pre><p class="img-container"><img src="./slackware_slackpkg_search_kate.png" alt=""></p>
  38. <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>
  39. <p>Die Installation des Paketes erfolgt wie gewohnt mit dem <em>install</em> Parameter:</p>
  40. <p><code>slackpkg install kate</code></p>
  41. <div style="page-break-after: always;"></div>
  42. <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>libkactivities</em>.</p>
  46. <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>
  47. <p><code>slackpkg file-search libkactivities.so.6</code></p>
  48. <p class="img-container"><img src="./slackware_slackpkg_search_kactivities.png" alt=""></p>
  49. <p>Du siehst, dass die Bibliothek <em>libkactivities.so.6</em> vom Paket <em>kactivities</em> bereitgestellt wird. Installieren kannst Du die Abhängigkeit mit folgendem Befehl:</p>
  50. <p><code>slackpkg install kactivities</code></p>
  51. <p>Wechsle in das Terminalfenster des Benutzers und versuche den Editor durch die Eingabe von <code>kate</code> erneut zu starten.</p>
  52. <p>Wenn alles funktioniert hat, begrüsst dich <em>kate</em> mit folgender Ansicht:</p>
  53. <p class="img-container"><img src="./slackware_xfce_kate.png" alt=""></p>
  54. <p>In diesem Beispiel war das Auflösen der Abhängigkeiten sehr einfach, es gibt durchaus komplexere Fälle die einiges an Arbeit benötigen. Ein hilfreiches Programm um Bibliotheksabhängigkeiten herauszufinden ist <strong>ldd</strong>.</p>
  55. <p>Du kannst ldd mit dem Pfad zu dem Programm aufrufen, für das die Abhängigkeiten dargestellt werden sollen. </p>
  56. <p>Wo ein Programm im Dateisystem abgelegt ist, findest Du mit dem Befehl <code>which</code> heraus:</p>
  57. <p><code>which kate</code></p>
  58. <p class="img-container"><img src="./slackware_which_kate.png" alt=""></p>
  59. <p>Das Programm kate befindet sich im Pfad <code>/usr/bin/</code></p>
  60. <p>Um zu sehen wie ldd fehlende Abhängigkeiten darstellt, kannst Du vorab das Paket <em>kactivities</em> im Root-Terminal wieder de-installieren:</p>
  61. <p><code>slackpkg remove kactivities</code></p>
  62. <p>Führe nun ldd aus um die Abhängigkeiten darzustellen. Als Parameter kannst Du den vollständigen Programmpfad angeben:</p>
  63. <p><code>ldd /usr/bin/kate</code></p>
  64. <p>Es wird eine lange Liste von Bibliotheken ausgegeben. Du musst möglicherweise nach oben scrollen, oder ldd mit <code>| more</code> aufrufen:</p>
  65. <p><code>ldd /usr/bin/kate | more</code></p>
  66. <p>Du siehst, dass bei <em>libkactivities.so.6</em> <strong>not found</strong> ausgegeben wird:</p>
  67. <p class="img-container"><img src="./slackware_ldd_kate.png" alt=""></p>
  68. <p>Noch übersichtlicher wird die Ausgabe wenn du sie mit dem <strong>grep</strong> Befehl einschränkst:</p>
  69. <p><code>ldd /usr/bin/kate | grep &#39;not found&#39;</code></p>
  70. <p class="img-container"><img src="./slackware_ldd_grep_kate.png" alt=""></p>
  71. <p>Da du bereits weisst, dass kate nur die <em>libkactivities</em> Bibliothek fehlte und diese im Paket <em>kactivities</em> enthalten ist, kannst Du es wieder mit slackpkg installieren:</p>
  72. <p><code>slackpkg install kactivities</code></p>
  73. <p>Wenn Du nun erneut ldd mit dem grep ausführst, sollte keine fehlende Abhängigkeit mehr ausgegeben werden:</p>
  74. <p><code>ldd /usr/bin/kate | grep &#39;not found&#39;</code></p>
  75. <p>Prüfe im Benutzer-Terminal ob kate sich wieder starten lässt.</p>
  76. <div style="page-break-after: always;"></div>
  77. <h3 id="slackbuilds"><a class="header-link" href="#slackbuilds"></a>SlackBuilds</h3>
  78. <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>
  79. <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>
  80. <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>
  81. <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>
  82. <p>Nachdem Du die Suche ausgelöst hast, wird eine Liste von Treffern angezeigt. Klicke auf den Namen des Programms <em>gedit</em>.</p>
  83. <p class="img-container"><img src="./sbo_gedit_1.png" alt=""></p>
  84. <div style="page-break-after: always;"></div>
  85. <p>Wichtig ist der Punkt <em>This requires</em>. In diesem Beispiel benötigt die Applikation <em>gedit</em> <em>pygtksourceview</em>. Klicke auf den Namen <em>pygtksourceview</em> und Du siehst dessen Paketdetails:</p>
  86. <p class="img-container"><img src="./sbo_gedit_2.png" alt=""></p>
  87. <p>Auch <em>pygtksourceview</em> hat eine Abhängigkeit und zwar zu <em>gtksourceview</em>.</p>
  88. <p>Klicke auf den Namen und Du siehst die Details von <em>gtksourceview</em>:</p>
  89. <p class="img-container"><img src="./sbo_gedit_3.png" alt=""></p>
  90. <p>Dieses Paket hat keine weiteren Abhängigkeiten. </p>
  91. <p>Resultierend daraus müssen die Pakete in folgender Reihenfolge erstellt werden:</p>
  92. <p><strong>gtksourceview -&gt; pygtksourceview -&gt; gedit</strong></p>
  93. <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 resultierende Pakete könntest Du dann mit <em>upgradepkg --install-new</em> installieren. </p>
  94. <div style="page-break-after: always;"></div>
  95. <h3 id="sbopkg"><a class="header-link" href="#sbopkg"></a>sbopkg</h3>
  96. <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>
  97. <p>Klicke auf den Reiter Downloads und lade das Slackware Paket herunter. Du kannst es im Download-Ordner deines Benutzers abspeichern:</p>
  98. <p class="img-container"><img src="./sbo_sbopkg_download.png" alt=""></p>
  99. <p>Öffne ein Xfce-Terminalfenster und erlange mit Hilfe von <code>su -</code> Root-Rechte. Mit dem Befehl <code>upgradepkg</code> unter Angabe des Pfades unter dem Du das Paket gespeichert hast, kannst Du es installieren. In diesem Beispiel wäre es:</p>
  100. <pre class="hljs"><code>su -
  101. upgradepkg --install-<span class="hljs-keyword">new</span> <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>
  102. <div style="page-break-after: always;"></div>
  103. <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>
  104. <p class="img-container"><img src="./sbo_sbopkg_install.png" alt=""></p>
  105. <p>Nach der Installation des Paketes, kannst Du sbopkg durch Eingabe des Befehls <code>sbopkg</code> das erste Mal starten. Das Programm fragt einmalig nach einer Bestätigung zur Erstellung der benötigten Verzeichnisse. Bestätige dies durch die Eingabe von <strong>C</strong> gefolgt von Enter.</p>
  106. <p class="img-container"><img src="./sbo_sbopkg_firstrun.png" alt=""></p>
  107. <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.</p>
  108. <h4 id="sbopkg-tui"><a class="header-link" href="#sbopkg-tui"></a>sbopkg TUI</h4>
  109. <p>Öffnest Du das Programm <strong>sbopkg</strong> ohne die Angabe von Parametern, begrüsst dich das Terminal User Interface.</p>
  110. <p><code>sbopkg</code></p>
  111. <p><strong>Hinweis</strong>: sbopkg lässt sich nur mit Root-Rechten nutzen. Im Folgenden gehen wir davon aus, dass Du die angegebenen Kommandos in einem Root-Terminal ausführst.</p>
  112. <div style="page-break-after: always;"></div>
  113. <p>Du kannst mit den Pfeiltasten sowie mit Tab die Elemente auswählen. Enter bestätigt jeweils die Auswahl. Für fast jeden Menüpunkt ist ausserdem ein Tastenkürzel hinterlegt (Kurzwahl-Buchstaben). Der entsprechende Buchstabe wird in roter Farbe dargestellt.</p>
  114. <p>Zunächst muss sbopkg die verfügbaren Paketrezepte beziehen. Dazu wähle bitte den Punkt <strong>Sync</strong>.</p>
  115. <p>Die Synchronisation startet automatisch. Warte bis diese abgeschlossen ist. Dies wird durch die Ausgabe von <em>SYNC COMPLETE</em> signalisiert.</p>
  116. <p>Daraufhin kannst du mit <strong>VERLASSEN</strong> zurück in das Hauptmenü kehren.</p>
  117. <p>Über die Suche kannst Du einzelne Pakete anhand deren Namen suchen:</p>
  118. <p class="img-container"><img src="./sbo_sbopkg_search.png" alt=""></p>
  119. <div style="page-break-after: always;"></div>
  120. <p>Suche nach gtksourceview (dem ersten Paket welches wir erstellen möchten):</p>
  121. <p class="img-container"><img src="./sbo_sbopkg_search_gtksourceview.png" alt=""></p>
  122. <p>Es werden mehrere mögliche Treffer gefunden:</p>
  123. <p class="img-container"><img src="./sbo_sbopkg_gtksourceview.png" alt=""></p>
  124. <p>Wir benötigen das erste Paket. Wähle den Punkt <strong>Add to Queue</strong>. Damit fügst Du das Paket der Queue (Warteschlange) hinzu. Mit ihr kannst Du später alle drei benötigten Pakete direkt hintereinander erstellen. </p>
  125. <div style="page-break-after: always;"></div>
  126. <p>Das Hinzufügen zur Queue bestätigt das Programm mit folgender Ausgabe:</p>
  127. <p class="img-container"><img src="./sbo_sbopkg_queue_gtksourceview_added.png" alt=""></p>
  128. <p>Daraufhin kommst Du zurück zur Übersicht der Suchergebnisse. Wähle hier <strong>B</strong> für <strong>Back</strong>:</p>
  129. <p class="img-container"><img src="./sbo_sbopkg_gtksourceview_back.png" alt=""></p>
  130. <div style="page-break-after: always;"></div>
  131. <p>Du gelangst zurück zur Suche. Suche nun nach dem Paket <strong>pygtksourceview</strong>:</p>
  132. <p class="img-container"><img src="./sbo_sbopkg_search_pygtksourceview.png" alt=""></p>
  133. <p>Füge es ebenfalls zur Queue hinzu:</p>
  134. <p class="img-container"><img src="./sbo_sbopkg_pygtksourceview.png" alt=""></p>
  135. <p>Gehe analog dazu für das Paket <strong>gedit</strong> vor.</p>
  136. <div style="page-break-after: always;"></div>
  137. <p>Nachdem Du gedit ebenfalls zur Queue hinzugefügt hast, wähle mit <strong>M</strong> den Punkt <strong>Main Menu</strong>:</p>
  138. <p class="img-container"><img src="./sbo_sbopkg_back_to_main.png" alt=""></p>
  139. <p>Wähle <em>Q</em> im Hauptmenü und es öffnet sich die Queueverwaltung.</p>
  140. <p class="img-container"><img src="./sbo_sbopkg_queue_1.png" alt=""></p>
  141. <div style="page-break-after: always;"></div>
  142. <p>Über den Punkt <strong>Process</strong> kannst Du die von dir erstellte Queue anschauen und abarbeiten lassen:</p>
  143. <p class="img-container"><img src="./sbo_sbopkg_queue_2.png" alt=""></p>
  144. <p>Wenn Du alles richtig gemacht hast, sollten jetzt die drei Pakete in der Queueliste in der richtigen Reihenfolge aufgeführt werden. Die Liste wird von oben nach unten abgearbeitet. Wenn die Reihenfolge korrekt ist, wähle den Punkt <strong>OK</strong>. Andernfalls kannst Du über <strong>Back</strong> zurück in das <strong>Queue Menü</strong> gelangen und dort den Punkt <strong>Sort</strong> wählen um sie um zu sortieren.</p>
  145. <p>Wir gehen davon aus, dass alles geklappt hat. Du kannst mit <strong>OK</strong> fortfahren.</p>
  146. <p class="img-container"><img src="./sbo_sbopkg_queue_3.png" alt=""></p>
  147. <div style="page-break-after: always;"></div>
  148. <p>Da wir die Pakete nicht nur erstellen möchten, sondern auch direkt installieren, wähle den Punkt <strong>Install</strong>:</p>
  149. <p class="img-container"><img src="./sbo_sbopkg_process_queue.png" alt=""></p>
  150. <p>Es wird noch ein Pre-Check Log ausgegeben. Mit <strong>Start</strong> beginnt die Paketerstellung. Diese kann einige Zeit dauern. </p>
  151. <p class="img-container"><img src="./sbo_sbopkg_precheck_log.png" alt=""></p>
  152. <p>Für jedes zu verarbeitende Paket werden die Quelltextarchive heruntergeladen, entpackt, in Maschinencode übersetzt, das Paket erstellt und installiert. Da die Abhängigkeiten aufeinander aufbauen ist dieses Vorgehen wichtig. Es bedeutet, dass gtksourceview bereits auf dem System installiert sein muss, bevor pygtksourceview compiliert werden kann. pygtksourceview muss installiert sein, bevor gedit compiliert werden kann.</p>
  153. <div style="page-break-after: always;"></div>
  154. <p>Sobald die Queue erfolgreich abgearbeitet worden ist, wird dies durch eine Ausgabe von <strong>Queue process complete</strong> signalisiert. Auch Fehler würden hier ausgegeben, wenn zum Beispiel ein Quellcodearchive nicht heruntergeladen werden konnte, oder ein Build fehlschlug weil benötigte Abhängigkeiten nicht vorhanden waren:</p>
  155. <p class="img-container"><img src="./sbo_sbopkg_queue_complete.png" alt=""></p>
  156. <p>Abschliessend wirst Du gefragt, ob die Queue gelöscht oder aufbewahrt werden soll. Wenn die Installation erfolgreich war, kannst Du diese löschen. Sollte es nicht geklappt haben, weil Du zum Beispiel vergessen hast eine Abhängigkeit hinzuzufügen, könntest Du hier <em>Keep</em> wählen und wie zuvor beschrieben weitere Pakete zur Queue hinzufügen, diese umsortieren und den Build-Prozess erneut starten.</p>
  157. <p>Es wird eine kurze Bestätigung ausgegeben, dass die Queue geleert worden ist und du gelangst zurück ins Queue Menü.</p>
  158. <div style="page-break-after: always;"></div>
  159. <p>Wähle dort <strong>Back</strong> um wieder in das Hauptmenü zu gelangen.</p>
  160. <p class="img-container"><img src="./sbo_sbopkg_queuemenu_back.png" alt=""></p>
  161. <p>Verlasse sbopkg durch Auswahl von <strong>E</strong> für <strong>Exit</strong>:</p>
  162. <p class="img-container"><img src="./sbo_sbopkg_exit.png" alt=""></p>
  163. <div style="page-break-after: always;"></div>
  164. <p>Du findest dein erstes selbstcompiliertes und paketiertes Programm mit dem Namen <em>gedit</em> im Anwendungsmenü unter der Kategorie <strong>Zubehör</strong>:</p>
  165. <p class="img-container"><img src="./slackware_xfce_gedit.png" alt=""></p>
  166. <div style="page-break-after: always;"></div>
  167. <h4 id="sbopkg-cli"><a class="header-link" href="#sbopkg-cli"></a>sbopkg CLI</h4>
  168. <p>Der gesamte Vorgang der Paketerstellung war zwar bereits durch die TUI relativ komfortabel, es geht allerdings noch einfacher. slackpkg 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. Dazu empfiehlt es sich zunächst für alle verfügbaren SlackBuilds Queuefiles erstellen zu lassen. Dies geschieht als Root mit folgendem Befehl:</p>
  169. <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>
  170. <pre class="hljs"><code>su -
  171. sqg <span class="hljs-_">-a</span></code></pre><p>Der Vorgang kann bis zu 1.5 Stunden dauern, da alle verfügbaren SlackBuilds analysiert werden.</p>
  172. <p class="img-container"><img src="./sbo_sqg_a.png" alt=""></p>
  173. <p>Nachdem dies abgeschlossen ist, können wir zum Beispiel die Installation des Programms <strong>Filezilla</strong> starten. Dabei handelt es sich um ein FTP-Dateiübertragungsprogramm.</p>
  174. <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>filezilla.sqf</code> erstellt worden sein. Du kannst es dir mit dem <code>cat</code> Befehl anzeigen lassen:</p>
  175. <p><code>cat /var/lib/sbopkg/queues/filezilla.sqf</code></p>
  176. <p class="img-container"><img src="./sbo_cat_queuefile.png" alt=""></p>
  177. <p>Die Verarbeitung des Queuefiles kannst Du mit der Hilfe des folgenden Befehls starten:</p>
  178. <p><code>sbopkg -k -i filezilla</code></p>
  179. <p>Die Option <code>-k</code> legt fest, dass Pakete in der Queueliste die bereits erstellt worden sind, nicht erneut erstellt werden.</p>
  180. <p>sbopkg erkennt, dass es ein Queuefile sowie ein gleichnamiges Paket gibt. Wir möchten das Queuefile verwenden. Wähle daher <strong>Q</strong> und drücke Enter:</p>
  181. <p class="img-container"><img src="./sbo_process_queuefile.png" alt=""></p>
  182. <div style="page-break-after: always;"></div>
  183. <p>Auch in der CLI Version wird das PRE-CHECK LOG ausgegeben. Du kannst die Installation durch Eingabe von <strong>P</strong> gefolgt von Enter starten.</p>
  184. <p class="img-container"><img src="./sbo_precheck_queuefile.png" alt=""></p>
  185. <p>Nach erfolgreicher Installation findest Du den FTP-Client <em>filezilla</em> im Anwendungsmenü unterhalb der Kategorie <strong>Internet</strong>.</p>
  186. <div style="page-break-after: always;"></div>
  187. <h4 id="sbo-blacklist"><a class="header-link" href="#sbo-blacklist"></a>SBo Blacklist</h4>
  188. <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>
  189. <pre class="hljs"><code>su -
  190. vi <span class="hljs-regexp">/etc/</span>slackpkg<span class="hljs-regexp">/blacklist</span></code></pre><pre class="hljs"><code><span class="hljs-comment"># This one will blacklist all SBo packages:</span>
  191. [<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>
  192. <p>Speichere die Änderungen ab und verlasse den Editor.</p>
  193. <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 mit Hilfe 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>
  194. <p><code>ls -al /var/log/packages/*_SBo</code></p>
  195. <div style="page-break-after: always;"></div>
  196. <h5 id="parameter"><a class="header-link" href="#parameter"></a>Parameter</h5>
  197. <p>Anhand eines weiteren Beispiels schauen wir uns eine mächtige Option an die viele SlackBuils 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>
  198. <p>Suche auf SlackBuilds.org nach dem Paket <em>transmission</em>, einem Programm zur Übertragung von Torrent Dateien:</p>
  199. <p class="img-container"><img src="./sbo_transmission_parameters.png" alt=""></p>
  200. <p>Da Xfce auf GTK basiert, macht es wenig Sinn auch die Qt Variante zu compilieren. Dies lässt sich über den Parameter <code>QT=no</code> steuern.</p>
  201. <p>Um den Build mit dem Parameter zu starten, kannst Du sbopkg wie folgt aufrufen:</p>
  202. <p><code>sbopkg -i transmission:QT=&quot;no&quot;</code></p>
  203. <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>
  204. <p class="img-container"><img src="./sbo_transmission_qt_no.png" alt=""></p>
  205. <p>In diesem Falle wird nur die GTK Version des Programmes erstellt. Die TUI von sbopkg bietet über den Punkt <strong>Options</strong> ebenfalls die Möglichkeit Build-Parameter anzugeben.</p>
  206. <div style="page-break-after: always;"></div>
  207. <h5 id="gedit"><a class="header-link" href="#gedit"></a>gedit</h5>
  208. <p>Bevor es weitergeht, schauen wir uns noch einmal das zuvor installierte Programm <strong>gedit</strong> genauer an.</p>
  209. <h6 id="rechtschreibprüfung"><a class="header-link" href="#rechtschreibprüfung"></a>Rechtschreibprüfung</h6>
  210. <p>Möchtest Du die deutsche Rechtschreibprüfung verwenden, kannst Du mit Root-Rechten das Zusatzpaket <strong>aspell-de</strong> aus den offiziellen Slackware Paketquellen installieren:</p>
  211. <p><code>slackpkg install aspell-de</code></p>
  212. <h6 id="hilfefunktion"><a class="header-link" href="#hilfefunktion"></a>Hilfefunktion</h6>
  213. <p>Um die integrierte Hilfe nutzen zu können, benötigst Du den GNOME-Betrachter für Hilfsdateien namens <strong>yelp</strong>. Die Installation erfolgt durch die Eingabe des folgenden <strong>sbopkg</strong> Kommandos als Benutzer Root:</p>
  214. <p><code>sbopkg -k -i yelp</code></p>
  215. <p>Wähle bei der Frage ob das Queuefile oder das Package verwendet werden soll <strong>Q</strong>, um alle Abhängigkeiten mit zu erstellen und zu installieren:</p>
  216. <p class="img-container"><img src="./sbo_sbopkg_yelp.png" alt=""></p>
  217. <h6 id="markdown"><a class="header-link" href="#markdown"></a>Markdown</h6>
  218. <p>Falls Du Texte in Markdown schreiben möchtest, ist die gedit Erweiterung von Jean-Philippe Fleury emfehlenswert. Bei Markdown handelt es sich um eine einfache Auszeichnungssprache, deren Syntax es dir erlaubt, schnell und unkompliziert Texte zu verfassen. Diese lassen sich dann mit wenig Aufwand in underschiedlichste Formate wie PDF, HTML, LibreOffice oder Ähnliches umwandeln.</p>
  219. <p>Du findest das gedit-Plugin auf der GitHub Seite des Autors:</p>
  220. <p><a href="https://github.com/jpfleury/gedit-markdown/tree/v1">https://github.com/jpfleury/gedit-markdown/tree/v1</a></p>
  221. <p>Es ermöglicht die Syntaxhervorhebung von Markdown, zur einfacheren Bearbeitung.</p>
  222. <p>Zur Installation kannst Du auf der GitHub Seite <strong>Clone or download</strong> klicken und dann <strong>Download ZIP</strong> wählen. Standardmässig speichert Firefox alle heruntergeladenen Dateien im <em>Downloads</em> Ordner deines Benutzers.</p>
  223. <p>Um das <em>.zip</em>-Archiv zu entpacken, bietet sich die Installation eines grafischen Archivierungsprogramms an. Eine beliebte Anwendung dieser Art heisst <em>file-roller</em>. Damit Du Archive direkt über den Rechtsklick-Dialog im Dateimanager Thunar entpacken kannst, empfiehlt sich ausserdem die Installation des Paketes <em>thunar-archive-plugin</em>. Für das Paket <em>file-roller</em> gibt es kein Queuefile, da es keine fest definierten Abhängigkeiten hat. <em>thunar-archive-plugin</em> liesse sich mittels Queuefile installieren, bei der Frage ob das (Q)ueuefile oder das (P)ackage verwendet werden soll, wähle <strong>P</strong> für Package, da andernfalls ein weiteres grafisches Archivierungsprogramm mit dem Namen <em>xarchiver</em> als Abhängigkeit installieren würde. </p>
  224. <div style="page-break-after: always;"></div>
  225. <p>Führe als Root folgendes sbopkg Kommando aus, um die Installation zu starten:</p>
  226. <p><code>sbopkg -i file-roller -i thunar-archive-plugin</code></p>
  227. <p class="img-container"><img src="./sbo_sbopkg_thunar_archive_plugin.png" alt=""></p>
  228. <p>Öffne im Thunar den <em>Downloads</em> Ordner und klicke mit der rechten Maustaste auf das heruntergeladene Archiv und wähle den Punkt <strong>Hier entpacken</strong>:</p>
  229. <p class="img-container"><img src="./slackware_xfce_thunar_extract_here.png" alt=""></p>
  230. <div style="page-break-after: always;"></div>
  231. <p>Klicke auf den neu entstandenen Ordner und wähle mit der rechten Maustaste den Punkt <strong>Terminal hier öffnen</strong>.</p>
  232. <p class="img-container"><img src="./slackware_xfce_thunar_open_terminal.png" alt=""></p>
  233. <p>Es öffnet sich ein neues Benutzer-Terminalfenster. Die Installation des Plugins wird im Benutzerkontext ausgeführt, nicht als Root.</p>
  234. <p>Starte das Installationsscript durch Eingabe von:</p>
  235. <p><code>./gedit-markdown.sh install</code></p>
  236. <p>Der <code>./</code> vor dem Scriptnamen gibt an, dass sich das Script im aktuellen Ordner befindet und ausgeführt werden soll. Dies funktioniert nur, wenn die executable Rechte auf der Datei vergeben worden sind (was bei der heruntergeladenen Datei bereits der Fall ist). Andernfalls könntest Du das Script wie gelernt mit <code>chmod +x ./Scriptname</code> ausführbar machen.</p>
  237. <p>Die Installationsroutine ist nur in französischer Sprache verfügbar. Bei der Frage ob <em>Markdown Standard</em> oder <em>Markdown Extra</em> verwendet werden soll, wähle <strong>1</strong> für Markdown Standard. Bei der zweiten Frage, bei der es um die Darstellung der Vorschau geht, kannst Du den Standardwert <strong>2</strong> übernehmen.</p>
  238. <p>Wenn Du das nächste Mal eine Markdown Datei (Endung .md) in gedit bearbeitest, wird die Syntax entsprechend hervorgehoben.</p>
  239. <div style="page-break-after: always;"></div>
  240. <h5 id="empfohlene-pakete"><a class="header-link" href="#empfohlene-pakete"></a>Empfohlene Pakete</h5>
  241. <p>Im Folgenden werden einige Applikationen vorgestellt, die sich für einen Xfce-Desktop gut eignen:</p>
  242. <ul class="list">
  243. <li><code>unrar</code> ein Entpackprogramm für rar Dateien </li>
  244. <li><code>evince</code> ein PDF-Betrachter</li>
  245. <li><code>gpicview</code> ein schlanker Bildbetrachter mit Diashow und Vollbildfunktion</li>
  246. <li><code>mcomix</code> mehr als nur ein ComicReader. Er stellt auch epub und andere Formate dar</li>
  247. <li><code>vokoscreen</code>ein Programm zur Aufnahme von Bildschirmvideos</li>
  248. <li><code>telegram</code> ein multi-Plattform Chatprogramm</li>
  249. <li><code>mate-calc</code> ein Taschenrechner</li>
  250. <li><code>sun</code> ein Benachrichtigungsapplet welches dich über verfügbare Updates informiert.</li>
  251. </ul>
  252. <p>Im Laufe der Zeit wirst Du noch viele weitere Anwendungen entdecken.</p>
  253. <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ück kommst über das fertige Programm freuen: </p>
  254. <ul class="list">
  255. <li><code>vlc</code> der ultimative Mediaplayer. Spielt alle gängigen Audio- und Video-Formate und DVDs</li>
  256. <li><code>LibreOffice</code> das bekannte Büroprogramm. <strong>Hinweis</strong>: Achte bei der Angabe auf die Gross- und Kleinschreibung</li>
  257. </ul>
  258. <p>Alternativ kannst Du, wie später im Abschnitt <em>Slackpkg+</em> beschrieben, vorcompilierte Pakete installieren, </p>
  259. <h6 id="sbopkg-interaktion"><a class="header-link" href="#sbopkg-interaktion"></a>sbopkg Interaktion</h6>
  260. <p>Es kann vorkommen, dass einige Pakete zur Erstellung aus den SlackBuilds eine manuelle Interaktion erfordern.</p>
  261. <p>In solch einem Fall kannst Du einfach ein zweites Terminalfenster (oder Tab) öffnen und dort die angegeben Kommandos ausführen:</p>
  262. <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>
  263. <div style="page-break-after: always;"></div>
  264. <h5 id="updates"><a class="header-link" href="#updates"></a>Updates</h5>
  265. <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. Mit Hilfe des <code>-c</code> Parameters kannst Du prüfen ob es Aktualisierungen für Pakete anstehen:</p>
  266. <p><code>sbopkg -c</code></p>
  267. <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>
  268. <p class="img-container"><img src="./sbo_sbopkg_check_install_update.png" alt=""></p>
  269. <p>Diese Funktionalität lässt sich auch bequem über die sbopkg TUI Oberfläche durch Auswahl des Punktes <strong>Updates</strong> anwählen.</p>
  270. <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>
  271. <div style="page-break-after: always;"></div>
  272. <h4 id="sbopkg-gui"><a class="header-link" href="#sbopkg-gui"></a>sbopkg GUI</h4>
  273. <p>Nebst dem CLI und TUI Frontend gibt es auch eine GUI-Applikation für sbopkg. Diese wird von Gernot Walzl entwickelt. Du findest sie auf der Homepage des Autors: <nobr><a href="http://gernot-walzl.at">http://gernot-walzl.at</a></nobr></p>
  274. <p class="img-container"><img src="./sbo_sbopkg_gui.png" alt=""></p>
  275. <p>Nachdem Du in der Seitennavigationsleiste <em>sbopkg gui</em> gewählt hast, findest Du ganz unten auf der Seite den Download zum Paket. Wähle die jeweils aktuellste Version. Erkennbar ist diese am Datum. Nachdem Du sie heruntergeladen hast, kannst Du das Paket wie gewohnt mit <code>upgradepkg --install-new /Pfad/zum/Paket.tgz</code> installieren.</p>
  276. <div style="page-break-after: always;"></div>
  277. <p>Du findest das Programm im Anwendungsmenü unterhalb der Kategorie <strong>System</strong>:</p>
  278. <p class="img-container"><img src="./sbo_sbopkg_gui_frontend.png" alt=""></p>
  279. <p>Es bietet sich an unter den <strong>Settings</strong> das zu verwendende Terminal von <em>xterm</em> auf <em>xfce4-terminal</em> umzustellen:</p>
  280. <p class="img-container"><img src="./sbo_sbopkg_gui_terminal.png" alt=""></p>
  281. <p>Die Bedienung gestaltet sich sehr einfach. Es gibt eine Suchfunktion über die Du Pakete finden kannst. Im linken Bereich werden die Kategorien angezeigt, rechts die dazugehörigen Pakete.</p>
  282. <div style="page-break-after: always;"></div>
  283. <p>Gebe zum Beispiel im Suchfeld den Namen des Spiels <strong>supertux</strong> ein. Im rechten Bereich werden die Treffer angezeigt. Wähle <strong>supertux</strong> aus. Im unteren Teil des rechten Bereichs siehst Du die Beschreibung des SlackBuilds. Es werden auch die benötigten Abhängigkeiten ausgegeben. Wähle den Punkt <strong>Install</strong> um das Spiel zu installieren:</p>
  284. <p class="img-container"><img src="./sbo_sbopkg_gui_install_supertux.png" alt=""></p>
  285. <p><strong>Hinweis</strong>: Es können nicht mehrere Instanzen von <strong>sbopkg</strong> parallel laufen. Stelle daher sicher, dass keine weitere Installation läuft (z.B. mit der sbopkg CLI) bevor Du auf Install klickst.</p>
  286. <h3 id="3rd-party-repositories"><a class="header-link" href="#3rd-party-repositories"></a>3rd Party Repositories</h3>
  287. <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>
  288. <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>
  289. <div style="page-break-after: always;"></div>
  290. <h4 id="slackpkg+"><a class="header-link" href="#slackpkg+"></a>Slackpkg+</h4>
  291. <p>Grundsätzlich ist es empfehlenswert die alien-Repositories über die <em>slackpkg</em>-Erweiterung mit dem Namen <em>Slackpkg+</em> einzubinden.</p>
  292. <p>Lade zunächst von der Webseite des Projektes das Paket herunter und speichere es im Downloadordner deines Benutzers: <nobr><a href="http://slakfinder.org/slackpkg+.html">http://slakfinder.org/slackpkg+.html</a></nobr></p>
  293. <p>Öffne ein Xfce-Terminalfenster und erlange mit Hilfe von <code>su -</code> Root-Rechte. Mit dem Befehl <code>upgradepkg</code> kannst Du das Paket installieren. In diesem Beispiel wäre es:</p>
  294. <pre class="hljs"><code>su -
  295. 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>
  296. <p><code>vi /etc/slackpkg/slackpkgplus.conf</code></p>
  297. <p>Entferne zunächst das Rautezeichen vor den folgenden Mirror-Definitionen:</p>
  298. <pre class="hljs"><code>MIRRORPLUS[<span class="hljs-string">'alienbob'</span>]=<span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/bear.alienbase.nl/mirrors</span><span class="hljs-regexp">/people/alien</span><span class="hljs-regexp">/sbrepos/</span><span class="hljs-number">14.2</span>/x86_64/
  299. MIRRORPLUS[<span class="hljs-string">'restricted'</span>]=<span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/bear.alienbase.nl/mirrors</span><span class="hljs-regexp">/people/alien</span><span class="hljs-regexp">/restricted_sbrepos/</span><span class="hljs-number">14.2</span>/x86_64/</code></pre><p>Das restricted Repository enthält eine Version von vlc die auch patent-behaftete Codecs abspielen kann.</p>
  300. <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>
  301. <p><code>REPOPLUS=( slackpkgplus alienbob restricted )</code></p>
  302. <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>
  303. <p><code>PKGS_PRIORITY=( restricted:vlc )</code></p>
  304. <p class="img-container"><img src="./slackware_slackpkgplus_alien_restricted.png" alt=""></p>
  305. <p>Nach der Anpassung der Konfigurationsdatei müssen die GPG-Entwicklerschlüssel und die Repository-Metadaten aktualisiert werden:</p>
  306. <pre class="hljs"><code>slackpkg <span class="hljs-keyword">update</span> gpg
  307. 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>
  308. <p>Die Installation von Programmen erfolgt wie bisher mit dem <code>slackpkg</code> Befehl.</p>
  309. <p>Für vlc inklusive der benötigten Abhängigkeiten lautet dieser:</p>
  310. <p><code>slackpkg install qt5-5 vlc libxkbcommon</code></p>
  311. <p>Stelle bitte zuvor sicher, dass Du keine dieser Pakete aus SlackBuilds installiert hast. Dazu kannst Du folgenden Befehl eingeben:</p>
  312. <p><code>ls -al /var/log/packages/{qt5*,vlc*,libxkbcommon*}</code></p>
  313. <p>Sollte dies der Fall sein, entferne diese zuvor mittels <strong>removepkg</strong> unter Angabe des Paketnamens. </p>
  314. <p>Für die Installation von LibreOffice inklusive der deutschen Sprachpakete und Wörterbücher lautet der Befehl:</p>
  315. <p><code>slackpkg install libreoffice-6 libreoffice-l10n-de libreoffice-dict-de</code></p>
  316. <p>Falls Du Pakete aus dem alienBOB Repository installierst, solltest Du bei der Installation von Queues mit sbopkg besonders Aufmerksam sein. Würdest Du beispielsweise einen Queue mit sbopkg installieren der Qt5 als Abhängigkeit enthält, würde das Paket aus dem alienBOB Repository dadurch überschrieben. Eine Möglichkeit besteht darin, das Queuefile vor dem Build zu bearbeiten und die doppelt vorkommenden Dependencies daraus zu entfernen. Es folgt ein Beispiel für die Qt5 Variante des Torrent-Clients <em>qBittorrent</em>:</p>
  317. <pre class="hljs"><code>sqg -p qbittorrent-qt5
  318. vi /var/<span class="hljs-class"><span class="hljs-keyword">lib</span>/<span class="hljs-title">sbopkg</span>/<span class="hljs-title">queues</span>/<span class="hljs-title">qbittorrent</span>-<span class="hljs-title">qt5</span>.<span class="hljs-title">sqf</span></span></code></pre><p>Entferne aus der Queueliste alle Pakete die Du bereits aus dem alienBOB-Repository installiert hast. In diesem Beispiel wären dies:</p>
  319. <pre class="hljs"><code><span class="hljs-attribute">libxkbcommon</span>
  320. qt5</code></pre><p>Danach kannst Du die Queue mit sbopkg abarbeiten lassen:</p>
  321. <p><code>sbopkg -k -i qbittorrent-qt5</code></p>
  322. <p><strong>Hinweis</strong>: möglicherweise fragst Du dich warum der <code>-k</code> Parameter von sbopkg nicht erkennt, dass ein gleichnamiges Paket bereits installiert ist. Der Grund ist, dass sbopkg nur auf Pakete mit der Endung _SBo prüft (oder ponce bei Slackware -current).</p>
  323. <div style="page-break-after: always;"></div>
  324. <h3 id="drittanbieter-applikationen"><a class="header-link" href="#drittanbieter-applikationen"></a>Drittanbieter Applikationen</h3>
  325. <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>
  326. <h4 id="google-chrome"><a class="header-link" href="#google-chrome"></a>Google Chrome</h4>
  327. <p>Ein prominentes Beispiel ist das SlackBuild Script für den Google Chrome-Browser aus dem extra/ Repository der Slackware Distribution:</p>
  328. <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>
  329. <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>
  330. <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 rechte 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>
  331. <pre class="hljs"><code><span class="hljs-keyword">su</span> -
  332. <span class="hljs-keyword">cd</span> ~/Downloads</code></pre><p>Markiere daraufhin das SlackBuild als ausführbar und starte den Paketerstellungsprozess:</p>
  333. <pre class="hljs"><code>chmod +x google-chrome<span class="hljs-selector-class">.SlackBuild</span>
  334. ./google-chrome.SlackBuild</code></pre><p>Das fertige Paket findest Du im Ordner /tmp. Der genaue Dateipfad wird am Ende des Prozesses ausgegeben.</p>
  335. <p>Installieren kannst Du es mit Hilfe von <strong>upgradepkg</strong>:</p>
  336. <p><code>upgradepkg --install-new /tmp/google-chrome-*.txz</code></p>
  337. <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 mit Hilfe 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>
  338. <p>Um zu verhindern, dass Du bei jedem Start des Browsers das Kennwort des Passwortspeichers eingeben musst, kannst Du wie folgt vorgehen:</p>
  339. <pre class="hljs"><code>cp <span class="hljs-regexp">/usr/</span>share<span class="hljs-regexp">/applications/</span>google-chrome.desktop <span class="hljs-regexp">~/.local/</span>share/applications
  340. vi <span class="hljs-regexp">~/.local/</span>share<span class="hljs-regexp">/applications/</span>google-chrome.desktop
  341. <span class="hljs-string">Esc:</span>%s<span class="hljs-regexp">/google-chrome-stable/</span>google-chrome-stable --password-store=basic
  342. :wq!</code></pre><p>Dadurch ersetzt Du alle Vorkommnisse der Zeichenkette <em>google-chrome-stable</em> durch <em>google-chrome-stable --password-store=basic</em> und stellst so den Typ des Passwortspeichers auf <em>basic</em> um, wodurch Chrome den integrierten Passwortspeicher nutzt.</p>
  343. <h4 id="virtualbox"><a class="header-link" href="#virtualbox"></a>VirtualBox</h4>
  344. <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>
  345. <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 mit Hilfe des Installationscripts des Herstellers. Du kannst die jeweils aktuelle Version auf folgender Webseite herunterladen:</p>
  346. <p><a href="https://www.virtualbox.org/wiki/Linux_Downloads">https://www.virtualbox.org/wiki/Linux_Downloads</a></p>
  347. <p>Wähle den Punkt <strong>All Distributions</strong> und es startet der Download.</p>
  348. <p>Öffne 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>
  349. <p><code>chmod +x VirtualBox-*.run</code></p>
  350. <p>Daraufhin kannst Du es mit Root-Rechten starten:</p>
  351. <pre class="hljs"><code>su -
  352. /<span class="hljs-built_in">home</span>/linuxuser/Downloads/VirtualBox-*.<span class="hljs-built_in">run</span></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>
  353. <p>Du findest das Programm nach der Installation im Anwendungsmenü unter der Kategorie <strong>System</strong>.</p>
  354. <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>
  355. <h4 id="typora"><a class="header-link" href="#typora"></a>Typora</h4>
  356. <p>Bei Typora handelt es sich um einen semi-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>
  357. <p><a href="https://typora.io/linux/Typora-linux-x64.tar.gz">https://typora.io/linux/Typora-linux-x64.tar.gz</a></p>
  358. <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>
  359. <p>Starte als normaler Benutzer ein Xfce-Terminal und erstelle in deinem Homeverzeichnis einen neuen Ordner, beispielsweise mit dem Namen <em>bin</em></p>
  360. <p><code>mkdir ~/bin</code></p>
  361. <p>Verschiebe den entpackten Ordner in das <em>bin</em> Verzeichnis:</p>
  362. <p><code>mv ~/Downloads/Typora-linux-x64 ~/bin/</code></p>
  363. <h5 id=".desktop-file"><a class="header-link" href="#.desktop-file"></a>.desktop-File</h5>
  364. <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>
  365. <p><code>mkdir -p ~/.local/share/applications</code></p>
  366. <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>
  367. <p>Du kannst ein entsprechendes <em>.desktop</em>-File für typora erstellen:</p>
  368. <p><code>vi ~/.local/share/applications/Typora.desktop</code></p>
  369. <p>Als Inhalt kannst du folgendes angeben:</p>
  370. <pre class="hljs"><code><span class="hljs-section">[Desktop Entry]</span>
  371. <span class="hljs-attr">Version</span>=<span class="hljs-number">1.0</span>
  372. <span class="hljs-attr">Type</span>=Application
  373. <span class="hljs-attr">Name</span>=Typora
  374. <span class="hljs-attr">Icon</span>=Typora.png
  375. <span class="hljs-attr">Exec</span>=sh -c <span class="hljs-string">"$HOME/bin/Typora-linux-x64/Typora %f"</span>
  376. <span class="hljs-attr">Comment</span>=Minimal markdown md editor
  377. <span class="hljs-attr">Categories</span>=<span class="hljs-literal">Off</span>ice;TextEditor
  378. <span class="hljs-attr">Terminal</span>=<span class="hljs-literal">false</span>
  379. <span class="hljs-attr">MimeType</span>=text/markdown</code></pre><p>Es folgt eine kurze Erklärung der wichtigsten Parameter:</p>
  380. <ul class="list">
  381. <li><code>Name</code> der Name der im Anwendungsmenü erscheint.</li>
  382. <li><code>Icon</code> das zu verwendende Symbol</li>
  383. <li><code>Exec</code> der auszuführende Befehl</li>
  384. <li><code>Comment</code> ein Kommentar welches zum Beispiel beim darüberfahren im Anwendungsmenü angezeigt wird</li>
  385. <li><code>Categories</code> die Kategorien in denen das Programm aufgeführt werden soll</li>
  386. <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>
  387. <li><code>MimeType</code> die Dateitypen die mit diesem Programm geöffnet werden sollen</li>
  388. </ul>
  389. <div style="page-break-after: always;"></div>
  390. <h5 id="programmsymbol"><a class="header-link" href="#programmsymbol"></a>Programmsymbol</h5>
  391. <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>
  392. <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>
  393. <pre class="hljs"><code>mkdir ~<span class="hljs-regexp">/.icons
  394. cp ~/bin</span><span class="hljs-regexp">/Typora-linux-x64/resources</span><span class="hljs-regexp">/app/asserts</span><span class="hljs-regexp">/icon/icon</span>_512x512.png ~<span class="hljs-regexp">/.icons/</span>Typora.png</code></pre><h5 id="dateizuordnung"><a class="header-link" href="#dateizuordnung"></a>Dateizuordnung</h5>
  395. <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>
  396. <p><code>update-desktop-database ~/.local/share/applications/</code></p>
  397. <p>Schaue dir den Inhalt der Datei mit dem <code>cat</code> Befehl an:</p>
  398. <p><code>cat ~/.local/share/applications/mimeinfo.cache</code></p>
  399. <p class="img-container"><img src="./slackware_mime_cache.png" alt=""></p>
  400. <p>Du siehst, dass eine neue Dateizuordnung für den Typ <code>text/markdown</code> erstellt worden ist.</p>
  401. <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> mit einem entsprechenden Anwendungssymbol.</p>
  402. <h6 id="dateizuordnungen-korrigieren"><a class="header-link" href="#dateizuordnungen-korrigieren"></a>Dateizuordnungen korrigieren</h6>
  403. <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>
  404. <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>
  405. <p><code>xdg-mime query filetype ~</code></p>
  406. <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>
  407. <p>Das Ergebnis ist <code>inode/directory</code>. Nun möchten wir herausfinden welches Standardprogramm für diesen MIME-Type hinterlegt ist.</p>
  408. <p><code>xdg-mime query default inode/directory</code></p>
  409. <p>In unserem Beispiel gehen wir davon aus, dass <code>audacious.desktop</code> hinterlegt ist.</p>
  410. <p>Um zu erreichen, dass Thunar als Standardanwendung für diesen MIME-Type verwendet werden soll, kannst Du folgenden Befehl eingeben:</p>
  411. <p><code>xdg-mime default Thunar-folder-handler.desktop inode/directory</code></p>
  412. <p>Alle Systemprogramme die als MIME-Type <em>inode/directory</em> unterstützen, kannst Du mit folgendem Befehl ermitteln:</p>
  413. <p><code>grep inode/directory /usr/share/applications/*</code></p>
  414. <p>Für Thunar wird die Thunar-folder-handler <em>.desktop</em>-Datei verwendet. Prüfe ob die Änderungen erfolgreich appliziert worden sind:</p>
  415. <p><code>xdg-mime query default inode/directory</code></p>
  416. <p>Nun sollte bei einem Klick auf das Ordner-Symbol im Downloadmanager vom Firefox Browser wie gewünscht der Dateimanager Thunar geöffnet werden.</p>
  417. <h4 id="appimage"><a class="header-link" href="#appimage"></a>AppImage</h4>
  418. <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>
  419. <p>Das GIMP AppImage findest Du über den <em>AppImageHub</em>:</p>
  420. <p><a href="https://appimage.github.io/GIMP/">https://appimage.github.io/GIMP/</a></p>
  421. <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>
  422. <p class="img-container"><img src="./slackware_appimage_gimp_assets.png" alt=""></p>
  423. <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>
  424. <div style="page-break-after: always;"></div>
  425. <p>Öffne ein Xfce-Terminal und verschiebe das AppImage mit Hilfe des <code>mv</code> Befehls in den <em>~/bin</em> Ordner und markiere es als ausführbar:</p>
  426. <pre class="hljs"><code>mv ~<span class="hljs-regexp">/Downloads/</span>GIMP*.AppImage ~<span class="hljs-regexp">/bin/</span>
  427. chmod +x ~<span class="hljs-regexp">/Downloads/</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>
  428. <p class="img-container"><img src="./slackware_appimage_gimp_integrate.png" alt=""></p>
  429. <p>Da Slackware bereits eine Version von GIMP mitliefert, findest Du nach der Installation des AppImages zwei gleichnamige Einträge im Startmenü:</p>
  430. <p class="img-container"><img src="./slackware_appimage_gimp_duplicate_menu.png" alt=""></p>
  431. <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>
  432. <div style="page-break-after: always;"></div>
  433. <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>
  434. <p><code>vi .local/share/applications/appimagekit-gimp.desktop</code></p>
  435. <p class="img-container"><img src="./slackware_appimage_gimp_desktopfile.png" alt=""></p>
  436. <p>Schaue im Anwendungsmenü nach, ob der Name korrekt geändert worden ist.</p>
  437. <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>
  438. <pre class="hljs"><code>wget <span class="hljs-string">"https://github.com/AppImage/appimaged/releases/download/continuous/appimaged-x86_64.AppImage"</span>
  439. chmod +x appimaged-x86_64<span class="hljs-selector-class">.AppImage</span>
  440. ./appimaged-x86_64<span class="hljs-selector-class">.AppImage</span> --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>
  441. <h4 id="flatpak"><a class="header-link" href="#flatpak"></a>Flatpak</h4>
  442. <p>Ein weiteres prominentes Appplikations-Image Format ist <em>Flatpak</em>. Zur Nutzung benötigst Du das entsprechendes Paket, welches Du mittels sbopkg installieren kannst. Nutze zur Installation das Queuefile, damit alle Abhängigkeiten erfüllt werden:</p>
  443. <pre class="hljs"><code>su -
  444. 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>
  445. <p>Flatpak Pakete werden über Repositories bereitgestellt. Eines der bekanntesten ist Flathub: <nobr><a href="https://flathub.org/">https://flathub.org/</a></nobr></p>
  446. <p>Du kannst das Repository mit folgendem Befehl im Benutzerkontext (nicht mit Root-Rechten) aktivieren:</p>
  447. <p><code>flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo</code></p>
  448. <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>
  449. <p><a href="https://flathub.org/apps/details/com.github.johnfactotum.Foliate">https://flathub.org/apps/details/com.github.johnfactotum.Foliate</a></p>
  450. <p>Im unteren Bereich der Seite wird der zur Installation benötigte Befehl aufgeführt, in diesem Falle:</p>
  451. <p><code>flatpak install flathub com.github.johnfactotum.Foliate</code></p>
  452. <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>
  453. <p class="img-container"><img src="./flatpak_foliate.png" alt=""></p>
  454. <p>Mit Hilfe des <em>uninstall</em> Parameters können Pakete wieder entfernt werden.</p>
  455. <p><code>flatpak uninstall com.github.johnfactotum.Foliate</code></p>
  456. <p>Eine Aktualisierung erfolgt über den <em>update</em> Parameter:</p>
  457. <p><code>flatpak update</code></p>
  458. <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>
  459. <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>
  460. <h3 id="multilib-(optional)"><a class="header-link" href="#multilib-(optional)"></a>Multilib (Optional)</h3>
  461. <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>
  462. <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 mit Hilfe des <code>wget</code> Befehls herunterladen und mit <code>chmod</code> als ausführbar markieren:</p>
  463. <pre class="hljs"><code>su -
  464. wget <span class="hljs-string">http:</span><span class="hljs-comment">//tty1.uk/scripts/slackware/alien-multilib-rsync.sh -O /usr/local/sbin/alien-multilib-rsync.sh</span>
  465. 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>
  466. <p>Das Script kann nur mir Root-Rechten ausgeführt werden. Es synchronisiert mit Hilfe 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 mit Hilfe von <code>upgradepkg</code>.</p>
  467. <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>
  468. <pre class="hljs"><code>su -
  469. vi <span class="hljs-regexp">/etc/</span>slackpkg<span class="hljs-regexp">/blacklist</span></code></pre><pre class="hljs"><code># This will blacklist compat32 and alienBOB's packages
  470. [<span class="hljs-number">0</span><span class="hljs-number">-9</span>]+alien
  471. [<span class="hljs-number">0</span><span class="hljs-number">-9</span>]+compat32</code></pre><p class="img-container"><img src="./slackware_slackpkg_blacklist_sbo_multilib.png" alt=""></p>
  472. <p>Speichere die Änderungen ab und verlasse den Editor.</p>
  473. <p>Du kannst die Synchronisation und Installation durch einen Aufruf des Scriptes mit Root-Rechten auslösen:</p>
  474. <p><strong>Reminder</strong>: Falls Du bereits ein Root-Terminal geöffnet hast, musst Du nicht erneut <code>su -</code> eingeben.</p>
  475. <pre class="hljs"><code><span class="hljs-keyword">su</span> -
  476. /usr/<span class="hljs-keyword">local</span>/sbin/alien-multilib-rsync.<span class="hljs-keyword">sh</span></code></pre><p>Dieses Script solltest Du ebenfalls regelmässig ausführen, zum Beispiel jeweils nachdem Du dein System mit Hilfe von <code>slackpkg update &amp;&amp; slackpkg upgrade-all</code> aktualisiert hast.</p>
  477. <p>Damit hast Du die nötigen Vorbereitungen zur Nutzung von Multilib-Anwendungen getroffen.</p>
  478. <div style="page-break-after: always;"></div>
  479. <h4 id="wine"><a class="header-link" href="#wine"></a>Wine</h4>
  480. <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>
  481. <p>Einige Anwendungen werden von Wine gut unterstützt. In der Online-Applikationsdatenbank des Wine-Projektes findest Du eine Übersicht:</p>
  482. <p><a href="https://appdb.winehq.org/">https://appdb.winehq.org/</a></p>
  483. <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>
  484. <p>Wine ist als SlackBuild verfügbar. Die Installation erfolgt mit Hilfe von <code>sbopkg</code>:</p>
  485. <pre class="hljs"><code>su -
  486. 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>
  487. <p><code>xdg-mime default wine.desktop application/x-ms-dos-executable</code></p>
  488. <h5 id="notepad++"><a class="header-link" href="#notepad++"></a>Notepad++</h5>
  489. <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>
  490. <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>
  491. <p>Lade die entsprechende Installationsdatei von der Webseite des Projektes herunter, in diesem Beispiel <em>v4.0</em>:</p>
  492. <p><a href="https://notepad-plus-plus.org/download/v4.0.html">https://notepad-plus-plus.org/download/v4.0.html</a></p>
  493. <p>Öffne den Downloads-Ordner mit Thunar und klicke die <em>.exe</em>-Datei an. </p>
  494. <p>Beim ersten Start einer Windows-Applikation wird die Basiskonfiguration von Wine erstellt. Diese befindet sich unterhalb des Pfades <em>~/.wine</em>. </p>
  495. <p>Daraufhin startet das Installationsprogramm von <strong>Notepad++</strong>. </p>
  496. <p>Wähle im letzten Schritt den Punkt <strong>Create Shortcut on Desktop</strong> um ein Anwendungssymbol auf dem Schreibtisch zu erstellen.</p>
  497. <p>Andernfalls kannst Du das Programm durch Eingabe des folgendem Befehls im Xfce-Terminal starten:</p>
  498. <p><code>wine &quot;C:\Program Files\Notepad++\notepad++.exe&quot;</code></p>
  499. <p>Wine liefert ein grafisches Hilfsprogramm mit dem Namen <code>winecfg</code> mit. Du kannst es beispielsweise aus dem Xfce-Terminal oder mit Hilfe 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>
  500. <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>
  501. <p>Die Anwendung ist als SlackBuild verfügbar. Die Installation erfolgt als Root mit Hilfe des <code>sbopkg</code> Befehls:</p>
  502. <pre class="hljs"><code>su -
  503. 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>
  504. <p><code>winetricks corefonts</code></p>
  505. <p>Beim nächsten Programmstart von Notepad++ sollten die Schriften korrekt angezeigt werden.</p>
  506. <p>Die Installation der Schriftwarten wird im Pfad ~/.wine durchgeführt und hat keinen weiteren Einfluss auf dein Linux-System. </p>
  507. <p><strong>Hinweis</strong>: Mit Hilfe des Befehls <code>winetricks list-download</code> kannst Du dir alle verfügbaren winetricks-Downloads anzeigen lassen.</p>
  508. <p class="img-container"><img src="./slackware_wine_notepad_plus_plus.png" alt=""></p>
  509. <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>
  510. <p>Im beseten Falle suchst Du dir eine unter Linux verfügbare Alternative. Für Notepad++ wäre beispielsweise das Linux-Equivalent <strong>Notepadqq</strong>. Für letzeres ist ein entsprechendes SlackBuild verfügbar:</p>
  511. <p class="img-container"><img src="./slackware_notepadqq.png" alt=""></p>
  512. <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>
  513. <p>Konfiguration &lt; PDF &gt;</br>
  514. ↪ <a href="https://linuxkurs.ch/kurs/Konfiguration.pdf">https://linuxkurs.ch/kurs/Konfiguration.pdf</a></p>
  515. <p>Konfiguration &lt; HTML &gt;</br>
  516. ↪ <a href="https://linuxkurs.ch/kurs/Konfiguration.html">https://linuxkurs.ch/kurs/Konfiguration.html</a></p>
  517. <hr>
  518. <p>© Lioh Moeller</p>
  519. </article>
  520. </body>
  521. </html>