<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>raspel</title>
    <link>https://text.tchncs.de/raspel/</link>
    <description></description>
    <pubDate>Thu, 16 Apr 2026 05:55:04 +0000</pubDate>
    <item>
      <title>2 ct Tipp: Lange Zeilen umbrechen</title>
      <link>https://text.tchncs.de/raspel/2-ct-tipp-lange-zeilen-umbrechen</link>
      <description>&lt;![CDATA[Von meinem Rootserver kamen die Statusmails nicht mehr in meinem Postfach an. Der Mailprovider hat sie als Spam abgewiesen. &#xA;!--more--&#xA;Da gestern ein großeres Update von Debian durchgelaufen ist, war die Update-History lang. Die Datei&#xA;&#xA;  /var/log/apt/history.log&#xA;&#xA;zeigt alle Updates als eine lange Zeile an. Mit folgendem Sed-Befehl habe ich überall Zeilenumbrüche eingefügt. Nun ist es sogar lesbar.&#xA;&#xA;  cat /var/log/apt/history.log|sed -e &#39;s/), /), \n/g&#39;&#xA;&#xA;Das Ergebnis sieht etwa so aus: (Ausschnitt)&#xA;&#xA;  php8.4-bcmath:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9),&#xA;  php8.4-mbstring:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9), &#xA;  php8.4-xml:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9), &#xA;  php8.4-apcu:amd64 (5.1.25-2+0~20250805.44+debian13~1.gbp51875c, 5.1.27-1+0~20250908.45+debian13~1.gbpc79238), &#xA;&#xA;usw...]]&gt;</description>
      <content:encoded><![CDATA[<p>Von meinem Rootserver kamen die Statusmails nicht mehr in meinem Postfach an. Der Mailprovider hat sie als Spam abgewiesen.

Da gestern ein großeres Update von Debian durchgelaufen ist, war die Update-History lang. Die Datei</p>

<blockquote><p>/var/log/apt/history.log</p></blockquote>

<p>zeigt alle Updates als eine lange Zeile an. Mit folgendem Sed-Befehl habe ich überall Zeilenumbrüche eingefügt. Nun ist es sogar lesbar.</p>

<blockquote><p>cat /var/log/apt/history.log|sed -e &#39;s/), /), \n/g&#39;</p></blockquote>

<p>Das Ergebnis sieht etwa so aus: (Ausschnitt)</p>

<blockquote><p>php8.4-bcmath:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9),
php8.4-mbstring:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9),
php8.4-xml:amd64 (8.4.11-1+0~20250803.30+debian13~1.gbpddfa77, 8.4.14-1+0~20251108.36+debian13~1.gbpca7cb9),
php8.4-apcu:amd64 (5.1.25-2+0~20250805.44+debian13~1.gbp51875c, 5.1.27-1+0~20250908.45+debian13~1.gbpc79238),</p></blockquote>

<p>usw...</p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/2-ct-tipp-lange-zeilen-umbrechen</guid>
      <pubDate>Sun, 16 Nov 2025 10:58:21 +0000</pubDate>
    </item>
    <item>
      <title>2 ct Tipp: Runlevel mit Systemd setzen</title>
      <link>https://text.tchncs.de/raspel/runlevel-mit-systemd-setzen</link>
      <description>&lt;![CDATA[Früher wurde der Runlevel mit dem Kommando init gesetzt. Heute wird das mit systemctl bewerkstelligt…&#xA;!--more--&#xA;&#xA;Welcher Runlevel wird nach dem Neustart verwendet&#xA;&#xA;  systemctl get-default&#xA;&#xA;Setzen des Default-Runlevel&#xA;&#xA;  systemctl set-default multi-user.target&#xA;&#xA;Umschalten in den Konsolen Runlevel&#xA;&#xA;  systemctl isolate multi-user.target &#xA;&#xA;Umschalten in den graphischen Runlevel&#xA;&#xA;  systemctl isolate graphical.target &#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Früher wurde der Runlevel mit dem Kommando init gesetzt. Heute wird das mit systemctl bewerkstelligt…
</p>

<h2 id="welcher-runlevel-wird-nach-dem-neustart-verwendet">Welcher Runlevel wird nach dem Neustart verwendet</h2>

<blockquote><p>systemctl get-default</p></blockquote>

<h2 id="setzen-des-default-runlevel">Setzen des Default-Runlevel</h2>

<blockquote><p>systemctl set-default multi-user.target</p></blockquote>

<h2 id="umschalten-in-den-konsolen-runlevel">Umschalten in den Konsolen Runlevel</h2>

<blockquote><p>systemctl isolate multi-user.target</p></blockquote>

<h2 id="umschalten-in-den-graphischen-runlevel">Umschalten in den graphischen Runlevel</h2>

<blockquote><p>systemctl isolate graphical.target</p></blockquote>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/runlevel-mit-systemd-setzen</guid>
      <pubDate>Mon, 03 Nov 2025 12:53:57 +0000</pubDate>
    </item>
    <item>
      <title>Wie ich zu einer neuen Nextcloud kam...</title>
      <link>https://text.tchncs.de/raspel/wie-ich-zu-einer-neuen-nextcloud-kam</link>
      <description>&lt;![CDATA[Seit vielen Jahren haben wir auf einem virtuellen Rootserver eine Nextcloud-Instanz (NC). Diese Maschine ist in die Jahre gekommen. Wir haben dort sehr viel probiert, verworfen oder auch weiter betrieben.&#xA;!--more--&#xA;Nun haben wir eine neue Maschine. Nun stellte sich die Frage, wie kommen wir zu einer neuen Cloudlösung. Auf dem Fedicamp (3)  wurde mir geraten, eine von Nextcloud favorisierten Lösung, die All-In-One zu verwenden. Ich habe mich dagegen entschieden, weil es eine Dockerinstanz ist.&#xA;&#xA;Vor einiger Zeit habe ich zu Hause eine NC nach der Anleitung von Carsten Rieger aufgesetzt (1). Sein Vorgehen ist all umfassend und vollständig. Es beginnt bei der Auswahl der Komponeten, die Optimierung der Datenbank und php. Er installiert Zertifikate, installiert ufw als Firewall und sichert den Server mittels Crowdsec ab. All diese Dinge habe ich nachvollzogen und für sehr gut empfunden. Ich konnte sehen, wieviel Erfahrung in seinem Beitrag steckt.&#xA;&#xA;Das Problem bei dieser Vorgehensweise ist, es erfordert einen recht hohen Zeitaufwand. Nun hat Herr Rieger all sein vorhin beschriebenes Wissen in ein Script mit einer zentralen Konfiguration gepackt (2). Mit diesem Script hatte ich in ungefähr 5 Minuten eine vollständige NC im Netz auf einem Rootserver installiert. &#xA;&#xA;Gerade ist Debian 13 Trixie veröffentlich worden. Mir ist wichtig, eine aktuelle Version als Basis zu verwenden. Debian 13 hat ein aktuelles php8  und eine aktuelle Datenbank dabei. &#xA;&#xA;Nach der Installation stellte sich heraus, das Herr Rieger Kernkomponenten nicht  von Debian verwendet, sondern wie zuvor von externen Repositories:&#xA;&#xA;nginx&#xA;redis&#xA;php8&#xA;mariadb&#xA;&#xA;Das wertet meinen sehr guten Eindruck nicht ab. Aber man sollte es wissen. Vielleicht gibt es ja auch gute Gründe dafür.&#xA;&#xA;Der Betrieb erfordert ein hohes Maß an Einarbeitung in crowdsec, nginx, acme und ufw, um weitere Anforderungen an den Server zu erreichen. Vieles kostet halt Zeit oder Erfahrung. Mir hat es viel Spaß gemacht alles zu ergründen. Zum Beispiel ist es sehr lustig, wenn abends um 22 Uhr crowdsec einem den kompletten Zugang zum Server verweigert und man hat keine Ahnung wie einem passiert. In diesem Fall half ein starker Tee und das Wiki zu crowdsec von arch mit den Befehlen &#xA;&#xA;  cscli decisions list&#xA;  cscli decisions delete --ip 1.2.3.4&#xA;&#xA;von der Webkonsole des Hosters.&#xA;&#xA;Noch einmal möchte ich Herrn Rieger meinen Dank für seine Arbeit aussprechen.&#xA;&#xA;Links zu den Quellen:&#xA;(1) Installation im Detail&#xA;(2) Das Script, Hub 10&#xA;(3) Das Fedicamp&#xA;&#xA;#linux #nextcloud #debian13&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Seit vielen Jahren haben wir auf einem virtuellen Rootserver eine Nextcloud-Instanz (NC). Diese Maschine ist in die Jahre gekommen. Wir haben dort sehr viel probiert, verworfen oder auch weiter betrieben.

Nun haben wir eine neue Maschine. Nun stellte sich die Frage, wie kommen wir zu einer neuen Cloudlösung. Auf dem Fedicamp (3)  wurde mir geraten, eine von Nextcloud favorisierten Lösung, die All-In-One zu verwenden. Ich habe mich dagegen entschieden, weil es eine Dockerinstanz ist.</p>

<p>Vor einiger Zeit habe ich zu Hause eine NC nach der Anleitung von Carsten Rieger aufgesetzt (1). Sein Vorgehen ist all umfassend und vollständig. Es beginnt bei der Auswahl der Komponeten, die Optimierung der Datenbank und php. Er installiert Zertifikate, installiert ufw als Firewall und sichert den Server mittels Crowdsec ab. All diese Dinge habe ich nachvollzogen und für sehr gut empfunden. Ich konnte sehen, wieviel Erfahrung in seinem Beitrag steckt.</p>

<p>Das Problem bei dieser Vorgehensweise ist, es erfordert einen recht hohen Zeitaufwand. Nun hat Herr Rieger all sein vorhin beschriebenes Wissen in ein Script mit einer zentralen Konfiguration gepackt (2). Mit diesem Script hatte ich in ungefähr 5 Minuten eine vollständige NC im Netz auf einem Rootserver installiert.</p>

<p>Gerade ist Debian 13 Trixie veröffentlich worden. Mir ist wichtig, eine aktuelle Version als Basis zu verwenden. Debian 13 hat ein aktuelles php8  und eine aktuelle Datenbank dabei.</p>

<p>Nach der Installation stellte sich heraus, das Herr Rieger Kernkomponenten nicht  von Debian verwendet, sondern wie zuvor von externen Repositories:</p>
<ul><li>nginx</li>
<li>redis</li>
<li>php8</li>
<li>mariadb</li></ul>

<p>Das wertet meinen sehr guten Eindruck nicht ab. Aber man sollte es wissen. Vielleicht gibt es ja auch gute Gründe dafür.</p>

<p>Der Betrieb erfordert ein hohes Maß an Einarbeitung in crowdsec, nginx, acme und ufw, um weitere Anforderungen an den Server zu erreichen. Vieles kostet halt Zeit oder Erfahrung. Mir hat es viel Spaß gemacht alles zu ergründen. Zum Beispiel ist es sehr lustig, wenn abends um 22 Uhr crowdsec einem den kompletten Zugang zum Server verweigert und man hat keine Ahnung wie einem passiert. In diesem Fall half ein starker Tee und das <a href="https://wiki.archlinux.org/title/CrowdSec" rel="nofollow">Wiki zu crowdsec von arch</a> mit den Befehlen</p>

<blockquote><p>cscli decisions list
cscli decisions delete —ip 1.2.3.4</p></blockquote>

<p>von der Webkonsole des Hosters.</p>

<p>Noch einmal möchte ich Herrn Rieger meinen Dank für seine Arbeit aussprechen.</p>

<p>Links zu den Quellen:
(1) <a href="https://www.c-rieger.de/nextcloud-installationsanleitung/" rel="nofollow">Installation im Detail</a>
(2) <a href="https://www.c-rieger.de/nextcloud-installationsskript/" rel="nofollow">Das Script, Hub 10</a>
(3) <a href="https://fedi.camp" rel="nofollow">Das Fedicamp</a></p>

<p><a href="/raspel/tag:linux" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">linux</span></a> <a href="/raspel/tag:nextcloud" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">nextcloud</span></a> <a href="/raspel/tag:debian13" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">debian13</span></a></p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/wie-ich-zu-einer-neuen-nextcloud-kam</guid>
      <pubDate>Sat, 23 Aug 2025 13:30:58 +0000</pubDate>
    </item>
    <item>
      <title>2 ct-Tipp: Nvidia unter Debian</title>
      <link>https://text.tchncs.de/raspel/2-ct-tipp-nvidia-unter-debian</link>
      <description>&lt;![CDATA[Auf einer Workstation mit einer Nvidia Grafikkarte, kam es mal wieder zu einer Installation von Nvidia-Treibern.&#xA;!--more--&#xA;&#xA;Folgende Pakete müssen installiert werden&#xA;&#xA;  apt install linux-headers-amd64&#xA;  apt install nvidia-detect &#xA;  apt install nvidia-driver&#xA;  apt install linux-image-amd64&#xA;&#xA;Was nicht automatisch mitinstalliert wird sind die Kernel-Header. In diesem Fall für ein Debian 13 mit dem Kernel 6.12.27-amd64:&#xA;&#xA;  apt install linux-headers-6.12.27-amd64&#xA;&#xA;Falls daraufhin die Kernel-Module nicht neu gebaut werden, hilft ein&#xA;&#xA;  dpkg-reconfigure nvidia-kernel-dkms&#xA;&#xA;Danach steht ein Neustart an... &#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Auf einer Workstation mit einer Nvidia Grafikkarte, kam es mal wieder zu einer Installation von Nvidia-Treibern.
</p>

<p>Folgende Pakete müssen installiert werden</p>

<blockquote><p> apt install linux-headers-amd64
 apt install nvidia-detect
 apt install nvidia-driver
 apt install linux-image-amd64</p></blockquote>

<p>Was nicht automatisch mitinstalliert wird sind die Kernel-Header. In diesem Fall für ein Debian 13 mit dem Kernel 6.12.27-amd64:</p>

<blockquote><p> apt install linux-headers-6.12.27-amd64</p></blockquote>

<p>Falls daraufhin die Kernel-Module nicht neu gebaut werden, hilft ein</p>

<blockquote><p> dpkg-reconfigure nvidia-kernel-dkms</p></blockquote>

<p>Danach steht ein Neustart an...</p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/2-ct-tipp-nvidia-unter-debian</guid>
      <pubDate>Sun, 18 May 2025 17:47:12 +0000</pubDate>
    </item>
    <item>
      <title>Nach der Wahl...</title>
      <link>https://text.tchncs.de/raspel/nach-der-wahl</link>
      <description>&lt;![CDATA[Es ist schon lange her, dass ich etwas gepostet habe. Nun...&#xA;&#xA;Die Bundestswahl ist gelaufen...&#xA;!--more--&#xA;An die Idioten die die USA regieren, werden wir uns auch gewöhnen. Der Planet zieht weiter seine Bahnen um die Sonne. Ob wir Menschen uns nun um den Klimawandel kümmern oder nicht, spielt keine Rolle. Die Erde wird auch gut ohne Menschen auskommen.&#xA;&#xA;Frei nach Kästner: Ich bin die Zeit&#xA;&#xA;  ...&#xA;  &#34;Gebt acht, ihr Menschen, was ich sagen will:&#xA;  Seid endlich still!&#xA;  &#xA;  Ihr seid ein Stäubchen am Gewand der Zeit, –&#xA;  Lasst euren Streit!&#xA;  Klein wie ein Punkt ist der Planet,&#xA;  Der sich samt euch im Weltall dreht.&#xA;  Mikroben pflegen nicht zu schrei&#39;n.&#xA;  Und wollt ihr schon nicht weise sein,&#xA; Könnt ihr zumindest leise sein.&#34; ...]]&gt;</description>
      <content:encoded><![CDATA[<p>Es ist schon lange her, dass ich etwas gepostet habe. Nun...</p>

<p>Die Bundestswahl ist gelaufen...

An die Idioten die die USA regieren, werden wir uns auch gewöhnen. Der Planet zieht weiter seine Bahnen um die Sonne. Ob wir Menschen uns nun um den Klimawandel kümmern oder nicht, spielt keine Rolle. Die Erde wird auch gut ohne Menschen auskommen.</p>

<p>Frei nach Kästner: Ich bin die Zeit</p>

<p>  ...
  “Gebt acht, ihr Menschen, was ich sagen will:
  Seid endlich still!</p>

<p>  Ihr seid ein Stäubchen am Gewand der Zeit, –
  Lasst euren Streit!
  Klein wie ein Punkt ist der Planet,
  Der sich samt euch im Weltall dreht.
  Mikroben pflegen nicht zu schrei&#39;n.
  Und wollt ihr schon nicht weise sein,
 Könnt ihr zumindest leise sein.” ...</p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/nach-der-wahl</guid>
      <pubDate>Mon, 24 Feb 2025 15:48:07 +0000</pubDate>
    </item>
    <item>
      <title>Dyn Dns und kein Ende</title>
      <link>https://text.tchncs.de/raspel/dyn-dns-und-kein-ende</link>
      <description>&lt;![CDATA[Für meinen eignen Server der direkt am DSL Router hängt, habe ich von AdminForge noip.at als Provider für meine Domain verwendet.&#xA;&#xA;Soweit so gut... Nur in meinem Lan lies sich meine Domain nicht auflösen. &#xA;!--more--&#xA;Zunächst habe mir auf meinem Clients mit Einträgen in der /etc/hosts geholfen... Da ich für meine Rechner im Lan einen eigenen Nameserver betreibe, habe ich dort nach Fehlern gesucht und nicht gefunden...&#xA;&#xA;Nun habe ich zu einem Quick und Dirty Trick gegriffen und die Zone noip.at als Zone auf meinem Nameserver abgebildet.&#xA;&#xA;Auschnitt aus der Zonendatei für noip.at:&#xA;&#xA;  ; A records&#xA;  hostname     IN    A     a.b.c.d&#xA;  www             IN    A     e.f.g.h&#xA;  noip.at.&#x9;       IN    A     e.f.g.h&#xA;  *.noip.at.&#x9;  IN    A     e.f.g.h&#xA;&#xA;Ich gebe zu, dass es keine schöne Lösung ist. Wer einen besseren Ansatz hat, möge mir schreiben: @raspel@procial.tchncs.de&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Für meinen eignen Server der direkt am DSL Router hängt, habe ich von <a href="https://adminforge.de/" rel="nofollow">AdminForge</a> <a href="noip.at" rel="nofollow">noip.at</a> als Provider für meine Domain verwendet.</p>

<p>Soweit so gut... Nur in meinem Lan lies sich meine Domain nicht auflösen.

Zunächst habe mir auf meinem Clients mit Einträgen in der /etc/hosts geholfen... Da ich für meine Rechner im Lan einen eigenen Nameserver betreibe, habe ich dort nach Fehlern gesucht und nicht gefunden...</p>

<p>Nun habe ich zu einem Quick und Dirty Trick gegriffen und die Zone noip.at als Zone auf meinem Nameserver abgebildet.</p>

<p>Auschnitt aus der Zonendatei für noip.at:</p>

<blockquote><p> ; A records
hostname     IN    A     a.b.c.d
www             IN    A     e.f.g.h
noip.at.         IN    A     e.f.g.h
*.noip.at.      IN    A     e.f.g.h</p></blockquote>

<p>Ich gebe zu, dass es keine schöne Lösung ist. Wer einen besseren Ansatz hat, möge mir schreiben: <a href="https://text.tchncs.de/@/raspel@procial.tchncs.de" class="u-url mention" rel="nofollow">@<span>raspel@procial.tchncs.de</span></a></p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/dyn-dns-und-kein-ende</guid>
      <pubDate>Tue, 15 Oct 2024 11:06:41 +0000</pubDate>
    </item>
    <item>
      <title>Linux: Bash vs. Zsh, -ein Kurzvergleich-</title>
      <link>https://text.tchncs.de/raspel/linux-bash-vs</link>
      <description>&lt;![CDATA[Nach langer Zeit habe ich mich entschlossen, doch die Z-Shell einmal zu probieren. &#xA;!--more--&#xA;Lange habe ich die bash verwendet, weil sie bei jeder Linux-Distribution installiert ist. &#xA;Der Umgang&#xA;Das Ausehen des Promptes mag ja viele als hervorstechendes Merkmal sehen, aber wie ist es mit der Funktionalität? Hier besticht die zsh mit ihrer Kommando- und Parametererweitung per Tabtaste natürlich. Ich habe mich schnell an diesen Komfort gewöhnt. Da nur mein Laptop die zsh bei meinem Useraccount verwendet, merke ich bei jedem Remotezugriff auf einen anderen Server bei mir, wie hölzern die bash im Umgang ist.&#xA;&#xA;Scripte&#xA;Eine Frage die sich mir stellte, wie ist die Kompabilität beim Scripten? Alle meine Scripte habe ich mit der bash geschrieben. Werden sie ohne Probleme weiterlaufen? Besonders die Teile davon, die in der .zshrc inkludiert werden?&#xA;Ja, mit einer Einschränkung, laufen bei mir alle Scripte der bash auch mit der zsh als Interpreter. In der kurzen Zeit werde ich natürlich nicht alles getestet haben. Generell kann man sagen, die zsh tolleriert weniger Fehler im Script als die bash.&#xA;&#xA;In einem Script habe ich innerhalb einer if-Klause den Stringvergleich mit &#34;==&#34; stehen gehabt. Meine bash hat das tolleriert und richtig ausgeführt. Es darf aber nur ein &#34;=&#34; an dieser Stelle stehen. Die zsh quittiert dies mit einer Fehlermeldung.&#xA;&#xA;Fazit&#xA;Etwas unschön beim Wechsel zur zsh ist, dass die aufgebaute History verloren geht. Die zsh verwendet einen Zeitstempel in ihrer History.&#xA;&#xA;Nun braucht es ja immer etwas Zeit, um sich an etwas Neues zu gewöhnen... Ich werde es eine Zeit lang probieren. Auf meinen Servern, speziell der Root-Umgebung werde ich bei der bash bleiben.&#xA;Vorläufig... &#xA;&#xA;Links&#xA;&#xA;ArcLinuxWiki&#xA;Installation&#xA;DebianWiki&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Nach langer Zeit habe ich mich entschlossen, doch die Z-Shell einmal zu probieren.

Lange habe ich die bash verwendet, weil sie bei jeder Linux-Distribution installiert ist.</p>

<h2 id="der-umgang">Der Umgang</h2>

<p>Das Ausehen des Promptes mag ja viele als hervorstechendes Merkmal sehen, aber wie ist es mit der Funktionalität? Hier besticht die zsh mit ihrer Kommando- und Parametererweitung per Tabtaste natürlich. Ich habe mich schnell an diesen Komfort gewöhnt. Da nur mein Laptop die zsh bei meinem Useraccount verwendet, merke ich bei jedem Remotezugriff auf einen anderen Server bei mir, wie hölzern die bash im Umgang ist.</p>

<h2 id="scripte">Scripte</h2>

<p>Eine Frage die sich mir stellte, wie ist die Kompabilität beim Scripten? Alle meine Scripte habe ich mit der bash geschrieben. Werden sie ohne Probleme weiterlaufen? Besonders die Teile davon, die in der .zshrc inkludiert werden?
Ja, mit einer Einschränkung, laufen bei mir alle Scripte der bash auch mit der zsh als Interpreter. In der kurzen Zeit werde ich natürlich nicht alles getestet haben. Generell kann man sagen, die zsh tolleriert weniger Fehler im Script als die bash.</p>

<p>In einem Script habe ich innerhalb einer if-Klause den Stringvergleich mit “==” stehen gehabt. Meine bash hat das tolleriert und richtig ausgeführt. Es darf aber nur ein “=” an dieser Stelle stehen. Die zsh quittiert dies mit einer Fehlermeldung.</p>

<h2 id="fazit">Fazit</h2>

<p>Etwas unschön beim Wechsel zur zsh ist, dass die aufgebaute History verloren geht. Die zsh verwendet einen Zeitstempel in ihrer History.</p>

<p>Nun braucht es ja immer etwas Zeit, um sich an etwas Neues zu gewöhnen... Ich werde es eine Zeit lang probieren. Auf meinen Servern, speziell der Root-Umgebung werde ich bei der bash bleiben.
Vorläufig...</p>

<h2 id="links">Links</h2>

<p><a href="https://wiki.archlinux.org/title/Zsh" rel="nofollow">ArcLinuxWiki</a>
<a href="https://linuxtldr.com/installing-zsh/" rel="nofollow">Installation</a>
<a href="https://wiki.debian.org/Zsh" rel="nofollow">DebianWiki</a></p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/linux-bash-vs</guid>
      <pubDate>Sun, 11 Aug 2024 10:17:28 +0000</pubDate>
    </item>
    <item>
      <title>Fedicamp 2024</title>
      <link>https://text.tchncs.de/raspel/fedicamp-2024</link>
      <description>&lt;![CDATA[Auch dieses Jahr ging es wieder zum Fedicamp nach Gedelitz. Wir sind am Sonntag morgens losgefahren. Der Weg führte uns über Hitzacker, Dömitz, weiter an der Elbuferstrasse entlang.&#xA;!--more--&#xA;In Dömitz gab es eine Festung zu sehen. Wieder auf der westlichen Seite der Elbe haben wir die Reste der alten Eisenbahnbrücke angeschaut. Diesen Teil des Wendland kannte ich nicht. Alles perfekt für ausgedehnte Rad an oder auf dem Deich der Elbe entlang. Nach einem kurzen Stop bei Bekannten in Gorleben, erreichten wir unser Ziel in Gartow.&#xA;&#xA;Am Dienstag ging es nach Gedelitz. Lampen, Strom, Internet und all dieses Gedöns was für ein Gelingen erforderlich ist, wurde verlegt und aufgebaut. Erste Besucher kamen schon am Vortag. Das Wetter machte uns einen Strich durch die Rechnung. Es gab Gewitter und Starkregen. Die Wiese konnte das Wasser so schnell nicht aufnehmen. Zwei Anreisende hatten unterwegs Probleme mit ihren Rädern... Alles löste sich in Wohlgefallen auf. Für alle und mit allen wurde gekocht und gegesssen. Abends gab es viele Gespräche am Lagerfeuer.&#xA;&#xA;Die Tage vergehen wie im Flug... Leute kommen, Leute gehen, es gibt Vorträge und Exkursionen. Zuviele Begnungen, zuviele Ereignisse, ich kann sie gar nicht im Einzelnen wiedergeben. Es waren ungefähr 60 Erwachsene und sieben Kinder auf dem Camp. Manche waren die ganze Zeit dort, andere waren ein paar Tage dort, andere kamen nur für eine kurze Stippvisite vorbei. Alles in Allem einfach grandios wie so unterschiedliche Menschen so gut miteinander umgegangen sind, ohne Zank und Ärger. So etwas erlebt man selten.&#xA;&#xA;Schnell ist die Zeit auf der Wiese in Gedelitz vorbei. Es ist wieder Sonntag. Alle bauen ihre Zelte ab. Die Leute von der Orga bauen die Infrastruktur zurück. Die Küche, der Saal, die sanitären Anlagen müssen gereinigt werden.&#xA;&#xA;Es war einfach wunderbar! Bis zum nächsten Jahr! &#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Auch dieses Jahr ging es wieder zum <a href="https://fedi.camp/" rel="nofollow">Fedicamp</a> nach Gedelitz. Wir sind am Sonntag morgens losgefahren. Der Weg führte uns über Hitzacker, Dömitz, weiter an der Elbuferstrasse entlang.

In Dömitz gab es eine Festung zu sehen. Wieder auf der westlichen Seite der Elbe haben wir die Reste der alten Eisenbahnbrücke angeschaut. Diesen Teil des Wendland kannte ich nicht. Alles perfekt für ausgedehnte Rad an oder auf dem Deich der Elbe entlang. Nach einem kurzen Stop bei Bekannten in Gorleben, erreichten wir unser Ziel in Gartow.</p>

<p>Am Dienstag ging es nach Gedelitz. Lampen, Strom, Internet und all dieses Gedöns was für ein Gelingen erforderlich ist, wurde verlegt und aufgebaut. Erste Besucher kamen schon am Vortag. Das Wetter machte uns einen Strich durch die Rechnung. Es gab Gewitter und Starkregen. Die Wiese konnte das Wasser so schnell nicht aufnehmen. Zwei Anreisende hatten unterwegs Probleme mit ihren Rädern... Alles löste sich in Wohlgefallen auf. Für alle und mit allen wurde gekocht und gegesssen. Abends gab es viele Gespräche am Lagerfeuer.</p>

<p>Die Tage vergehen wie im Flug... Leute kommen, Leute gehen, es gibt Vorträge und Exkursionen. Zuviele Begnungen, zuviele Ereignisse, ich kann sie gar nicht im Einzelnen wiedergeben. Es waren ungefähr 60 Erwachsene und sieben Kinder auf dem Camp. Manche waren die ganze Zeit dort, andere waren ein paar Tage dort, andere kamen nur für eine kurze Stippvisite vorbei. Alles in Allem einfach grandios wie so unterschiedliche Menschen so gut miteinander umgegangen sind, ohne Zank und Ärger. So etwas erlebt man selten.</p>

<p>Schnell ist die Zeit auf der Wiese in Gedelitz vorbei. Es ist wieder Sonntag. Alle bauen ihre Zelte ab. Die Leute von der Orga bauen die Infrastruktur zurück. Die Küche, der Saal, die sanitären Anlagen müssen gereinigt werden.</p>

<p>Es war einfach wunderbar! Bis zum nächsten Jahr!</p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/fedicamp-2024</guid>
      <pubDate>Thu, 25 Jul 2024 10:58:36 +0000</pubDate>
    </item>
    <item>
      <title>Wann muss  ein Debian Server neu starten?</title>
      <link>https://text.tchncs.de/raspel/wann-muss-ein-debian-server-neu-starten</link>
      <description>&lt;![CDATA[Wie stellt man fest, ob ein Debian Server gebootet werden muss? Wenn die folgende Datei existiert, kann man dort sehen, was notwendig ist. Neustart von Diesnten oder des Systems:&#xA;!--more--&#xA;  $ cat /run/reboot-required&#xA;&#xA;needrestart&#xA;&#xA;  $ apt install needrestart&#xA;&#xA;Dieses Tool wird nach einem Update automatisch aufgerufen. Es zeigt die Dienste an, die veraltet sind und bietet den Neustart an. Ausschnitt nach einem Update: &#xA;&#xA;Auswahldialog needrestart&#xA;&#xA;Dieser Dialog kommt nur bei einer interaktiven Shell. Läft das Update von einem Cronjob aus, werden die Änderungen nur angezeigt&#xA;&#xA;  Jetzt werden die Dienste neugestartet oder zurückgestellt:&#xA;    Prüfe Prozesse...                                                                                  &#xA;  Prüfe Kandidaten...                                                                                &#xA;  Scanning processor microcode...                                                                     &#xA;  Prüfe Linux-Kernel...                                                                              &#xA;    Der laufende Kernel ist aktuell.&#xA;    Der Prozessor Mikrocode ist aktuell.&#xA;    Dienste werden neu gestartet...&#xA;  systemctl restart cups-browsed.service cups.service exim4.service   nfs-mountd.service nvidia-persistenced.service rpcbind.service rpc-statd.service ssh.service&#xA;    Dienste deren Neustart verschoben wurde:&#xA;  systemctl restart NetworkManager.service&#xA;  systemctl restart libvirtd.service&#xA;    Es müssen keine Container neu gestartet werden.&#xA;    Nutzer-Sitzungen mit veralteten Prozessen:&#xA;  raspel @ session #2: x-session-manag[1377]&#xA;  raspel @ user manager service: systemd[1349]&#xA; &#xA;&#xA;Fertig!&#xA;&#xA;Einfach per Script &#xA;   !/bin/bash&#xA;   if [ -e /run/reboot-required ]; then&#xA;   echo &#34;Der Server muss neu gestartet werden&#34;&#xA;   fi      &#xA;   if [ -e /run/reboot-required.pkgs ]; then&#xA;   echo &#34;Folgende Dienste müssen neu gestartet werden:&#34;&#xA;   cat /run/reboot-required.pkgs&#xA;   fi&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Wie stellt man fest, ob ein Debian Server gebootet werden muss? Wenn die folgende Datei existiert, kann man dort sehen, was notwendig ist. Neustart von Diesnten oder des Systems:

&gt; $ cat /run/reboot-required</p>

<h1 id="needrestart">needrestart</h1>

<blockquote><p>$ apt install needrestart</p></blockquote>

<p>Dieses Tool wird nach einem Update automatisch aufgerufen. Es zeigt die Dienste an, die veraltet sind und bietet den Neustart an. Ausschnitt nach einem Update:</p>

<p><img src="https://pixel.tchncs.de/storage/m/_v2/469184399238879090/3781ba7d4-1bb9dc/K4Q49rSPG5a4/e7F3IR6XUNPOcn9VYZ7LnkJx9zEAe4A0gpXFwvJj.png" alt="Auswahldialog needrestart"></p>

<p>Dieser Dialog kommt nur bei einer interaktiven Shell. Läft das Update von einem Cronjob aus, werden die Änderungen nur angezeigt</p>

<blockquote><p>Jetzt werden die Dienste neugestartet oder zurückgestellt:</p>

<p>Prüfe Prozesse...<br>
Prüfe Kandidaten...<br>
Scanning processor microcode...<br>
Prüfe Linux-Kernel...</p>

<p>Der laufende Kernel ist aktuell.</p>

<p>Der Prozessor Mikrocode ist aktuell.</p>

<p>Dienste werden neu gestartet...
systemctl restart cups-browsed.service cups.service exim4.service &gt; nfs-mountd.service nvidia-persistenced.service rpcbind.service rpc-statd.service ssh.service</p>

<p>Dienste deren Neustart verschoben wurde:
 systemctl restart NetworkManager.service
 systemctl restart libvirtd.service</p>

<p>Es müssen keine Container neu gestartet werden.</p>

<p>Nutzer-Sitzungen mit veralteten Prozessen:
 raspel @ session #2: x-session-manag[1377]
 raspel @ user manager service: systemd[1349]</p></blockquote>

<p>Fertig!</p>

<h2 id="einfach-per-script">Einfach per Script</h2>

<blockquote><p>!/bin/bash
if [ -e /run/reboot-required ]; then
      echo “Der Server muss neu gestartet werden”
fi<br>
if [ -e /run/reboot-required.pkgs ]; then
      echo “Folgende Dienste müssen neu gestartet werden:”
      cat /run/reboot-required.pkgs
 fi</p></blockquote>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/wann-muss-ein-debian-server-neu-starten</guid>
      <pubDate>Sat, 06 Jul 2024 16:43:32 +0000</pubDate>
    </item>
    <item>
      <title>Kein automatischer Kernelupdate bei Debian</title>
      <link>https://text.tchncs.de/raspel/kein-automatischer-kernelupdate-bei-debian</link>
      <description>&lt;![CDATA[Auf meiner Workstation (Debian 12), wird der aktuelle Kernel nicht mehr automatisch installiert. Wenn man ihn dann von Hand nachinstalliert, darf man nicht die Kernel-Header vergessen. &#xA;!--more--&#xA;&#xA;Sonst werden die NVIDA-Module nicht neu gebaut: &#xA;&#xA;   apt install linux-image-6.1.0-22-amd64 linux-headers-6.1.0-22-amd64&#xA;&#xA;Von Hand werden dei NVIDIA-Module mit&#xA;&#xA;   dpkg-reconfigure nvidia-kernel-dkms&#xA;&#xA;gebaut.&#xA;&#xA;Ursache&#xA;&#xA;Anfang des Jahres hatte es einen fehlerhaften Kernel bei Debian gegeben.&#xA;Daraufhin habe ich das Paket linux-image-amd64 gelöscht. Warum auch immer… Dieses Paket ist für alles andere verantwortlich.&#xA;&#xA;   apt install linux-image-amd64&#xA;&#xA;Warten wir auf das nächste Kernelupdate…&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Auf meiner Workstation (Debian 12), wird der aktuelle Kernel nicht mehr automatisch installiert. Wenn man ihn dann von Hand nachinstalliert, darf man nicht die Kernel-Header vergessen.
</p>

<p>Sonst werden die NVIDA-Module nicht neu gebaut:</p>

<blockquote><p>apt install linux-image-6.1.0-22-amd64 linux-headers-6.1.0-22-amd64</p></blockquote>

<p>Von Hand werden dei NVIDIA-Module mit</p>

<blockquote><p>dpkg-reconfigure nvidia-kernel-dkms</p></blockquote>

<p>gebaut.</p>

<h1 id="ursache">Ursache</h1>

<p>Anfang des Jahres hatte es einen fehlerhaften Kernel bei Debian gegeben.
Daraufhin habe ich das Paket linux-image-amd64 gelöscht. Warum auch immer… Dieses Paket ist für alles andere verantwortlich.</p>

<blockquote><p>apt install linux-image-amd64</p></blockquote>

<p>Warten wir auf das nächste Kernelupdate…</p>
]]></content:encoded>
      <guid>https://text.tchncs.de/raspel/kein-automatischer-kernelupdate-bei-debian</guid>
      <pubDate>Wed, 03 Jul 2024 14:12:05 +0000</pubDate>
    </item>
  </channel>
</rss>