Current.md 16 KB

Linux-Kurs - Slackware -current

https://linuxkurs.ch

Nach Abschluss des Kursteils Konfiguration hast du bereits ein lauffähiges, sicheres Linux-System und bist in der Lage Programme zu installieren sowie Konfigurationsänderungen vorzunehmen. Falls du etwas ältere aber dafür ausgereifte Programme vorziehst oder wenig Aufwand in den Betrieb deines Computers stecken möchtest, bietet dir die stabile Version von Slackware die richtige Basis dafür.

Bei Slackware -current hingegen handelt es sich um die Entwickelervariante der Distribution. Dieser Zweig dient primär der Vorbereitung der nächsten stabilen Version. Es werden fortlaufend Pakete aktualisiert, was allerdings kurz vor dem Release der kommenden Version etwas nachlässt, da es dann primär um die Stabilisierung der Distribution geht. Viele begeisterte Slackware-Anwender nutzen den -current Zweig als Basis für ihr Linux-System. Gründe dafür gibt es viele, wie zum Beispiel die aktuellere Software und die ständige Erneuerung die dort stattfindet.

Distributionen wie Archlinux haben das sogenannte Rolling-Release-Verfahren zum Konzept erklärt, welches gänzlich ohne stabile Veröffentlichungsversionen auskommt. Im Gegensatz dazu ist Slackware grundsätzlich auf die Veröffentlichung von stabilen Versionen fokussiert und nicht als Rolling-Release ausgelegt. Bei einer reinen Rolling-Distribution wie Archlinux gibt es beispielsweise die erwähnten Stabilisierungsphasen nicht.

Für die Nutzung von -current als Basis für dein Linux-System braucht es zunächst einmal etwas Mut und den Willen dein System laufend zu aktualisieren. Als Lohn dafür erhältst du eine sehr aktuelle Linux-Umgebung und kannst fortlaufend von diversen Weiterentwicklungen profitieren.

Im Folgenden wird beschrieben, wie du deine bisherige Installation auf -current aktualisieren und entsprechend erweitern kannst. Es ist auch möglich eine vollständige Neuinstallation auf Basis von -current durchzuführen. Der Slackware-Entwickler alienBOB stellt entsprechende Installationsmedien zur Verfügung: http://bear.alienbase.nl/mirrors/slackware/slackware64-current-iso/.

Die Vorgehensweise zur Installation und Einrichtung entspricht in den Grundsätzen der im Kurs beschriebenen Schritte.

Voraussetzungen

Wir gehen davon aus, dass dein Linux-System dem im bisherigen Kursverlauf beschriebenen Setup entspricht und du den Defaultkernel in der huge-Variante verwendest. Letzteres ist der Fall, wenn du keine vom Kurs abweichenden Änderungen im Bereich des Kernels vorgenommen hast.

Die folgenden Arbeiten werden mit Root-Rechten ausgeführt. Starte daher bitte zunächst ein Root-Terminal:

su -

slackpkg Anpassungen

Zur Verwaltung der offiziellen Slackware-Pakete nutzen wir weiterhin den Paketmanager slackpkg. In der Datei /etc/slackpkg/mirrors haben wir bisher einen Spiegelserver für die stabile Version von Slackware hinterlegt. Um auf -current zu wechseln, müssen wir diesen auskommentieren und in der gleichen Datei deinen entsprechenden Mirror für -current aktivieren.

vi /etc/slackpkg/mirrors

Suche die Zeile mit dem aktiven Slackware64 Release-Mirror und füge am Zeilenanfang ein #-Zeichen ein.

Im weiteren Verlauf der Datei findest du entsprechende Mirrors für die Slackware64 -current Variante. Entferne vor einem Spiegelserver deiner Wahl das Rautezeichen. Zusammengefasst kann die Konfiguration wie folgt aussehen:

Hinweis: Es darf nur ein Mirror aktiv konfiguriert sein.

Blacklist

Es empfiehlt sich zu diesem Zeitpunkt die mittels sbopkg erstellten Pakete sowie sbopkg selbst zu blacklisten (das Paket endet auf _wsr).

Füge dazu die folgenden Zeilen zu am Ende der Konfigurationsdatei /etc/slackpkg/blacklist ein:

[0-9]+_SBo
[0-9]+_wsr

vi /etc/slackpkg/blacklist

Führe nach den Anpassungen eine Aktualisierung der Repository-Metadaten und ein Update von slackpkg selbst durch:

slackpkg update

slackpkg erkennt, dass du auf die Entwicklerversion gewechselt hast und fordert zu einer Bestätigung auf. Gebe Y ein um fortzufahren:

slackpkg upgrade slackpkg

Wenn ein Paket bei einem Upgrade neue Konfigurationsdateien mit sich bringt wirst du wie üblich gefragt, ob du die alten Versionen behalten möchtest oder die neue Version der jeweiligen Konfigurationsdatei übernommen werden soll.

In Falle von slackpkg ist es empfehlenswert die neuen Konfigurationsdateien zu übernehmen, da diese auch neue Mirrorinformationen enthalten:

Dies hat allerdings zur Folge, dass deine zuvor gemachten Änderungen wieder überschrieben werden und du den Mirror für -current erneut in der /etc/slackpkg/mirrors aktivieren musst. Gehe dazu wie zuvor beschrieben vor.

Hinweis: Alle Pakete, die nicht offiziell Bestandteil der Distribution sind, müssen nach der Aktualisierung auf -current neu erstellt beziehungsweise installiert werden.

Aktualisierung auf -current

Die Aktualisierung sollte sicherheitshalber in einer tty-durchgeführt werden. Du kannst diese beispielsweise mithilfe von Ctrl + Alt + F1 öffnen. Melde dich dort als Root-Benutzer an.

Zunächst muss slackpkg mit dem update Parameter ausgeführt werden, um die Anwendung über die Änderungen zu informieren:

slackpkg update

Neue Versionen von Slackware werden in der Regel mit einer aktuelleren Version der GNU C libraries ausgeliefert. Viele der enthaltenen Pakete wurden gegen diese aktualisierte glibc Version compiliert. Um Fehler bei der Paketinstallation zu vermeiden, sollte daher bei einem Wechsel auf -current zuerst glibc aktualisiert werden:

slackpkg upgrade glibc-solibs

Nach der glibc Aktualisierung kannst du mithilfe des install-new Parameters alle neu hinzugekommenen Pakete installieren, die bisher nicht Bestandteil der Distribution waren:

slackpkg install-new

Das eigentliche Upgrade startest du mit dem upgrade-all Parameter:

slackpkg upgrade-all

Die Aktualisierung kann je nach Umfang deines Systems einige Zeit in Anspruch nehmen.

Wie bekannt wirst du nach der Installation der Pakete gefragt, ob die bisherigen Konfigurationsdateien beibehalten oder durch die neuen Standardkonfigurationen ersetzt werden sollen. Mit Prompt wirst du für jede neue Konfigurationsdatei gefragt, ob du die neue Datei übernehmen möchtest oder die bisherige behalten willst. Es ist auch möglich die Dateien zu vergleichen oder zu mergen, also zusammenzuführen. Mit Overwrite würdest du alle neuen Konfigurationsdateien übernehmen, was zur Folge hätte, dass du die bisherigen Einstellungen, wie zum Beispiel den default Runlevel, die NTP-Konfiguration oder die Locales-Einstellungen erneut konfiguriert werden müssen. Dafür kannst du dir sicher sein, dass alle Neuerungen in Konfigurationsdateien auch übernommen werden.

Führe nach jeder Aktualisierung des Kernels lilo aus, um den Bootloader neu zu schreiben:

lilo

Mithilfe des clean-system Parameters entfernst du abschliessend alle Pakete, die nicht mehr Bestandteil der Distribution sind:

slackpkg clean-system

Nach der Aktualisierung kannst du dein Linux-System neu starten.

Slackpkg+

Ein alternativer Ansatz zur Verwaltung von Zusatzrepositories ist die slackpkg-Erweiterung mit dem Namen Slackpkg+. Du findest sie auf der Homepage des Entwicklers:

http://slakfinder.org/slackpkg+.html

Zur Installation klicke auf den Download-Link und wähle aus der Liste die neueste verfügbare Version aus. Speichere das Paket im Download-Ordner deines Benutzers ab. Öffne ein Benutzer-Terminal und installiere das Paket mithilfe des upgradepkg Kommandos:

sudo upgradepkg --install-new ~/Downloads/slackpkg+*

Wechsle danach zurück in das Root-Terminal.

Multilib

Falls du wie im Kursteil Programme beschrieben Multilib verwendest, hast du bisher das Script /usr/local/sbin/alien-multilib-rsync.sh zur Synchronisation und Installation der Multilib-Pakete genutzt. Es prüft den Mirror jeweils auf Veränderungen. Sollte neue Pakete vorhanden sein, wird mithilfe des rsync Kommandos ein Abgleich durchgeführt. Dabei werden nur die geänderten Pakete heruntergeladen. Installiert beziehungsweise aktualisiert werden hingegen jeweils alle Pakete, auch wenn sich nur wenige Änderungen ergeben haben. Da die Frequenz der Änderungen im Multilib-Repository unter Slackware -current deutlich höher ist, ist die Nutzung des Scriptes für diesen Distributionszweig nicht empfehlenswert. Sinnvoller ist die Verwendung von Slackpkg+. Das bisherige Sync-Script kannst du mithilfe des folgenden Kommandos löschen:

\rm /usr/local/sbin/alien-multilib-rsync.sh

Hinweis: Das \-Zeichen vor dem rm unterdrückt die Nutzung des von uns gesetzten Aliase und löscht die Datei somit ohne Nachfrage.

Bearbeite zur Aktivierung von Multilib in Slackpkg+ die Datei /etc/slackpkg/slackpkgplus.conf:

vi /etc/slackpkg/slackpkgplus.conf

Die Repository-Definition für Multilib unter -current sieht wie folgt aus:

MIRRORPLUS['multilib']=http://bear.alienbase.nl/mirrors/people/alien/multilib/current/

Füge des weiteren multilib zur REPOPLUS Variable hinzu:

REPOPLUS=( slackpkgplus multilib )

Slackpkg+ nutzt ein Prioritäten-System zur Verwaltung der Repositories. Du kannst das multilib-Repository bevorzugen, indem du es in der Variable PKGS_PRIORITY hinterlegst:

PKGS_PRIORITY=( multilib )

Falls du alien und compat32 in der Datei /etc/slackpkg/blacklist aufgeführt hast, musst du die entsprechenden Einträge vor der Nutzung von Multilib mit Slackpkg+ entfernen oder auskommentieren:

vi /etc/slackpkg/blacklist
# This will blacklist compat32 and alienBOB's packages
# [0-9]+alien
# [0-9]+compat32

Nach Änderungen an den zu verwendeten Repositories, müssen die GPG-Entwicklerschlüssel und die Repository-Metadaten aktualisiert werden:

slackpkg update gpg
slackpkg update

Mit dem upgrade-all slackpkg Parameter werden die gcc Pakete aus dem Slackware-Repository durch die Multilib Pakete ersetzt. Daraufhin kannst du alle compat32 aus dem Multilib-Repository installieren:

slackpkg upgrade-all
slackpkg install multilib

SBo

Die meisten Pakete die du zuvor mittels sbopkg aus den SlackBuild Scripten erstellt hast, werden nun nicht mehr funktionieren. Die Unterstützung von -current in sbopkg ist experimentell. Um diese zu aktivieren, öffne ein Root-Terminal und bearbeite die Datei /etc/sbopkg/sbopkg.conf.

su -
vi /etc/sbopkg/sbopkg.conf

Entscheidend sind die Variablen: REPO_BRANCH und REPO_NAME. Diese müssen wie folgt konfiguriert werden:

REPO_BRANCH=${REPO_BRANCH:-current}
REPO_NAME=${REPO_NAME:-SBo-git}

Führe danach mithilfe des -r Parameters eine Synchronisation des Repositories aus:

sbopkg -r

sqg

Nach der Umstellung des Repositories müssen die Queuefiles neu erstellt werden. Dies kann entweder durch die Angabe einzelner Queues geschehen, wie zum Beispiel für transmission:

sqg -p transmission

oder wie bekannt mithilfe des -a Parameters für alle verfügbaren Queuefiles:

sqg -a

Hinweis: Dieser Vorgang kann einige Zeit in Anspruch nehmen.

Wie du vielleicht am Namen SBo-git erkannt hast, basiert die sbopkg-Version für -current auf einem GIT-Repository. Dieses wird bei grösseren Änderungen vollständig gelöscht und neu erstellt, was dazu führen kann, dass das git-Programm welches sbopkg im Hintergrund verwendet, mit diesen Änderungen nicht umgehen kann.

Daher wird empfohlen vor jedem Abgleich des Repositories mittels sbopkg -r folgenden Befehl auszuführen:

rm -fR /var/lib/sbopkg/SBo-git
sbopkg -r

Auch die Queuefiles sollten regelmässig aktualisiert werden. Vor jeder Erstellung eines Paketes anhand eines Queuefiles, sollte letzteres mittels sqg -p $PAKETNAME auf den aktuellen Stand gebracht werden.

SBo Pakete ermitteln

Um eine Liste aller Pakete, die du mit sbopkg installiert hast zu erstellen, kannst du wie folgt vorgehen:

find /var/log/packages/*_SBo -printf "%f\n" | awk -F'-[0-9]' '{print $1}' > /root/mysbopackages

Der find Befehl sucht im Verzeichnis /var/log/packages alle Dateien die mit _SBo enden und gibt diese aus. Die Ausgabe würde ohne weitere Parameter den gesamten Pfad der gefundenen Dateien anzeigen. Mithilfe von -printf "%f\n" schränken wir die Ausgabe auf den tatsächlichen Dateinamen ein (%f) und fügen nach jeder ausgegebenen Zeile mithilfe von \n einen Zeilenumbruch hinzu.

Um eine Paketliste zu erhalten, benötigen wir allerdings nur die Paketnamen ohne die Versionsnummern. Dies erreichen wir, indem wir die Ausgabe des find Befehls mit dem awk Kommando bearbeiten. Der Parameter -F'-[0-9]' gibt an, welche Zeichen von awk als Trennzeichen interpretiert werden sollen. Anhand dieser Informationen teilt awk die Ausgabe in verschiedene durchnummerierte Bereiche auf. In diesem Fall soll das Kommando ein - Zeichen gefolgt von einer beliebigen Zahl als Trennelement nutzen. '{print $1} gibt den ersten Block der aufgetrennten Elemente aus. $0 würde für die gesamte unbearbeitete Ausgabe stehen.

Die Ausgabe leiten wir mithilfe vom > /root/mysbopackages in eine Datei um.

Diese kannst du dir beispielsweise mit dem cat Kommando anzeigen lassen:

cat /root/mysbopackages

Die Paketliste kann dir Hinweise geben, welche Paket du neu erstellen und installieren musst.

Alte SBo Pakete bereinigen

Nach Erstellung der Paketliste wird empfohlen alle alten mittels sbopkg installierten Pakete zu entfernen und danach wie bekannt neu zu erstellen und zu installieren. Zum Entfernen kannst du den Blacklist Eintrag [0-9]+_SBo in der Datei /etc/slackpkg/blacklist löschen und danach slackpkg mit dem clean-system Parameter ausführen:

slackpkg clean-system

Es sollten alle Pakete mit der Endung _SBo zur Deinstallation angeboten werden.

Nach der Bereinigung kann der Blacklist Eintrag [0-9]+_SBo in der Datei /etc/slackpkg/blacklist wieder aktivieren.

Nun kannst du die zuvor unter der stabilen Variante von Slackware mittels sbopkg installierten Pakete neu erstellen.

System aktualisieren

Die Vorgehensweise zur Aktualisierung deines -current Systems entspricht den zuvor geschilderten Schritten. Diese solltest du regelmässig durchführen. Alle Kommandos müssen mit Root-Rechten ausgeführt werden.

Lese dir zunächst den Changelog durch. Dort findest du wichtige Hinweise zu Veränderungen. Öffne dazu die folgende URL im Firefox-Browser:

ftp://ftp.osuosl.org/pub/slackware/slackware64-current/ChangeLog.txt

Führe daraufhin mir Root-Rechten die Aktualisierung aus, welche aus den folgenden Kommandos besteht:

slackpkg update
slackpkg install-new
slackpkg upgrade-all
slackpkg clean-system

Solltest du Multilib verwenden, führe nach dem slackpkg upgrade-all folgenden Befehl aus um mögliche neue Pakete aus dem Multilib-Repository zu installieren:

slackpkg install multilib

Dies gilt analog auch für die Verwendung von ktown:

slackpkg install ktown

Falls der Kernel aktualisiert worden ist, führe zusätzlich lilo aus um den Bootloader neu zu schreiben.

lilo

Auf diese Weise kannst du dein System aktuell halten und von den Neuerungen in -current profitieren.

Mit Slackware -current hast du ein hochaktuelles Linux-System. Falls du dich für den KDE Plasma Desktop entschieden hast, verfügst du nun über eine frische Desktopoberfläche, die du stark an deine persönlichen Bedürfnisse anpassen kannst.

Im nächsten Kursteil lernst du wie du deinen eigenen Kernel compilieren kannst.

Kernel < PDF >

https://linuxkurs.ch/kurs/Kernel.pdf

Kernel < HTML >

https://linuxkurs.ch/kurs/Kernel.html


© CC-BY-SA - Lioh Moeller