<?xml version="1.0" encoding="utf-8"?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://niweau.de/nw/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>Thailand</title>
  <link>https://niweau.de/nw/jup/</link>
      <atom:link rel="self" type="application/rss+xml" href="https://niweau.de/nw/jup/feed/entries/rss?cat=Technik+Administration" />
    <description>...ein Daueraufenthalt</description>
  <language>en-us</language>
  <copyright>Copyright 2024</copyright>
  <lastBuildDate>Tue, 17 Sep 2024 15:51:08 +0200</lastBuildDate>
  <generator>Apache Roller 5.2.4</generator>
        <item>
    <guid isPermaLink="true">https://niweau.de/nw/jup/entry/subversion-grundinstallation</guid>
    <title>Subversion - Grundinstallation </title>
    <dc:creator>Kun Pho</dc:creator>
    <link>https://niweau.de/nw/jup/entry/subversion-grundinstallation</link>
        <pubDate>Wed, 2 Feb 2022 07:58:42 +0100</pubDate>
    <category>Technik Administration</category>
    <category>installation</category>
    <category>konfiguration</category>
    <category>subversion</category>
    <category>versionskontrolle</category>
            <description>
&lt;p&gt;&lt;h1&gt;&lt;span style=&quot;color: #787878;&quot;&gt;Der Teufel steckt oft im Detail&lt;/span&gt;&lt;/h1&gt; &lt;br/&gt;
  &lt;p&gt;... und das Detail ist teuflisch gut versteckt. Als Programmierer weiß man nicht nur, wie ein Versionskontrollsystem funktioniert, sondern auch wie man es installiert und konfiguriert. &lt;strong&gt;Stop&lt;/strong&gt; - Installation ok, Konfiguration ? Wie oft kommt dieses in 10 Jahren vor? Und schon wieder habe ich Stunden verbracht, mit der Fehlermeldung: &lt;em&gt;&lt;strong&gt;svn:Authorization failed! &lt;/strong&gt;&lt;/em&gt;&lt;span&gt;Es ist die schlichte Aussage, dass die Anmeldung ok war, aber die Berechtigungen für den Vorgang nicht ausreichen. Die vielen Stunden Suche und Recherche kannst Du Dir sparen, wenn Du eine gute Check-Liste hast. Nach erfolgreicher Installation geht es so für eine einfache SVN-Installation weiter.&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Die Beschreibung passt zu: OpenSuse Tumbleweed und Subversion 1.14.1 (r1886195)&lt;br /&gt; &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;h2&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Konfigurationsdateien &lt;/span&gt;&lt;/h2&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&lt;/span&gt;Subversion verteilt die Einstellungen auf globale und Repository-abhängige Parameter. Die globalen Einstellungen findest Du im Home-Verzeichnis des Eigentümers, dieses ist der User, der die Installation durchgeführt hat und das Verzeichnis dort heißt: &lt;em&gt;.subversion&lt;/em&gt;. Bei einer einfachen Installation interessiert mich nur, wie die Keystore-Abfrage &lt;em&gt;deaktiviert&lt;/em&gt; werden kann und das läßt sich in der Datei &lt;em&gt;config&lt;/em&gt; einstellen:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt; vi $HOME/.subversion/config&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt; password-stores =&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;kwallet-wallet =&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Beide Einträge&lt;strong&gt; leer&lt;/strong&gt; lassen. Mehr ist hier erstmal nicht zu tun.&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Die Einstellungen in den Repositories setzen natürlich voraus, dass sie bereits existieren:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt; mkdir -p /srv/svn/repos/&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;svnadmin create /srv/svn/repos/InternetPuzzle131&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Der Ordner &lt;em&gt;/srv/svn/repos/&lt;/em&gt; ist der Trailer für jedes Repository. Danach wird ein Repository für das Projekt &lt;em&gt;InternetPuzzle131&lt;/em&gt; angelegt. Die Aufruf-URL für dieses Repository ist dann: &lt;em&gt;&lt;span&gt;svn://192.168.1.10/InternetPuzzle131&lt;/span&gt;&lt;/em&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Statt der IP-Adresse kann natürlich auch ein &lt;strong&gt;bekannter&lt;/strong&gt; Hostname oder eine Domaine benutzt werden. Achtung! Bei allen Konfigurationen immer den vollen Pfad&amp;nbsp; mitnehmen. Es interessieren uns hier 3 Dateien. Sie liegem im Ordner /srv/svn/repos/&lt;em&gt;&lt;span&gt;InternetPuzzle131/conf&lt;/span&gt;&lt;/em&gt;: &lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;authz&lt;/em&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt; passwd &lt;/em&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;&lt;/em&gt; &lt;em&gt;svnserve.conf&lt;/em&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt; &lt;strong&gt;Alle Einträge&lt;/strong&gt; in den Konfigurationsdateien beginnen in &lt;strong&gt;Spalte 0&lt;/strong&gt;. Ein Leerzeichen vor einem Eintrag, wird auch als solches gelesen! Wir stellen hier die Berechtigungen ein. In &lt;strong&gt;authz&lt;/strong&gt; fügen wir die folgenden Zeilen ein:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;[InternetPuzzle131:/]&lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;* = r&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;niknak = rw&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;seinfreund = rw&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Sie Bedeuten: Im Repository &lt;em&gt;InternetPuzzle131 &lt;/em&gt;&lt;span&gt;gilt rekursiv vom Root-Verzeichnis &lt;/span&gt;&lt;span&gt;&lt;span&gt; (/)&lt;/span&gt;&lt;em&gt; &lt;/em&gt;abwärts für &lt;em&gt;anonymous-user&lt;/em&gt; die Lese-Berechtigung&lt;/span&gt;&lt;em&gt; &lt;/em&gt;&lt;span&gt;und die user:&lt;/span&gt;&lt;em&gt; niknak und seinfreund &lt;/em&gt;&lt;span&gt;haben zusätzlich die Schreib-Berechtigung. Da niknak und seinfreund die gleichen Berechtigungen haben, kann man sie auch in eine Gruppe zusammen fassen. Das sieht dann in authz so aus:&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&lt;span&gt;[groups]&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;span&gt;&lt;span&gt;nn_and_sf = niknak,seinfreund&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;[InternetPuzzle131:/]&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt; * = r&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;nn_and_sf = rw &lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;In &lt;strong&gt;passwd&lt;/strong&gt; werden die user mit Passwörtern beglückt &lt;img src=&quot;https://niweau.de/nw/images/smileys/smile.gif&quot; class=&quot;smiley&quot; alt=&quot;:-)&quot; title=&quot;:-)&quot; /&gt; Jeder Benutzer hat eine eigene Zeile. Das sieht dann so aus und braucht keine weitere Erklärung:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;[users]&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;niknak = knickknack&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;seinfreund = dideldumm&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;In &lt;strong&gt;svnserve.conf&lt;/strong&gt;&lt;span&gt; sind 4 Einstellungen zu machen:&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&lt;span&gt; &lt;/span&gt;anon-access = read&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;auth-access = write&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;password-db = passwd&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;authz-db = authz&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span&gt;Die ersten beiden Zeilen drücken das Gleiche aus, wie die file-bezogenen Berechtigungen aus authz, hier aber mit Bezug auf das Repository. Die letzten Beiden sind die Verweise auf die Dateien.&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span&gt;Jetzt sollten wir eigentlich fertig sein. Es funktioniert aber trotzdem noch nicht &lt;img src=&quot;https://niweau.de/nw/images/smileys/sad.gif&quot; class=&quot;smiley&quot; alt=&quot;:-(&quot; title=&quot;:-(&quot; /&gt;&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;h2&gt;&lt;span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Das teuflische Detail:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt; &lt;br/&gt;
  &lt;p&gt;&lt;em&gt;vi /etc/sysconfig/svnserve&lt;/em&gt; enthält die Start-Optionen für den Subversion-Daemon und die sind default auf &lt;strong&gt;Read only&lt;/strong&gt; gesetzt:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;SVNSERVE_OPTIONS=&amp;quot;-d &lt;span style=&quot;color: #ff005a;&quot;&gt;-R&lt;/span&gt; -r /srv/svn/repos&amp;quot;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;rcsvnserve stop&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;lösche das &lt;span style=&quot;color: #ff005a;&quot;&gt;-R&lt;/span&gt; und werde glücklich. &lt;img src=&quot;https://niweau.de/nw/images/smileys/smile.gif&quot; class=&quot;smiley&quot; alt=&quot;:-)&quot; title=&quot;:-)&quot; /&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt; SVNSERVE_OPTIONS=&amp;quot;-d -r /srv/svn/repos&amp;quot;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt; rcsvnserve start&lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Nun läßt sich das Repository ohne Fehler befüllen, z.B. mit: &lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;svn import /home/nicknak/ftp-Ordner/InternetPuzzle131/ file:///srv/svn/repos/InternetPuzzle131 -m Inital&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;div&gt;... und wenn es wieder raus soll mit:&lt;br /&gt;&lt;/div&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;svn co svn://localhost/InternetPuzzle131 /home/nicknak/InternetPuzzle131&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;aus dem lokalen Datei-System. &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;In Eclipse benutze ich das Plugin: &lt;em&gt;subversive SVN-Teamprovider&lt;/em&gt; und &lt;em&gt;NativeJavaHL&lt;/em&gt; - Connector. Beide über den üblichen Weg installieren und fertig. Das Grundsystem läuft somit reibungslos. Es gibt noch einen kleinen Fallstrick: Wenn Du Subversion als root installiert hast und Deinen ersten Commit absetzen möchtest stolperst Du über Diese Meldung:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Some of selected resources were not committed.&lt;br /&gt;Permission denied&lt;br /&gt;svn: Commit failed (details follow):&lt;br /&gt;svn: Can&apos;t open file &apos;/srv/svn/repos/KrimsKrams/db/txn-current-lock&apos;: Permission denied&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Das ist jetzt kein Faux pas, denn wenn Du die Versionskontrolle nur lokal einsetzen möchtest, ist dieses durchaus legitim. Es hebelt aber den Sinn der verteilten Entwicklung aus. Dann schauen wir uns mal den Verursacher an: &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;drwxr-sr-x 1 root root 310 Jun&amp;nbsp; 9 11:02 &lt;span style=&quot;color: #3d3fff;&quot;&gt;db&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Der Subversive-Client kommt nicht als authentischer root zum Server und die Subversion-Datenbank verhindert somit einen Schreibzugriff aus der Ferne, da hilft auch das Sticky-Bit nicht weiter. Die Berechtigungen für das db-Verzeichnis müssen also dem Client entsprechend angepasst werden.&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; Für für das Fine-tuning empfehle ich einen Blick in die&amp;nbsp; &lt;a target=&quot;_blank&quot; href=&quot;https://subversion.apache.org/docs/&quot;&gt;Apache - Doku&lt;/a&gt; und den Gesamt-Überblick in &lt;a href=&quot;https://svnbook.red-bean.com/de/1.5/index.html&quot; target=&quot;_blank&quot;&gt;Red-Bean&lt;/a&gt;.&lt;br /&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/p&gt;

</description>          </item>
    <item>
    <guid isPermaLink="true">https://niweau.de/nw/jup/entry/update-opensuse-bottle-auf-tumbleweed</guid>
    <title>Update Opensuse Bottle auf Tumbleweed </title>
    <dc:creator>Kun Pho</dc:creator>
    <link>https://niweau.de/nw/jup/entry/update-opensuse-bottle-auf-tumbleweed</link>
        <pubDate>Wed, 2 Feb 2022 07:54:59 +0100</pubDate>
    <category>Technik Administration</category>
    <category>linux</category>
    <category>opensuse</category>
    <category>update</category>
            <description>
&lt;p&gt;&lt;br /&gt; &lt;br/&gt;
  &lt;h2&gt; &lt;span style=&quot;color: #787878;&quot;&gt;Alcapone ist endlich eingetroffen&lt;/span&gt;&lt;/h2&gt; &lt;br/&gt;
  &lt;p&gt;Nach einem ganzen Monat Zollabwicklung in Bangkok und 2 Tagen Transport nach Atsamat ist meine Entwicklungsumgebung endlich zuhause eingetroffen. 500 Baht Zoll kann ich verschmerzen, denn Alcapone und Clyde haben es faustdick hinter den Ohren. Alcapone ist ein Linux-Server, der als Systementwicklungsumgebung eingerichtet ist und Clyde ist der dazu gehörende Client. Beide sind etwas in die Jahre gekommen, die kaum spürbaren Performance-Nachteile kann ich verschmerzen.&lt;/p&gt; &lt;br/&gt;
  &lt;div align=&quot;center&quot;&gt; &lt;br/&gt;
    &lt;p&gt;&lt;img src=&quot;https://www.niweau.de/bilder/andere/alcapone.jpg&quot; class=&quot;geraet&quot; align=&quot;middle&quot; /&gt; &lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Alcapone -  is home again&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;/div&gt; &lt;br/&gt;
  &lt;p&gt;Alcapone läuft auf der Basis eines NC6220 HP-Compaq-Notebooks, ein Großvater also. Das Betriebsystem ist noch Opensuse Bottle und da ich u.a. die Aircrack-ng Suite als Werkzeug benutzen möchte, ist hier dringend ein Update angesagt. Mir schwebt Tumbleweed vor - wird ja auch ziemlich in den Himmel gelobt. Alte Geräte eignen sich im übrigen hervoragend zur Nutzung der Basisdienste von z.B.: Aircrack-ng. Der Grund liegt in der Treiber- und Firmwarekompatiblität, dazu später mehr. Auf geht es, der Opa bekommt ein frisches Kleid.&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;h2&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Update auf Tumbleweed und Nacharbeiten&lt;/span&gt;&lt;/h2&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&lt;/span&gt;Das Neueinrichten&amp;nbsp; einer Systementwicklerumgebung ist eine sehr zeitaufwendige Angelegenheit, deshalb ist das Anfertigen einer Disc-Image-Copy ratsam. Ich beschreibe das Update hier jetzt so ausführlich, da hinterher doch so einige Überaschungen auf mich zu kamen. Der erste Schritt muss eigentlich nicht sein, denn ich habe ein Disc-Image. Es ist lediglich eine Alternative zur Rekonstruktion für ein Failure.&lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Das alte System auf den aktuellstem Stand bringen &lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt; &lt;span style=&quot;font-weight: normal;&quot;&gt;zypper up&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt; &lt;span style=&quot;font-weight: normal;&quot;&gt;zypper dup&lt;/span&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Wir sichern die alten Repositories &lt;/span&gt;&lt;br /&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;mkdir /etc/zypp/repos.d/old&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Wir richten die neue Repositories ein&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Die Source Repositories hinzufügen&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-oss repo-src-oss&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-non-oss repo-src-non-oss&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Das Ergebnis prüfen&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;zypper lr -u&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Upgrade ausführen&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;zypper dup&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Wenn wir eine Fehlermeldung in der Form: &amp;lt;dienstxy&amp;gt; needs glibc &amp;gt;= 2.28 erhalten, sieht es ganz schlecht aus. Wir können testen was bei uns installiert ist:&lt;/p&gt;&lt;br/&gt;
  &lt;p&gt; ldd --version&lt;br /&gt;&lt;span style=&quot;color: #ff1010;&quot;&gt;ldd (GNU libc) 2.18&lt;/span&gt;&lt;br /&gt;Copyright (C) 2013 Free Software Foundation, Inc.&lt;br /&gt;This is free software; see the source for copying conditions.&amp;nbsp; There is NO&lt;br /&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;Written by Roland McGrath and Ulrich Drepper.&lt;br /&gt;&lt;/p&gt;&lt;br/&gt;
  &lt;p&gt;Die glibc ist eine Basislib, aus der das System gebaut wurde und es gibt unendlich viele Dienste, tools, ... etc, die aus ihr erstellt wurden.&lt;br /&gt;&lt;/p&gt;&lt;br/&gt;
  &lt;p&gt;Glück gehabt, das Upgrade ist durch und es sieht &lt;strong&gt;nicht&lt;/strong&gt; nach einem Kapitalschaden aus. Einige ältere Dienste wie pureFtp wurden entfernt, es ist verkraftbar. Bevor es los geht mit den Fine tuning muss die Suse-Firewall konfiguriert werden. Sie ist gut und wird automatisch immer mit installiert, ich werde sie später aber durch den Kernel-Paket-Filter iptables ersetzen. Er bietet mehr Flexibilität. Zu tun ist zunächst:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;die öffentlichen Netzwerkadapter in der Firewall auf external setzen &lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;die öffentlichen Dienste auf external/internal setzen&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Es folgt Überraschung Nr.1&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt; &lt;strong&gt;ifconfig&lt;/strong&gt; fehlt in der Standard-Installation. Es wird durch  das &lt;strong&gt;iproute2util&lt;/strong&gt; package ersetzt. Es ist nicht weiter tragisch und ich biete einen groben Überblick der Command Pendants:&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;strong&gt;ifconfig&lt;/strong&gt; vers.&lt;strong&gt; ip&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;list adapters&lt;/em&gt; --&amp;gt; ifconfig --&amp;gt; ip a &lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;add adapter&lt;/em&gt; --&amp;gt; ifconfig eth0 add 192.168.1.5 --&amp;gt;&amp;nbsp; ip a add 192.168.1.5 dev eth0&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;del adapter&lt;/em&gt; --&amp;gt; ifconfig eth0 del 192.168.1.5 --&amp;gt;&amp;nbsp; ip a del 192.168.1.5 dev eth0&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;chg mac&lt;/em&gt; --&amp;gt; ifconfig eth0 hw ether 3c:a6:16:a1:b6:f7 --&amp;gt; ip link set dev eth0 address 3c:a6:16:a1:b6:f7&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;chg mtu&lt;/em&gt; --&amp;gt; ifconfig eth0 mtu 2000 --&amp;gt; ip link set dev eth0 mtu 2000&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;en/dis-able multicast&lt;/em&gt; --&amp;gt; ifconfig eth0 multicast --&amp;gt; ip link set dev eth0 multicast on&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;txquelength&lt;/em&gt; --&amp;gt; ifconfig eth0 txqueuelen 1200 --&amp;gt; ip link set dev eth0 txqueuelen 1200&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;promisc mode&lt;/em&gt; --&amp;gt; ifconfig eth0 mode promisc --&amp;gt; ip link set dev eth0 promisc on&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;monitor mode&lt;/em&gt; --&amp;gt; ifconfig eth0 mode monitor --&amp;gt; ip link set dev eth0 monitor on&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;en/dis-able allmulticast&lt;/em&gt; --&amp;gt; ifconfig eth0 allmulti --&amp;gt; ip link set dev eth0 allmulti on&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;en/dis-able adapter&lt;/em&gt; --&amp;gt; ifconfig eth0 down / up --&amp;gt; ip link set eth0 down / up&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;&lt;em&gt;en/dis-able arp&lt;/em&gt; --&amp;gt; ifconfig eth0 arp --&amp;gt; ip link set dev eth0 arp on&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;div&gt; &lt;br/&gt;
    &lt;p&gt;&lt;strong&gt;Network-Manager&lt;/strong&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Nach einer vollständigen Installation von Tumbleweed, ist in der Regel auch der Network-Manager installiert und grob konfiguriert. Das ist für alte Unix-Linux Hasen ungewöhnlich, denn wenn er läuft, ist der Zugriff auf die Netwerkkonfiguration nach alter Art blockiert, oder wirkungslos. Es geht im Wesentlichen um die Bedienung des Netzwerkes auf der Shell und hierbei im Speziellen um das Starten der Wifi-Verbindung. Deshalb folgt jetzt noch ein Überflug:&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Die Konfigurationsdatei findet man im Ordner:&amp;nbsp; &lt;em&gt;/etc/NetworkManager/system-connections &lt;/em&gt;&lt;span&gt;und sie heißt:&lt;em&gt; &amp;lt;ssid-name&amp;gt;.nmconnection&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Hier ein Muster für das Wifi-Netz mit der ssid Nils mit einer statischen IP-Adresse bei 192.168.1.8/24 auf dem Gerät wlp2s4 und einen DNS-Zugang bei&amp;nbsp; OpenDNS:&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;&lt;span style=&quot;color: #4c89ff;&quot;&gt;[connection]&lt;br /&gt;id=wlp2s4&lt;br /&gt;uuid=2957e8d5-6c82-3be7-8299-3b2767d239bf&lt;br /&gt;type=wifi&lt;br /&gt;permissions=&lt;br /&gt;timestamp=1639890507&lt;br /&gt;zone=public&lt;br /&gt;&lt;br /&gt;[wifi]&lt;br /&gt;mac-address-blacklist=&lt;br /&gt;mode=infrastructure&lt;br /&gt;ssid=Nils&lt;br /&gt;&lt;br /&gt;[wifi-security]&lt;br /&gt;key-mgmt=wpa-psk&lt;br /&gt;psk-flags=1&lt;br /&gt;&lt;br /&gt;[ipv4]&lt;br /&gt;address1=192.168.1.8/24,192.168.1.1&lt;br /&gt;dns=208.67.222.222;&lt;br /&gt;dns-search=208.67.220.220;&lt;br /&gt;method=manual&lt;br /&gt;&lt;br /&gt;[ipv6]&lt;br /&gt;addr-gen-mode=stable-privacy&lt;br /&gt;dns-search=&lt;br /&gt;method=auto&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Wenn solch eine Minimalkonfiguration vorhanden ist, läßt sich die Wifi-Verbindung wie folgt starten:&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt; Checke Geräte: &lt;strong&gt;nmcli device&lt;/strong&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;DEVICE&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONNECTION&lt;br /&gt;wlp2s4&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; connected&amp;nbsp;&amp;nbsp;&amp;nbsp; wlp2s4&lt;br /&gt;enp16s0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ethernet&amp;nbsp; unavailable&amp;nbsp; --&lt;br /&gt;lo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loopback&amp;nbsp; unmanaged&amp;nbsp;&amp;nbsp;&amp;nbsp; --&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Checke Verbindungen:&lt;strong&gt; nmcli connection&lt;/strong&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; UUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEVICE&lt;br /&gt;wlp2s4&amp;nbsp;&amp;nbsp;&amp;nbsp; 2957e8d5-6c82-3be7-8299-3b2767d239bf&amp;nbsp; wifi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wlp2s4&lt;br /&gt;eth0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a3986d28-9c1c-38d6-97a3-e915a386ec7d&amp;nbsp; ethernet&amp;nbsp; --&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Wie man sieht ist wlp2s4 schon am Wifi bereits angemeldet. Ist dieses nicht der Fall, einfach die nächsten 4 Schritte durchlaufen. &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Netzwerk starten: &lt;strong&gt;nmcli networking on&lt;/strong&gt; &lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Wifi starten: &lt;strong&gt;nmcli radio wifi on&lt;/strong&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Am Wifi anmelden: &lt;strong&gt;nmcli --ask device connect wlp2s4&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Pasword eingeben: .... und fertig - angemeldet.&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Das Ganze läßt sich dann auch in ein Shell-Script verpacken und mit dem SystenV daemon über den Bootlevel starten:&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;&lt;span style=&quot;color: #2e30ff;&quot;&gt;#! /usr/bin/bash&lt;br /&gt;&lt;br /&gt;nmcli networking on;&lt;br /&gt;nmcli radio wifi on;&lt;br /&gt;echo &amp;quot;&lt;em&gt;password&lt;/em&gt;&lt;br /&gt;&amp;quot; | nmcli --ask device connect &lt;em&gt;wlan-device&lt;/em&gt;;&lt;br /&gt;exit 0;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;.... der Zeilenumbruch nach dem password, simmuliert uns ein &lt;em&gt;Eingabe-Enter&lt;/em&gt;. So läuft der Aufbau zum Wifi automatisch durch. &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;In diesem Zusammenhang passt auch noch die Erkenntnis, dass die /etc/services nicht mehr dort zu finden ist, wo Du sie eigentlich erwartest. Sie liegt neben anderen jetzt hier: &lt;/p&gt;


&lt;p&gt;    &lt;p&gt;&lt;span style=&quot;color: #ff005a;&quot;&gt;&lt;span style=&quot;background-color: #f0fffa;&quot;&gt;alcapone:/home/gebaavr/proto #&lt;/span&gt;&lt;/span&gt; ls&lt;strong&gt;&lt;font size=&quot;4&quot;&gt; /usr/etc&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;color: #0003ff;&quot;&gt;default&amp;nbsp;&lt;/span&gt; lesskey&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; login.defs&amp;nbsp; nsswitch.conf&amp;nbsp;&lt;span style=&quot;color: #0003ff;&quot;&gt; profile.d&lt;/span&gt;&amp;nbsp; securetty&amp;nbsp; &lt;span style=&quot;color: #0003ff;&quot;&gt;skel&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vdpau_wrapper.cfg&amp;nbsp; &lt;span style=&quot;color: #0003ff;&quot;&gt;xdg&lt;/span&gt;&lt;br /&gt;ethers&amp;nbsp;&amp;nbsp; lesskey.bin&amp;nbsp; networks&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0003ff;&quot;&gt; pam.d&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocols&amp;nbsp; &lt;font size=&quot;4&quot;&gt;&lt;strong&gt;services&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp; SUSE-brand&amp;nbsp; &lt;span style=&quot;color: #0003ff;&quot;&gt;X11&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;/div&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;/ul&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Es folgt Überraschung Nr.2&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt;Alcapone ist altersschwach und er vergisst Datum und Uhrzeit. Ich brauche den ntp-service. Aber wo zum Teufel ist die ntp.conf?&amp;nbsp; Wer nacht ntpd und ntp.conf sucht wird enttäuscht - der daemon heißt in Tumbleweed chronyd und die conf entsprechen /etc/chrony.conf. Wer es schnell mag kann die Konfiguration in Yast erledigen. Aus alter Tradition benutze ich den Zeitserver ptbtime1.ptb.de der Physikalisch-Technische Bundesanstalt in Braunschweig. Der chronyd ist bereits eingerichtet und startet zur Bootzeit. Alcapone hat leider keine Möglichkeit die Zeitparameter über die System-BIOS-Oberfläche zu setzen. Hier ein Tip wie man sich Helfen kann, wenn das Booten überhaupt nicht klappt:&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; Ich habe einen bootfähigen USB-Stick mit einer älteren Linux-Distribution, die auch mit Fantasiezeiten bootet. Beim Booten das &lt;em&gt;rescue system&lt;/em&gt; aus dem Bootmenü starten. Wenn die Konsole dann da ist, die Zeit setzen:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;date -s &amp;quot;YYYY-MM-TT hh:mm:ss&amp;quot;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Nachdem die Zeit gesetzt ist, diese in die Hardware-Clock, also BIOS zurückschreiben:&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;hwclock -wu&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;...dann reboot ohne Stick&lt;br /&gt;&lt;br /&gt;Hier sind die Zeichenpendants für deutsche Tastatur in englischer Systemumgebung:&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ß -&amp;gt; -&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ö -&amp;gt; :&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ä -&amp;gt; &amp;quot;&lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Es folgt Überraschung Nr.3&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt;Wie erwähnt läuft der Zeit-daemon nach der Installation bereits in seinen Run-Leveln. Was ist mit all den anderen, die ich noch brauche und wo zum Teufel ist /etc/init.d mit dem rc-tree geblieben. Dort wo ich den Ordner init.d erwartet hatte, prangt jetzt:&amp;nbsp; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lrwxrwxrwx 1 root root 35 May&amp;nbsp; 1 11:04 init.d -&amp;gt; /usr/java/latest/.java/init.d/jexec&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Ich kann nicht sagen, ob dieses durch die Installation von einem JDK verursacht wurde, da ich dieses recht voreilig gemacht hatte und den /etc/-Ordner vorher nicht genau untersucht hatte. Lassen wir das. Tumbleweed unterstützt vorrangig das SystemD und SystemV mit init.d und rc.d ist damit obsolete. Hier ist ein kleiner Überblick.&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;default runlevel ändern --&amp;gt; systemctl set-default multi-user.target&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;default runlevel abfragen --&amp;gt; systemctl get-default &lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;runlevel wechseln --&amp;gt; systemctl isolate multi-user.target / graphical.target&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;reboot--&amp;gt; systemctl reboot / shutdown&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;status.. etc --&amp;gt; systemctl status/start/stop sshd&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;current status --&amp;gt;&amp;nbsp; systemctl is-enabled sshd&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;init PID 0 ... funktioniert natürlich auch noch:&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;init 0 ---&amp;gt; shutdown&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;init 3 ---&amp;gt; switch to runlevel 3 multiuser&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;init 5 ---&amp;gt; switch to runlevel 5 graphical&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;init 6 ---&amp;gt; reboot&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;... und dazu die Abfrage runlevel ---&amp;gt; N 3 &lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;Die spannende Frage ist jetzt: Wie bekommen ich meine Services in die Runlevels und den Bootprozess?&lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Es folgt ein Beispiel für den Apache Tomcat Server:&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt; Es werden 2 Dateien benötigt &lt;strong&gt;start-stop-daemon.sh&lt;/strong&gt; und &lt;strong&gt;daemon.service. &lt;/strong&gt;&lt;span&gt;Für den Tomcat nenne ich die Service-Datei auch &lt;strong&gt;Tomcat.service&lt;/strong&gt; und sie sieht dann so aus:&lt;/span&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;&lt;span&gt;&lt;/span&gt;[Unit]&lt;br /&gt;Description=rctomcat&lt;br /&gt;&lt;br /&gt;[Service]&lt;br /&gt;Type=oneshot&lt;br /&gt;ExecStart=/usr/share/apache-tomcat-9.0.45/bin/daemon.sh run&lt;br /&gt;ExecStop=/usr/share/apache-tomcat-9.0.45/bin/daemon.sh stop&lt;br /&gt;RemainAfterExit=yesgaoff&lt;br /&gt;&lt;br /&gt;[Install]&lt;br /&gt;WantedBy=multi-user.target&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Der daemon.service wird mit /etc/systemd/system verlinkt.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;&amp;nbsp; ln -s /usr/share/apache-tomcat-9.0.45/bin/tomcat.service tomcat.service&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;Der start-stop-daemon.sh muss ausführbar sein. Wie man an der *.service Datei und den Link erkennt, spielt es keine Rolle, wo sie liegen. Der Link und der Eintrag in der *.service-Datei in der Sektion Service sind entscheidend. Die Datei daemon.sh ist in der Source-Distribution von Apache enthalten. Sie kann unverändert auf Tumbleweed eingesetzt werden. Es ist immer gut, einen &lt;em&gt;systemctl daemon-reload&lt;/em&gt; aufzurufen, um den system Daemon zu informieren. Es folgt ein letzter Schritt nach Bedarf:&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Dienst nur aktivieren&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;systemctl enable tomcat.service&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt;Dienst on boot aktivieren &lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;systemctl enable --now tomcat.service&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;div align=&quot;center&quot;&gt; &lt;br/&gt;
    &lt;p&gt;&lt;img src=&quot;https://www.niweau.de/bilder/andere/finalsystemD.jpg&quot; class=&quot;geraet&quot; align=&quot;middle&quot; /&gt; &lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Tomcat jsvc als wrapped Service&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;/div&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Es folgt Überraschung Nr. 4&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt;Sie hat weniger etwas mit Tumbleweed zu tun, sonder eher etwas mit der Default Installation des Gnu-C-Compilers. Der aktuelle C-Compiler im Repository ist die Version 10.1 und da verbirgt sich schon die Überraschung. Ab der Version gcc10 folgt Gnu dem aktuellen C-Standard und verwendet das CFLAG -fno-common als default. So läßt sich die AirCrack-Suite leider nicht compilieren und linken. Es gibt eine Reihe von externen Definitionen, die zunächst in Deklarationen umgewandelt werden müssen. Darüber hinaus sind Anpassungen im Gnu-Autobuild-System erforderlich, die die Linker und Compiler Flags umfassend anpassen. Viel Arbeit, die sich irgendwann mal auszahlt, aber nicht jetzt. Ich möchte auf den aktuellen C-Standard nicht verzichten, also brauche ich parallel zu gcc10 eine Version, die default im -fcommon Mode arbeitet. Die Version gcc9 wäre dann die nächste. Mit dem Linux Tool update-alternatives läßt sich dann nach Bedarf die richtige Version einstellen und siehe da, der Build flutscht durch, wie mit Vaseline geschmiert.&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Die vorerst letzte Überraschung&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt;Sie hat auch weniger mit Tumbleweed zu tun. Die Version von Firefox aus dem Tumbleweed-Repositorie akzeptiert keine TSL/SSL-Verbindungen, die von let&apos;s-Encrypt zerifiziert wurden. Wer jetzt nur diesen Browser hat kann dieses nicht lesen und auch nichts ändern. Das ist Schade. Wer über einen anderen Browser verfügt, dies schliesst eine andere FireFox-Version ein, kann von dort das Zertifikat exportieren, auf den Tubleweed-Server übertragen und es dort in den FireFox importieren. Alle anderen Browser, die in meiner IT-Landschaft installiert sind, akzeptieren das Zertifikat. Das schliesst auch mein Android Smartphone ein. Import/Export Step by Step:&lt;/p&gt; &lt;br/&gt;
  &lt;ul&gt; &lt;br/&gt;
    &lt;li&gt;In trustet Firefox-Version&amp;nbsp; die 3 parallelen Striche oben rechts öffnen&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Options öffnen - das ist das Zahnrad&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Privacy &amp;amp; Security öffnen&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Im vorletzten Abschnitt Certificates - View Certificates öffnen&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Im oberen Menue Authorities auswählen&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Nach unten scrollen bis zu Digital Signiture Trust Co.&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Hier die Let&apos;sEncrypt Authority auswählen und exportieren&lt;/li&gt; &lt;br/&gt;
    &lt;li&gt;Das Export-Ergebnis auf gleichem Wege auf Tumbleweed in FireFox importieren.&lt;br /&gt;&lt;/li&gt; &lt;br/&gt;
  &lt;/ul&gt; &lt;br/&gt;
  &lt;p&gt;&lt;br /&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;div align=&quot;center&quot;&gt; &lt;br/&gt;
    &lt;p&gt;&lt;img src=&quot;https://www.niweau.de/bilder/andere/firefox.jpg&quot; class=&quot;geraet&quot; align=&quot;middle&quot; /&gt; &lt;/p&gt; &lt;br/&gt;
    &lt;p&gt;Let&apos;sEncrypt Authority&lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;/div&gt; &lt;br /&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;Zu guter Letzt die Paketinstallation&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt;Es hat sich erfreulicherweise nichts geändert. Hier nochmal der Ablauf am Beispiel Subversion:&lt;/p&gt; &lt;br/&gt;
  &lt;p&gt;Als root oder mit sudo &lt;br /&gt;&lt;/p&gt; &lt;br/&gt;
  &lt;pre&gt;zypper addrepo https://download.opensuse.org/repositories/devel:tools:scm:svn/openSUSE_Tumbleweed/devel:tools:scm:svn.repo&lt;br/&gt;
zypper refresh&lt;br/&gt;
zypper install subversion&lt;/pre&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;h3&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt; &lt;br/&gt;
  &lt;p&gt; &lt;/p&gt;&lt;/p&gt;

</description>          </item>
  </channel>
</rss>