Ein paar Tipps zum Aktualisieren von openSUSE
Seit dem 25. Mai 2018 ist openSUSE Leap 15.0 verfügbar. Ein guter Grund mal ein paar Tipps zur Aktualiserung von openSUSE auf eine neue Version zu geben. Da ich für gewöhnlich mithilfe des Installationsmediums aktualisiere beziehen sich meine Tipps primär auf diese Methode. Aber gerade der Hinweis wie man verwaiste Pakete findet ist natürlich auch nach einem sogenannten Live-Upgrade hilfreich.
Der NVIDIA-Treiber
Meiner Erfahrung nach empfiehlt es sich den NVIDIA-Treiber vor dem Update zu deinstallieren. Bei früheren Versionen von openSUSE habe ich es ansonsten schon erlebt, dass auch nach hinzufügen des NVIDIA-Repositories für die neue Version noch der alte Treiber installiert bleibt. Dieser funktioniert dann allerdings nicht. Linux, bzw. X.org, ist an dieser Stelle zwar hart im Nehmen und nutzt dann automatisch Nouveau, aber dieser kann dem proprietären Treiber von NVIDIA leider nicht annähernd das Wasser reichen.
Sollte das System bereits aktualisiert und Nouveau aktiv sein, so empfiehlt es sich den alten NVIDIA-Treiber mittels zypper remove nvidia* komplett zu deinstallieren und anschließen neu zu installieren.
Eine Neuinstallation mittels zypper install --force hat bei mir in der Vergangenheit meißtens nicht den gewünschten Erfolg gebracht.
UEFI
Bei einem System welches sowohl im EFI-Modus als auch im Bios-Kompatibilitätsmodus starten kann ist es wichtig das Upgrade im selben Modus zu starten welchen das alte System nutzt. Bei openSUSE 42.2 endete ich dadurch, dass ich dies nicht getan habe, mit einem nicht bootfähigen System. Allerdings gibt es im Zweifelsfall einen einfachen Ausweg. Einfach auf dem bereits aktualisieren System das Update nochmal im richtigen Modus ausführen. Da alle Pakete schon aktualisiert sind und nur noch der Bootcode korrekt installiert werden muss, geht dies dann auch recht schnell.
Repositories
Bei einem Update mithilfe des Installationsmediums werden alle zusätzlichen Repositories aus dem System entfernt. Dies führt zu einem sauberen Update, kann aber zur Folge haben, dass man anschließend mühsam zusammensuchen muss woher man eine bestimmte Anwendung hatte. Hierzu empfiehlt es sich vor der Aktualisierung einen Überblick zu verschaffen welche Pakete man aus dritten Quellen installiert hat.
Die konfigurierten Repositories
Zypper kann einem mit repos -u die Liste der aktuell konfigurierten Repositories mit ihren URLs ausgeben.
So ist es, falls das Repository auch nach dem Update noch benötigt wird, möglich, durch einfaches Ersetzen der Versionsnummer in der URL, an das passende Repository der neuen Version zu kommen.
Auf meinem großen Rechner sieht dies dann zum Beispiel so aus:
> zypper repos -u
Die Repository-Prioritäten sind ohne Effekt. Alle aktivierten Repositorys teilen sich die gleiche Priorität.
# | Alias | Name | Aktiviert | GPG-Überprüfung | Aktualisierung | URI
---+---------------------------------+---------------------------------------------------------+-----------+-----------------+----------------+-------------------------------------------------------------------------------------
1 | code | Visual Studio Code | Ja | (r ) Ja | Ja | https://packages.microsoft.com/yumrepos/vscode
2 | download.nvidia.com-leap | nVidia Graphics Drivers | Ja | (r ) Ja | Ja | http://download.nvidia.com/opensuse/leap/42.3
3 | download.opensuse.org-non-oss | Haupt-Repository (NON-OSS) | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/42.3/repo/non-oss/
4 | download.opensuse.org-non-oss_1 | Aktualisierungs-Repository (Nicht-Open-Source-Software) | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/42.3/non-oss/
5 | download.opensuse.org-oss | Haupt-Repository (OSS) | Ja | (r ) Ja | Ja | http://download.opensuse.org/distribution/leap/42.3/repo/oss/
6 | download.opensuse.org-oss_1 | Hauptaktualisierungs-Repository | Ja | (r ) Ja | Ja | http://download.opensuse.org/update/leap/42.3/oss
7 | isv_ownCloud_desktop | The ownCloud Desktop Client (openSUSE_Leap_42.3) | Ja | (r ) Ja | Ja | http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/openSUSE_Leap_42.3/
8 | opensuse-guide.org-repo | Libdvdcss Repository | Ja | (r ) Ja | Ja | http://opensuse-guide.org/repo/openSUSE_Leap_42.3/
9 | packman.inode.at-suse | Packman Repository | Ja | (r ) Ja | Ja | http://packman.inode.at/suse/openSUSE_Leap_42.3/
10 | repo-debug | openSUSE-Leap-42.3-Debug | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/42.3/repo/oss/
11 | repo-debug-non-oss | openSUSE-Leap-42.3-Debug-Non-Oss | Nein | ---- | ---- | http://download.opensuse.org/debug/distribution/leap/42.3/repo/non-oss/
12 | repo-debug-update | openSUSE-Leap-42.3-Update-Debug | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/42.3/oss/
13 | repo-debug-update-non-oss | openSUSE-Leap-42.3-Update-Debug-Non-Oss | Nein | ---- | ---- | http://download.opensuse.org/debug/update/leap/42.3/non-oss/
14 | repo-source | openSUSE-Leap-42.3-Source | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/42.3/repo/oss/
15 | repo-source-non-oss | openSUSE-Leap-42.3-Source-Non-Oss | Nein | ---- | ---- | http://download.opensuse.org/source/distribution/leap/42.3/repo/non-oss/
Installierte Pakete eines Repositories anzeigen
Fragt man sich wozu ein bestimmtes Repository im System ist kann man sich mit zypper search --repo <repository-id> --installed-only die aus einem bestimmten Repository installierten Pakete anzeigen lassen.
Am Beispiel des NVIDIA-Repositories sieht das bei mir dann so aus:
> zypper search -r download.nvidia.com-leap -i
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...
S | Name | Zusammenfassung | Typ
---+---------------------------+-----------------------------------------------------------------------+------
i+ | nvidia-computeG04 | NVIDIA driver for computing with GPGPU | Paket
i+ | nvidia-gfxG04-kmp-default | NVIDIA graphics driver kernel module for GeForce 400 series and newer | Paket
i+ | nvidia-glG04 | NVIDIA OpenGL libraries for OpenGL acceleration | Paket
i+ | x11-video-nvidiaG04 | NVIDIA graphics driver for GeForce 400 series and newer | Paket
Verwaiste Pakete aufräumen
Nach dem Update lohnt es sich häufig verwaiste Pakete zu entfernen.
Solche kann man mit einer Kombination von zypper search und grep leicht auffinden:
> zypper search --details --installed-only --type package | grep Systempakete
i+ | Desurium | Paket | 0.8.0_rc10-3.1 | x86_64 | (Systempakete)
Möchte man ein Paket gerne behalten lohnt es sich mit zypper search --details <Paketname> zu schauen ob es eine andere Version des Paketes in einem der konfigurierten Repsitories gibt.
Findet sich dort keine Version, so lohnt meißtens ein Besuch auf https://software.opensuse.org.
Grid Autosport auf openSUSE 42.3
Grid Autosport ist ein zwar älteres, aber immer noch exzellentes Rennspiel das zwar kein definitiv Arcaderacer ist, einen aber auch nicht mit einem Hardcoresimulationsanspruch erschlägt. Ähnlich wie Gran Tourismo findet es einen exzellenten Mittelweg und ist, im Gegensatz zu diesem, auch auf Linux spielbar. Es eignet sich somit also auch für ein kurzes Rennen in der Mittagspause, was nicht heißt, dass man keine Stunden darin versenken kann. Leider lässt es sich unter openSUSE 42.3 aber nachdem man es per Steam heruntergeladen hat nicht direkt starten.

Das Problem
Nach dem Start rödelt der rechner kurz, es kommt aber kein Spielfenster hoch. Startet man Steam aus einer Konsole, so erscheint dort beim Versuch das Spiel zu starten folgendes:
>>> Adding process 17089 for game ID 255220
>>> Adding process 17089 for game ID 255220Installing breakpad exception handler for appid(steam)/version(1506500000)
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: /home/marix/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport)
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: /home/marix/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport)
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: /home/marix/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/../lib/x86_64/libcurl.so.4)
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: /home/marix/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/../lib/x86_64/libcurl.so.4)
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: /home/marix/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/../lib/x86_64/libcurl.so.4)
>>> Adding process 17090 for game ID 255220
/ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/GridAutosport: relocation error: /ephemeral/steam/marix/steamapps/common/GRID Autosport/bin/../lib/x86_64/libcurl.so.4: symbol ENGINE_load_builtin_engines, version OPENSSL_1.0.0 not defined in file libcrypto.so.1.0.0 with link time reference
Game removed: AppID 255220 "GRID Autosport", ProcID 17086
Hier liegt also eine Inkompatibilität zwischen der vom Spiel mitgebrachten Curl-Bibliothek und den von Steam mitgebrachten Bibliotheken SSL und Crypto vor.
Die Lösung aus dem Netz
Beim Googeln findet sich schnell eine Lösung welche vorschlägt libcrypto.so.1.0.0 aus der Steam-Runtime entfernen.
Dies löst auch das Problem mit Grid Autosport.
Allerdings hat diese Lösung auch Nachteile.
Da die Steam-Runtime modifiziert wird ist damit zu rechnen, dass das nächste Steam-Update die Dateien wiederherstellt und man die Datei erneut entfernen muss.
Außerdem kann es damit zu Problemen in anderen Spielen kommen welche sich auf die von Steam mitgelieferte Version verlasen.
Die bessere Lösung
Die obige Lösung weißt aber bereits den Weg zu einer besseren Lösung, denn sie funktioniert deshalb, weil openSUSE bereits kompatible Versionen der beiden Bibliotheken enthält. Tatsächlich betrifft dieses Problem einige Spiele welche von Feral Interactive portiert wurden. So ist auch Dirt Rally von diesem Problem betroffen. Für dieses Spiel findet sich eine Lösung welche sich Analog auch auf Grid Autosport anwenden lässt:
- Ins Spielverzeichnis wechseln:
cd <steam library>/steamapps/common/Grid\ Autosport/lib/x86_64. - Dort auf die libcrypto des Systems linken:
> ln -s /lib64/libcrypto.so.1.0.0 > ln -s /lib64/libssl.so.1.0.0
Diese Lösung ist besser, weil sie nur das einzelne Spiel betrifft und nicht global die Steam-Runtime beschädigt. Sie hat allerdings den Nachteil, dass sie kaputt gehen kann falls Steam mal die Dateien anfasst, z.B. bei einem Update. Updates von Grid Autosport sind aber deutlich seltener als solche von Steam selbst, und auf meinem System hat der Fix auch schon einige Patches überlebt.
Zwei neue Pakete für openSUSE
openSUSE Tumbleweed enthält jetzt zwei neue Pakete welche ich erstellt habe: python-emoji und python-ntfy. Ersteres hat es sogar noch in openSUSE Leap 15.0 geschafft.
Die Funktionalität von python-emoji ist schnell erklärt und trotzdem unglaublich nützlich, wie diese leichte Abwandlung des Beispiels aus der Paketbeschreibung auf PyPI zeigt:
>> import emoji
>> print(emoji.emojize('Python ist :thumbs_up:'))
Python ist 👍
Natürlich funktioniert dies sowohl in modernem Python als auch in klassischem Python.
Eines der Pakete welche von python-emoji profitieren ist python-ntfy.
python-ntfy ermöglichte es aus der Konsole Benachritigungen zu verschicken.
Diese können entweder auf der Arbeitsfläche angezeigt werden, oder über verschiedene Backends an ein Smartphone weitergeleitet werden.
Allerdings sind momentan noch nicht Backends auch für openSUSE paketiert.
Besonders praktisch ist der Befehl ntfy done.
Nutzt man diesen um einen lange laufenden Prozess zu starten, so bekommt man, sobald dieser fertig ist, eine Nachricht welche auch über Erfolg oder Misserfolg und die Laufzeit des Prozesses informiert.
Man kann sich also ganz gemütlich in die Hängematte legen während der Rechner ackert. 😉
Du fehlst
Ich bin kein Dichter, und vor allem ist dies vermutlich für niemanden in irgendeiner Art besonders wertvoll, doch das ist ohnehin nicht das, was es sein soll. Es ist in egoistischer Weise allein für mich, denn die Person, die ich hiermit anspreche, wird es niemals lesen können.
Nichts desto trotz, Dad, da ich dich leider nicht einfach anrufen kann, um Dir zu gratulieren, wärst Du trotz allem heute 69 Jahre alt geworden, hätten wir dich nicht schon vor so vielen Jahren an den Dämon des Namens...
Meltdown: Sicherheits-Bug auf Chip-Level in allen Intel CPUs der letzten Dekade
2018 beginnt mit einem großen Sicherheits-Bug auf Chip-Level, der aktuell Schlagzeilen macht und von Google-Forschern schon im Juni 2017 gefunden und veröffentlicht wurde.
Der Grund dafür, dass dieses Thema aktuell so heiß in den Medien diskutiert wird ist, dass dies ein signifikanter Bug auf Chip-Level ist, der alle modernen Intel CPUs der letzten Dekade und damit Millionen oder gar Milliarden Computer betrifft - und damit auch große Cloud-Anbieter wie Google, Microsoft, Amazon und auch alle...
openSUSE Leap 42.3 auf dem Raspberry Pi 2 ohne Monitor nutzen
Der Raspberry Pi 2 ist ein praktischer kleiner Rechner, und das dafür vorgesehene Raspbian auch eine gut gemachte Linux-Distribution. Hat man allerdings schon auf mehreren Rechner openSUSE im Einsatz ist es viel attraktiver dieses auch dort zu verwenden, zumal dies völlig problemlos möglich ist. Der Einsatz von Tumbleweed auf dem Raspberry Pi 2 ist im Wiki von openSUSE detailliert dokumentiert. Mit wenigen kleinen Änderungen lässt sich so auch openSUSE Leap auf dem Raspberry Pi 2 nutzen, und zwar ohne an diesen Monitor oder Maus anschließen zu müssen.
Die Installation eines Betriebssystem auf dem Raspberry PI erfolgt stets dadurch den passenden Installer auf seine SD-Karte zu kopieren.
Beim ersten Start wird diese dann passend eingerichtet.
Die passende Datei für openSUSE Leap 42.3 findet sich auf http://download.opensuse.org/ports/armv7hl/distribution/leap/42.3/appliances/.
Für den Betrieb ohne Tastatur und Monitor bietet sich die Variante Just enough OS (JeOS) an.
Damit findet man die passende Datei indem man die Downloadseite nach JeOS-raspberrypi2 durchsucht.
Aktuell ist dies http://download.opensuse.org/ports/armv7hl/distribution/leap/42.3/appliances/openSUSE-Leap42.3-ARM-JeOS-raspberrypi2.armv7l.raw.xz.
Es empfiehlt sich auch die Prüfsumme zu checken.
> sha256sum -c openSUSE-Leap42.3-ARM-JeOS-raspberrypi2.armv7l-2017.07.26-Build1.1.raw.xz.sha256
openSUSE-Leap42.3-ARM-JeOS-raspberrypi2.armv7l-2017.07.26-Build1.1.raw.xz: OK
sha256sum: WARNUNG: 14 Zeilen sind nicht korrekt formatiert
Die Warnung zu den nicht formatierten Zeilen liegt daran, dass der Inhalt mit PGP signiert ist. Die Signatur lässt sich mit GPG prüfen.
> gpg --verify openSUSE-Leap42.3-ARM-JeOS-raspberrypi2.armv7l-2017.07.26-Build1.1.raw.xz.sha256
gpg: Signatur vom Mi 26 Jul 2017 19:39:17 CEST mittels RSA-Schlüssel ID 3DBDC284
gpg: Korrekte Signatur von "openSUSE Project Signing Key <opensuse@opensuse.org>" [vollständig]
note: random_seed file not updated
Jetzt wo klar ist, dass das Image nicht beschädigt ist, kann man der Anleitung für Tumbleweed im openSUSE-Wiki folgen.
Achtung! Das Schreiben auf die SD-Karte kann, wenn man den falschen Gerätebezeichner erwischt, Daten auf einer anderen Platte zerstören.
Wenn man sich nicht 100% sicher ist welchen Gerätebezeichner die SD-Karte hat, dann kann man direkt nach dem Einstecken in dmesg nachsehen, welchen Bezeichner die Karte bekommen hat.
In meinem Beispiel hat der Kartenleser mehrere Einschübe, so dass gleich mehrere Geräte auftauchen, aber nur für das Gerät mit der SD-Karte wird die Kapazität (sd 8:0:0:3: [sdi] 15677440 512-byte logical blocks: (8.03 GB/7.48 GiB)) und die Partitionsliste (sdi: sdi1 sdi2 < sdi5 sdi6 > sdi3) ausgegeben.
> dmesg | tail -n 30
[13801.698740] EXT4-fs error (device sdi6): htree_dirblock_to_tree:986: inode #2: block 8582: comm dolphin: bad entry in directory: directory entry across range - offset=0(0), inode=4489218, rec_len=32780, name_len=129
[13814.445903] sdi: detected capacity change from 8026849280 to 0
[13897.279227] sd 8:0:0:3: [sdi] 15677440 512-byte logical blocks: (8.03 GB/7.48 GiB)
[13897.285959] sdi: sdi1 sdi2 < sdi5 sdi6 > sdi3
[14939.444590] usb 2-6: USB disconnect, device number 2
[37767.485975] usb 2-6: new SuperSpeed USB device number 3 using xhci_hcd
[37767.532474] usb 2-6: New USB device found, idVendor=8564, idProduct=4000
[37767.532478] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[37767.532479] usb 2-6: Product: USB3.0 Card Reader
[37767.532479] usb 2-6: Manufacturer: Realtek
[37767.532480] usb 2-6: SerialNumber: 201412031053
[37767.539943] usb-storage 2-6:1.0: USB Mass Storage device detected
[37767.546235] scsi host8: usb-storage 2-6:1.0
[37768.558079] scsi 8:0:0:0: Direct-Access Generic- USB3.0 CRW -0 1.00 PQ: 0 ANSI: 6
[37768.558355] sd 8:0:0:0: Attached scsi generic sg6 type 0
[37768.569622] scsi 8:0:0:1: Direct-Access Generic- USB3.0 CRW -1 1.00 PQ: 0 ANSI: 6
[37768.569862] sd 8:0:0:1: Attached scsi generic sg7 type 0
[37768.582535] scsi 8:0:0:2: Direct-Access Generic- USB3.0 CRW -2 1.00 PQ: 0 ANSI: 6
[37768.582758] sd 8:0:0:2: Attached scsi generic sg8 type 0
[37768.601427] scsi 8:0:0:3: Direct-Access Generic- USB3.0 CRW -3 1.00 PQ: 0 ANSI: 6
[37768.601678] sd 8:0:0:3: Attached scsi generic sg9 type 0
[37769.473299] sd 8:0:0:3: [sdi] 15677440 512-byte logical blocks: (8.03 GB/7.48 GiB)
[37769.473958] sd 8:0:0:0: [sdf] Attached SCSI removable disk
[37769.475113] sd 8:0:0:3: [sdi] Write Protect is off
[37769.475116] sd 8:0:0:3: [sdi] Mode Sense: 2f 00 00 00
[37769.475608] sd 8:0:0:1: [sdg] Attached SCSI removable disk
[37769.477768] sd 8:0:0:3: [sdi] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[37769.478227] sd 8:0:0:2: [sdh] Attached SCSI removable disk
[37769.484922] sdi: sdi1 sdi2 < sdi5 sdi6 > sdi3
[37769.488248] sd 8:0:0:3: [sdi] Attached SCSI removable disk
Um das Image auf die Karte zu schreiben benötigt man Root-Rechte.
Das Gerät muss von /dev/sdX auf den korrekten Bezeichner angepasst werden.
Für obiges Beispiel /dev/sdi.
> sudo -s
# xzcat openSUSE-Leap42.3-ARM-JeOS-raspberrypi2.armv7l-2017.07.26-Build1.1.raw.xz | dd bs=4M of=/dev/sdX iflag=fullblock oflag=direct
328+1 records in
328+1 records out
1377828864 bytes (1.4 GB, 1.3 GiB) copied, 147.571 s, 9.3 MB/s
# sync
Hierbei passiert folgendes:
-
xzcatentpackt das Image auf die Standardausgabe. -
ddübernimmt über die Standardeingabe das entpackte Image und schreibt es 1:1 auf das angegebene Gerät, und zwar ohne zu Puffern. -
syncstellt sicher, dass alle Daten auch wirklich geschrieben wurden und die Karte sicher entnommen werden kann.
Anschließend kann man den Raspberry Pi 2 mit den üblichen Schritten in Betrieb nehmen:
- Karte herausnehmen und in den Pi stecken,
- Netzwerk an den Raspberry Pi 2 anschließen,
- und dann Strom auf Pi geben.
Der initiale Start kann einige Zeit dauern. Bei mir waren dies gut anderthalb Stunden, mit einer schnelleren SD-Karte kann man hier aber Zeit sparen.
Hat man keinen Monitor am Raspberry Pi 2, so steht man nun vor der Herausforderung dessen Netzwerkadresse herauszufinden um sich mit dem zu verbinden.
Prinzipiell kann man diese herausfinden indem man nach dem letzten Gerät schaut, dass sich am Router angemeldet hat.
Löst der Router auch die von den Rechnern selbst gewählten Namen auf, so ist es sogar noch einfacher, da sich ein frisches openSUSE immer mit dem Rechnernamen linux meldet.
An einer Fritz!Box ist er deshalb als linux.fritz.box erreichbar.
Nun kann man sich also das erste mal anmelden. Der Nutzer ist root und das Passwort linux.
Hat man eine Fritz!Box also: ssh root@linux.fritz.box.
Beim ersten Anmelden sollte man gleich noch die Inbetriebnahme das Basissystems abschließen:
- Das Passwort ändern,
- dem eigenen SSH-Key per
ssh-copy-idauf dem Raspberry Pi Berechtigung zum Anmelden geben, - Updates einspielen,
- und den Hostnamen ändern.
Letzterer Schritt ist wichtig, da es sonst bei Inbetriebnahme eines weiteren Raspberry Pi zu kollisionen kommen kann und man sich unnötig die Auflösung der Netzwerkadresse des neuen Systems erschwert.
Das Just enough in JeOS ist übrigens durchaus ernst gemeint.
Wer sein System anschließend mit Ansible weiter einrichten möchte sollte dort noch Python komplett installieren: zypper in python3.
Ohne diesen Schritt kann es zu kuriosen Fehlermeldungen kommen, da Teile der Standardbibliothek in der minimalen Installation von Python fehlen.
AppArmor 2.12 - The Grinch is confined!
There is this old quote from LKML:
Get back there in front of the computer NOW. Christmas can wait.
[Linus "the Grinch" Torvalds, 24 Dec 2000 on linux-kernel]
The AppArmor developers followed this advise - John released AppArmor 2.12 yesterday (Dec 25), and I just submitted updated packages to openSUSE Tumbleweed (SR 560017).
The most visible changes in 2.12 are support for "owner" rules in aa-logprof and upstreaming of the aa-logprof --json interface (used by YaST). Of course that's only the tip of the christmas cookie ;-) - see the Release Notes for all details.
One important change in the openSUSE packages is that I intentionally broke "systemctl stop apparmor". The reason for this is "systemctl restart apparmor" - systemd maps this to stop, followed by start. This resulted in unloading all AppArmor profiles by the "stop" part and, even if they get loaded again a second later, running processes will stay unconfined unless you restart them. The systemd developers were unwilling to implement the proposed ExecRestart= option for unit files, therefore breaking "stop" is the best thing I can do. (See boo#996520 and boo#853019 for more details.)
"systemctl reload apparmor" will continue to work and is still the recommended way to reload the AppArmor profiles, but accidently typing "restart" instead of "reload" can easily happen. Therefore I chose to break "stop" - that's annoying, but more secure than accidently removing the AppArmor confinement from running processes.
If you really want to unload all AppArmor profiles, you can use the new "aa-teardown" command which does what "systemctl stop apparmor" did before - but who would do that? ;-)
Note that the above (except the recommendation to use "reload") only applies to Tumbleweed and Leap 15.
Wie man die Windows-Daten auf der EFI Boot Partition wiederherstellt
Solch ein Problem sollte bei einem wirklichen Könner der Computer Technologie nicht passieren, but unglücklicherweise sind wir alle nur Menschen. Das ist der Grund, warum ich versehentlich die EFI Boot Partition reformatierte, als ich Fedora 26 letztens installierte. Und deshalb hier also nun, wie man die Windows Daten auf der EFI Boot Partition wiederherstellt.
Voraussetzungen
Du brauchst
- einen Windows (10) USB-Stick oder eine Installations-DVD,
- und Deine EFI Boot Partition sollte in...
Open Beta für Call of Duty: WWII
Die Beta für PC läuft noch bis zum 2. Oktober 2017, wer also noch einen Blick auf das neue Call of Duty werfen möchte, genauer gesagt den Multiplayer-Part, der muss sich nun beeilen. Für alle die es noch nicht haben und lieber ein paar Zeilen darüber lesen möchten, anstatt sich direkt selbst in die Multiplayer-Schlacht zu werfen, hier also meine erste Einschätzung.
Open Beta
Über Steam läuft seit dem 29. Oktober 2017 die Open Beta zu Call of Duty: WWII. Das Spiel wurde heiß ersehnt und scho...
Das Purism Librem 5 - Open Source Freiheit für dein Smartphone
Ein Traum wird wahr; ein Smartphone mit dem Fokus auf Sicherheit und Privatsphäre, das komplett auf Open Source Technologie basiert.
Das ist, was das Purism Librem 5 geplant wurde zu werden: das erste Smartphone vollständig aufgebaut auf Open Source Software und Open Source kopatibler Hardware. Zuletzt erhielt das Projekt eine Menge Aufmerksamkeit als KDE und GNOME eine Partnerschaft mit Purism bekannt gaben, um das Librem 5 und dessen Entwicklung zu unterstützen.
Da die Fund-Raising-C...
