Linux Stammtisch wieder in Präsenz

Moin Linuxer 🐧,

nach langer Corona bedingter Pause freut sich die Linux User Group Bremen wieder im Hackerspace Bremen ihren Linux Stammtisch vor Ort durchführen zu können!

Wir beginnen damit am Pfingstsonntag den 5. Juni 2022 um 19 Uhr.

Der Treff wird als hybride Konferenz abgehalten, um auch die Online-Community einzubinden; hierfür steht ein Videozugang zur Verfügung.

Wir freuen uns auf Eure Teilnahme vor Ort oder Hybrid.

Es grüßen Kerstin, Olri, ruelle (Ralf), Max, Markus, Frank und alle anderen…. 🙂

Die Hausordnung des Hackspace Bremen e.V. ist zu beachten.

LUG-Bremen Website auf neue uberspace Platform 7 migriert

Unsere LUG-Bremen Website wird seit Jahren von uns beim Hoster uberspace.de betreiben. Dort finden wir optimale Bedingungen vor, unsere Website auf einfache Art und Weise „Linux like“ zu betreiben.

Die dort bereitgestellte „Linux Umgebung Platform 6 “ ist aber nun an Ihrem normalen Kommerziellen Support (Red Hat RHEL6) „End of Live“ angekommen.

Das Team von uberspace.de hat im Hintergrund bereits eine neue Platform 7 (RHEL7) aufgesetzt und ein Migrations-Skript zu Verfügung gestellt.

Vor nunmehr bereits 30 Tagen wurde die Instanz www.lug-bremen.de von unserem Experten Sascha umgezogen.

Alles läuft wieder perfekt und wie ich finde noch viel schneller.

Vielen Dank dafür!

Installation von Skype auf Ubuntu 16.04 Xenial (64/32bit)

Installation des Programms Skype aus dem Ubuntu Partner Repository:

Nachfolgende Kommandos sind in einem Terminal einzugeben,
jeweils ohne das führenden $ Zeichen.

$ sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install skype

Aufruf über Programm Menü oder hier direkt auf der Kommandozeile:

$ skype

Wie kommt dieses Programm auf meinem Rechner …

Manchmal sitzt man an Terminal und schaut sich mit htop die Auslastung des Rechners an. Dabei fallen einem so manche neue Programme auf die man bisher noch nicht entdeckt hat. Im nachfolgenden Fall das Programm beam.smp.

Interessant sind nun zwei Dinge, erstens was macht das Programm überhaupt und zweitens wer hat das veranlasst das dieses Programm installiert ist, dauernd läuft und damit Speicherplatz und Rechnerzeit frisst?

Ermitteln welches Debian/Ubuntu Paket das Programm installiert hat ist einfach:

# dpkg -S beam.smp
erlang-base: /usr/lib/erlang/erts-6.2/bin/beam.smp

Nun kann mit dem Paketnamen erlang-base die Paketinformation abgerufen werden.

# aptitude show erlang-base
Paket: erlang-base
Zustand: Installiert
Automatisch installiert: nein
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: amd64
Unkomprimierte Größe: 13,4 M
Hängt ab von: procps, adduser, libc6 (>= 2.14), libsystemd0, libtinfo5, zlib1g (>= 1:1.2.2), init-system-helpers (>= 1.18~)
Empfiehlt: libsctp1 (>= 1.0.16+dfsg), erlang-crypto (= 1:17.3-dfsg-4), erlang-syntax-tools (= 1:17.3-dfsg-4)
Schlägt vor: erlang-tools (= 1:17.3-dfsg-4), erlang, erlang-manpages, erlang-doc
Kollidiert mit: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-doc (> 1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (<
1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2),
erlang-base
Ersetzt: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-dev (< 1:17.3-dfsg-4), erlang-dev (< 1:17.3-dfsg-4), erlang-doc (>
1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (< 1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4),
erlang-examples (< 1:17.3-dfsg-4), erlang-examples (< 1:17.3-dfsg-4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2), erlang-mode (< 1:12.b.1-dfsg-2),
erlang-mode (< 1:12.b.1-dfsg-2), erlang-nox (< 1:17.3-dfsg-4), erlang-nox (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-x11 (<
1:17.3-dfsg-4), erlang-x11 (< 1:17.3-dfsg-4)
Liefert: erlang-abi-15.b, erlang-abi-17.0
Beschreibung: Virtuelle Maschine für Erlang/OTP und Basisanwendungen
Dieses Paket enthält eine Erlang/OTP-Laufzeitumgebung. Sie wurde ohne HiPE-Unterstützung konfiguriert und erstellt (sie kompiliert nur zu Byte-Code). Das Paket enthält ferner einen
minimalen Satz an Erlang-Anwendungen:
compiler - kompiliert Erlang-Quelltexte zu Byte-Code;
erts - die Erlang-Laufzeitsystemanwendung;
kernel - Programm-Code zum Starten des Erlang-Laufzeitsystems;
ose - Code für das Betriebssystems Enea OSE;
sasl - die Systemarchitektur unterstützende Bibliotheksanwendung;
stdlib - Module zur Änderung von Listen, Zeichenketten, Dateien, usw.
Homepage: http://www.erlang.org/

Markierungen: devel::interpreter, role::program, uitoolkit::nurses

Über den Sinn dieses Paket sagt das leider noch nichts aus. Eine Auskunft über das Mutterpaket liefert aber folgendes.

aptitude show erlang
Paket: erlang
Zustand: nicht installiert
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: all
Unkomprimierte Größe: 51,2 k
Hängt ab von: erlang-base | erlang-base-hipe, erlang-dev, erlang-asn1, erlang-common-test, erlang-corba, erlang-crypto, erlang-debugger, erlang-dialyzer, erlang-diameter, erlang-edoc,
erlang-eldap, erlang-erl-docgen, erlang-et, erlang-eunit, erlang-gs, erlang-ic, erlang-inets, erlang-megaco, erlang-mnesia, erlang-observer, erlang-odbc, erlang-os-mon,
erlang-parsetools, erlang-percept, erlang-public-key, erlang-reltool, erlang-runtime-tools, erlang-snmp, erlang-ssh, erlang-ssl, erlang-syntax-tools, erlang-test-server,
erlang-tools, erlang-typer, erlang-webtool, erlang-wx, erlang-xmerl
Empfiehlt: erlang-jinterface, erlang-ic-java, erlang-mode, erlang-src, erlang-examples
Schlägt vor: erlang-manpages, erlang-doc
Beschreibung: Simultane, verteilte und funktionelle Echtzeitsprache
Die quelloffene, funktionale Programmiersprache Erlang wurde am Ericsson Computer Science Laboratory konzipiert.

Einige der Hauptmöglichkeiten von Erlang sind:
* Klare, deklaratorische Syntax und weitgehend frei von Nebeneffekten;
* Eingebaute Unterstützung für Echtzeit-, simultane und verteilte Programmierung;
* Für die Entwicklung von robusten und fortlaufend verarbeiteten Programmen konzipiert;
* Dynamische Ersetzung von Code zur Laufzeit.

Die Erlang-Veröffentlichung enthält auch OTP (Open Telecom Platform), das einen reichen Satz an Bibliotheken und Anwendungen liefert.

Dieses Pseudopaket installiert Laufzeit, Anwendungen, Quelltext und Code-Beispiele für Erlang/OTP sowie den Erlang-Bearbeitungsmodus für Emacs.
Homepage: http://www.erlang.org/

Markierungen: devel::TODO, devel::interpreter

Nun Gut, es handelt sich also um einen sicheren Interpreter für etwas das fortlaufend arbeiten soll. Das Was? und Warum? bleiben hier aber immer noch unbeantwortet.

Ermitteln wir mal warum dieses Paket eigentlich installiert wurde.

# aptitude why erlang-base
i cinnamon-core Hängt ab von cinnamon (>= 2.2)
i A cinnamon Hängt ab von libjs-jquery
i A libjs-jquery Empfiehlt javascript-common
i A javascript-common Schlägt vor apache2 (>= 2.4.6~) | lighttpd | httpd
i A yaws Liefert httpd
i A yaws Hängt ab von erlang-yaws (>= 1.98-4)
i A erlang-yaws Hängt ab von erlang-base (>= 1:17.1-dfsg) | erlang-base-hipe (>= 1:17.1-dfsg)

Ah, das sind die richtigen Hinweise, es handelt sich um ein Paket das vom cinnamon-core dem Desktop Manager, über die libjs-jquery, javascript-common und schliesslich als httpd (Webserver) in Form von yaws installiert worden. Wie angezeigt, täten es genauso gut apache2, lighttpd oder httpd. Hier wurde bei der Installation automatisch yaws ausgewählt, da der Dienst vielleicht besonders klein und Resources sparend oder wie oben erwähnt besonders sicher ist. Oder was auch immer …

Ein nahtloser Austausch der httpd Funktionalität wird mit dem Kommando:

# aptitude install lighttpd yaws-

erreicht.

Das besondere daran ist das nachfolgende – Minuszeichen hinter dem zu ersetzenden Paketnamen. Es ist damit der Neuinstallation des Paketes lighttpd nicht im Weg und es wird trotzdem eine komplette Deinstallation von allen abhängigen Paketen vermieden. Wäre das im diesen Fall erfolgt, hätte das den Desktop Manager (cinnamon-core) betroffen, was nahezu erstmal das halbe System deinstallieren hätte.

Das das Paket aber nur empfohlen wird, kann es potentiell auch entfernt werden hier würde ein

# aptitude remove javascript-common

die Sache bei der Wurzel packen und das System davon maximal befreien.

Debian unattended updates

Sicherheits Updates automatisch installieren lassen.

Unter Debian wacht erstmal kein Programm in der Taskleiste darauf, ob es für das System Updates gibt. Das ist auch gut so, weil ggf. sinnlos, denn evtl. läuft das System als Server ohne grafische Oberfläche oder es ist selten jemand eingeloggt. Es muss also ein Dienst gefunden werden, der ohne grafische Oberfläche oder Benutzerinteraktionen auskommt. Hier bietet sich das Paket unattended-upgrades an. Es erledigt die Aufgabe unter zur Hilfenahme des Dienstes anacron, auch auf Systemen die zeitweise ausgeschaltet sind, zuverlässig. Leider wird standardmäßig bei der Installation des Paketes genau das Automatische Updaten nicht aktiviert.

Die Nachfolgenden Beispiele zeigen die händische u. automatische Installation, sowie jeweils die Konfiguration der Automatischen Update Funktion.

Händische Paket Installation mit anschliessender Konfiguration:

# apt-get -q0 install -y unattended-upgrades

Paket Konfiguration zeigen:

# debconf-show unattended-upgrades
unattended-upgrades/enable_auto_updates: false

Konfiguration interaktiv ändern:

# dpkg-reconfigure unattended-upgrades

Konfiguration erneut zeigen:

debconf-show unattended-upgrades 
* unattended-upgrades/enable_auto_updates: true

Automatische Installation und Konfiguration:
1. Konfiguration für eine automatische Installation extrahieren:

# debconf-get-selections | grep unattended-upgrades
unattended-upgrades unattended-upgrades/enable_auto_updates boolean true

2. Laden der Konfiguration vor der eigentlichen Installation:

# debconf-set-selections <<EOF
unattended-upgrades unattended-upgrades/enable_auto_updates boolean true
EOF

3. Installation und automatische Konfiguration

# apt-get -q0 install -y unattended-upgrades

Features und Fails
Neben dem automatischen Aufruf, kann das neue Programm unattended-upgrades auch vom Superuser auf der Kommandozeile aufgerufen werden.
Hier stellt es sich als wahrer Könner beim Reparieren von defekten Paketen und nicht abgeschlossenen Konfiguration heraus.

Die Ausnahme bestätigt auch hier die Regel

# unattended-upgrades
Zwischenspeicher enthält beschädigte Pakete, wird beendet

Hier konnte etwas doch nicht automatisch repariert werden, leider fehlt dazu noch die passende e-mail von anacron die darauf hinweist, das etwas schief gelaufen ist. Ich muß mal suchen … wieder ein neuer Pflegefall …

Der Fehler konnte zwischenzeitlich gefunden werden, es war das Paket samba-libs, es war in einer alten Version installiert und wurde nicht automatisch ge-updated. Ein aptitude dist-upgrade hat den Weg für die neue Version frei gemacht und nun klappt auch wieder mit dem unattended-upgrades.

CentOS Admin Commands

Verifikation aller installierten RPM Pakete

  • rpm -V $(rpm -q -a)
S.5....T.  c /etc/bareos/bat.conf
S.5....T.    /usr/share/pear/.depdb
.......T.    /usr/share/pear/.depdblock
S.5....T.    /usr/share/pear/.filemap
.......T.    /usr/share/pear/.lock
S.5....T.  c /etc/yum/pluginconf.d/versionlock.list
prelink: /usr/bin/gnome-control-center: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-control-center
.M....G..    /var/log/gdm
.M.......    /var/run/gdm
fehlend     /var/run/gdm/greeter
.M.......    /usr/bin/amd-console-helper
prelink: /usr/lib64/fglrx/fglrx-libGL.so.1.2: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/fglrx/fglrx-libGL.so.1.2
prelink: /usr/lib64/libatiuki.so.1.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libatiuki.so.1.0
S.5....T.  c /etc/maven/maven2-depmap.xml
S.5....T.  c /etc/ssh/ssh_config
..5....T.  c /usr/lib64/security/classpath.security
S.5....T.  c /etc/rsyslog.conf
S.5....T.  c /etc/vdsm/vdsm.conf
S.5....T.  c /etc/sysconfig/nfs
S.5....T.  c /var/lib/nfs/etab
S.5....T.  c /var/lib/nfs/rmtab
S.5....T.    /sbin/rmt
S.5....T.  c /etc/bareos/bareos-sd.conf
.M.......    /var/lib/bareos/storage
prelink: /usr/bin/csslint-0.6: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/csslint-0.6
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
S.5....T.  c /etc/bareos/bareos-dir.d/webui-consoles.conf
.......T.  c /etc/bareos/bareos-dir.d/webui-profiles.conf
S.5....T.  c /etc/bareos/bconsole.conf
.......T.  c /etc/xinetd.d/rsync
S.5....T.  c /etc/bareos/bareos-fd.conf
prelink: /usr/bin/rsvg-convert: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-convert
prelink: /usr/bin/rsvg-view: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-view
prelink: /usr/lib64/libm17n.so.0.3.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libm17n.so.0.3.0
..5....T.  c /etc/inittab
..5....T.  c /etc/sysctl.conf
.......T.  c /etc/dnsmasq.conf
S.5....T.  c /etc/sudoers
S.5....T.  c /etc/hosts.allow
S.5....T.  c /etc/hosts.deny
S.5....T.  c /etc/printcap
prelink: /usr/bin/gnome-system-monitor: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-system-monitor
S.5....T.  c /etc/virt-v2v.conf
S.5....T.  c /etc/libvirt/libvirtd.conf
S.5....T.  c /etc/libvirt/qemu.conf
S.5....T.  c /etc/logrotate.d/libvirtd
S.5....T.  c /etc/sysconfig/libvirtd
.M.......    /var/cache/libvirt/qemu
S.5....T.  c /etc/libvirt/qemu-sanlock.conf
.M....G..    /var/lib/libvirt/sanlock
.M.......  c /etc/cups/subscriptions.conf
prelink: /usr/lib64/gimp/2.0/plug-ins/file-svg: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/gimp/2.0/plug-ins/file-svg
S.5....T.  c /etc/sysconfig/cpuspeed
S.5....T.  c /etc/bareos/bareos-dir.conf
prelink: /usr/libexec/ibus-engine-m17n: at least one of file's dependencies has changed since prelinking
S.?......    /usr/libexec/ibus-engine-m17n
S.5....T.  c /etc/login.defs
S.5....T.  c /etc/openldap/ldap.conf
S.5....T.  c /etc/pam_ldap.conf
.......T.    /etc/dhcp/dhclient.d/nis.sh
S.5....T.  c /etc/httpd/conf.d/ssl.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

Nachruf Michael Koehne (Kraehe)

Die Linux/Unix Szene in Bremen trauert um Michael Koehne alias (Kraehe,Kephra).

Er starb letzte Woche an den Folgen seiner Krebserkrankung.

Als alter Hase in Sachen Rechnertechnik und Unixoiden Betriebssystemen ist er vielen in lebendiger Erinnerung.

Sein Wirken in Bremen für die Verbreitung des freien Betriebsystems Debian GNU/Linux in den frühen Anfängen der 90′ Jahre ist unvergessen.

Als Mitglied der Linux User Group – Bremen war er bis zum Schluß der beständigste Teilnehmer des IRC-Channels #lug-bremen.

Sein letzter Log Eintrag ist datiert auf den 01.04.2016 @ 12:55pm (UTC).
FreeNode/#lug-bremen.txt:2863:T 1459515309 * kraehe hat die Verbindung getrennt

Wir drücken der Familie und allen Freunden unser tiefstes Bedauern aus.

R.i.P.

LUG-Bremen, Bremen den 6.4.2016

Roaming Raspberry Pi

Mit folgender Konfiguration wird ein Raspberry Pi 2 unter Raspbian 4.1 (Debian 8 Jessie) dazu gebracht automatisches WLAN roaming durchzuführen.
Die Lösung arbeitet mit dem Daemon wpa_supplicant im wpa-ap-mode 2. Dieser Daemon hat den Vorteil, im Betrieb keine grafische Oberfläche zu genötigen.

# Inhalt von /etc/network/interfaces:
# ----------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-driver wext
    wpa-ap-mode 2
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Die WLAN Konfigurationsdatei wpa_supplicant.conf spezifiziert dabei die zu verwendenden WLAN Netze und gleichzeitig deren Reihenfolge bei der Suche.

Die Datei wird am einfachsten mit dem (grafischen) Tool wpa_gui erstellt und verwaltet. Das Tool ist evtl. noch nach zu installieren mit:

sudo apt-get install wpagui

Nach dem Starten der grafischen Oberfläche mit startx, öffnen eines Terminals und Starten des Tools mit sudo wpa_gui & , kann Die eigentliche Konfiguration von neuen Netzen nun mit Hilfe von WLAN Scan entsprechender Auswahl und anschliessender Eingabe der WLAN Parameter erzeugt werden. Das Abspeichern der WLAN Konfiguration mit File->Save ist abschliessend Pflicht.

Um sicher zu gehen das in Zukunft alles auch automatisch funktioniert, sollte nun ein sudo reboot erfolgen.

Ein Prüfen mit welchem WLAN man gerade verbunden ist, kann auf der Kommandozeile mit Hilfe des Kommandos iwconfig jederzeit leicht durchgeführt werden.

# Beispiel Inhalt von /etc/wpa_supplicant/wpa_supplicant.conf
#------------------------------------------------------------
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="Android-AP-4711"
    psk=f72c74506cc80f080db5e2ece7fc830b1435c7b31785838051bfe6ec413814e2
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
}

network={
    ssid="Welcome-Netz"
    key_mgmt=NONE
    auth_alg=OPEN
}

Vorstellung des Programms Structorizer

Vorgestellt wurde das Produktivitätstool Structorizer von structorizer.fisch.lu. Es ermöglicht die einfach Erstellung von Struktogrammen. Gewöhnlich eine trockene Sache, die von den meisten Programmieren als *Pflicht* erst nach der eigentlichen Programmierung erledigt wird. Nicht so bei Strukturizer, dieses Tool macht im Vorfeld der Programmierung schon riesigen Spass. Neben der intuitiven Modellierung der Strukturen mit Drag & Drop, bietet es beim Entwickeln bereits eine interaktive Simulation des Verhaltens der Strukturen incl. des Unterprogrammaufrufs. Hierzu werden Variablen erkannt und Ein- Ausgabe Funktionen bereit gestellt. Der anschliessenden Source Code Export in diverse Sprachen steigert die Produktivität weiter. Der Export in Bild- und Papierform wird dabei dann eher zur Nebensache.