[lug-ld] Voneinander lernen, ohne Überheblichkeiten

Christian Boltz lug-ld at cboltz.de
So Jul 21 00:25:43 CEST 2019


Hallo Heinz, hallo zusammen,

Am Samstag, 20. Juli 2019, 20:53:16 CEST schrieb Pahle Heinz:
> Nochmal, mein Vorgehe bezüglich Mint:
> ZU 100% GELUNGEN, die Installation von Mint!!!
> ZU 100% GELUNGEN, Herrichtung Desktop nach meiner Art!!!
> [Letzteres war mir mit allen Vorgängern unmöglich, z.B. Ubuntu]

Das ist schonmal gut :-)

> ZU 0% GELUNGEN (in Windows-Sprache) das Upgraden.
> [Das will/muss ich lernen]

Den "technischen" Ablauf dazu (welche Programme und was Du machen musst) 
darf Dir jemand anders erklären - ich kenne hauptsächlich openSUSE, und 
das benutzt eine andere Paketverwaltung (ja, ich weiß, schon wieder so 
ein unbekannter Begriff - die Erklärung folgt weiter unten ;-)

Ich werde aber immerhin mal eine allgemeine Erklärung versuchen.

Soweit ich irgendwas zu Windows schreibe, basiert das großteils auf 20 
Jahre alten, eingerosteten Kenntnissen - falls also irgendwas inzwischen 
nicht mehr stimmt, bitte ich um eine Korrektur ;-)

> Was vermisse ich?
> Es wurde mir beim Studium vom Mathe-Prof "eingeprügelt", das habe ich
> als Lehrender übernommen und im Folgeleben immer angewendet:
> Definitionen an den Beginn einer Publikation stellen. Ich habe
> nirgends eine Definiton von Paketen gefunden, das vermisse ich, kann
> mir nur etwas zusammenreimen (halt zum Namen passend). Zum
> verständnisvollen Erklären gilt es aber ausdrücklich(!) zu beachten,
> dass auf der einen Seite tiefgehende "Linux-Schrauber" sitzen (die
> sich wunschgemäß ein BS zusammen compilieren können), auf der anderen
> Windows-Anwender, die Fertigprogramme einschl. des BS vorfinden. Das
> sollte ein Erklärer der Linux-Fraktion beachten, wenn er einen
> Windows-Anwender schlau machen will. In diesem Punkt haben zumindest
> die "Mintler" und andere versagt. Ich jedenfalls, kapier(t)e
> punktuell nix. 

Ich versuche mal eine Definition:

Ein Paket besteht aus
- zusammengehörigen Dateien (z. B. ein Programm)
- Abhängigkeiten, z. B. "benötigt die openssl-Bibliothek"
- diverse Metadaten (Name, Beschreibung, Version etc. - siehe [1] für 
  ein Beispiel)

Das alles zusammen steckt in einer Datei, und diese Datei ist das Paket.

Konkrete Beispiele für Pakete sind z. B.
- "MozillaFirefox" - Firefox
- "libreoffice" - LibreOffice
- "libopenssl1_1" - die Bibliothek "openssl", das "1_1" ist die 
  Versionsnummer, weil grundsätzlich mehrere Versionen einer Bibliothek 
  gleichzeitig installiert werden können

Als ganz grobe Erklärung probiere ich mal zwei Definitionen eines 
Pakets. Beide sind nicht 100% technisch korrekt, helfen aber vermutlich 
beim Verständnis.

a) Ein Paket ist eine Art ZIP-Archiv + ein paar zusätzliche Infos

b) Ein Paket ist ähnlich einer setup.exe unter Windows, mit zwei
   Ausnahmen:
   - das Paket enthält keine grafische Oberfläche o. ä., um sich selbst
     zu installieren - das übernimmt die Paketverwaltung
   - Bibliotheken werden grundsätzlich in eigene Pakete verpackt (+ 
     Vermerk der Abhängigkeit im Programmpaket), während eine setup.exe 
     (meines Wissens, Stand von vor 20 Jahren ;-) üblicherweise alle 
     nötigen Bibliotheken mitbringt.

Diese zwei Ausnahmen (und ein paar andere Dinge) werden von der 
Paketverwaltung abgedeckt.

> Noch etwas habe ich beim Studium gelernt. Wenns der
> Student nicht versteht, dann kann es am Prof liegen. Und das hat sich
> 1000fach bewahrheitet. Die richtigen Worte wählen, dazu Definitionen
> und jeder normal Bemittelte sollte verstehen.

Da werde ich nicht widersprechen ;-)

> Zuletzt: Ich widerspreche C.B., wie am Beginn angedeutet, denn ich
> muss beim Anwenden von Windows gar nichts über (ominöse) Pakete(?)
> wissen, hatte nie Probleme, kann auch nichts z.B. per Parameter
> beeinflussen.

Als ich das letzte Mal eine setup.exe benutzt habe (lang ist's her), 
konnte ich da schon ein paar Dinge beeinflussen:
- Installationsverzeichnis
- Auswahl optionaler Programmbestandteile, Plug-Ins etc.
- Desktop-Icon ja oder nein?

Das aber nur am Rand - ich weiß schon, dass Du unter Windows nichts über 
Pakete wissen musst und es trotzdem funktioniert.
(Auch wenn mich jetzt vermutlich ein paar Leute schlagen - sogar unter 
Linux müsstest Du ohne Kenntnisse, was ein Paket ist, arbeiten können. 
Im Zweifelsfall installierst Du eben ein Programm und kein Paket ;-)

> Linuxler vs. Windows-Menschen:
> Was ich immer wieder bei Linuxlern antreffe, ist, oft zwar gering
> dosiert, Häme gegenüber Windows-Betreibern. Konkret lese ich z.B.:
> "...mehr oder weniger schönen setup.exe". Die bisher funktionierenden
> Windos-Setups habe ich noch nie nach Schönheit bewertet. Keine
> Verbitterung meinerseits über kleine Häme, ich lächele (und denke mir
> etwas), lieber Christian.

Diesen Seitenhieb auf setup.exe sollte ich wohl erklären ;-)

Als "Abfallprodukt" erkläre ich dann auch gleich, was die 
"Paketverwaltung" so macht - anders kann ich den Seitenhieb auf 
setup.exe nicht erklären ;-)


Also: Unter Windows kommt jedes Programm mit einer setup.exe mit eigener 
grafischer Oberfläche, unterschiedlich vielen Einstellmöglichkeiten 
während der Installation etc. - auch wenn sich eine gewisse 
Grundrichtung eingebürgert hat, kann jede setup.exe anders aussehen und 
funktionieren.

Mit "mehr oder weniger schön" habe ich übrigens nicht das 
Hintergrundbild in der setup.exe gemeint ;-) sondern die teils 
unterschiedlichen Funktionen und Optionen. Beispielsweise lässt sich 
eine "dumme" Anleitung ("klicke x, dann klicke y"), wie man z. B. 
Firefox installiert, wegen der unterschiedlichen setup.exe nicht 1:1 auf 
die Installation von LibreOffice übertragen.


Unter Linux bekommst Du die Programme in Form von Paketen geliefert.
Diese Pakete enthalten wie oben erklärt "nur" Dateien und Metadaten, 
aber keinen Installer.

Deshalb brauchst Du ein Programm, um Pakete zu installieren, updaten 
oder zu löschen. Dieses Programm ist die Paketverwaltung, und existiert 
wahlweise in Form einer grafischen Oberfläche und eines 
Befehlszeilentools. 
Ich sehe das als großen Vorteil, weil man unabhängig vom zu 
installierenden Programm immer den gleichen "Installer", eben die 
Paketverwaltung, benutzt und daher für alle Pakete exakt die gleiche 
Benutzeroberfläche hat - egal, ob man gerade Firefox, LibreOffice oder 
einen Webserver installiert.

Die Paketverwaltung unterscheidet sich zwischen den Linux-Distributionen 
trotz großteils identischer Aufgaben und Ziele teilweise ziemlich stark 
(ja, ich bin mir der Ironie bewusst, dass das dem vorherigen Absatz in 
gewisser Weise widerspricht ;-)
Unter openSUSE gibt es "YaST" als grafische Oberfläche und "zypper" auf 
der Kommandozeile. Die Programmnamen für Mint darf Dir jemand anders 
sagen.

Die Paketverwaltung macht im Wesentlichen folgende Dinge:
- dem Benutzer die Liste der verfügbaren und installierten Pakete 
  anzeigen und Benutzerwünsche (Installation, Upgrade, Löschen eines 
  oder mehrerer Pakete) entgegennehmen
- den eigentlichein Inhalt der Pakete (also die Dateien) installieren
- in der Paketdatenbanken mitschreiben
  - welche Pakete in welcher Version installiert sind
  - welche Abhängigkeiten ein Paket hat
  - welche Datei zu welchem Paket gehört
  - die Prüfsumme aller Dateien eines Pakets
- die Metadaten des Pakets auswerten und
  - die in den Abhängigkeiten genannten Pakete, z. B. Bibliotheken, 
    installieren
  - sicherstellen, dass sich alle Pakete vertragen - z. B. verhindern, 
    dass ein zweites Paket eine schon vorhandene Datei installiert/
    überschreibt
- eine saubere Deinstallation ermöglichen, also alle zu einem Paket 
  gehörigen Dateien löschen und sicherstellen, dass die Abhängigkeiten 
  der verbleibenden Pakete immer noch erfüllt sind
(diese Liste ist garantiert unvollständig, sollte Dir aber schonmal 
einen Überblick verschaffen ;-)

Ein weiterer Unterschied: Linux-Distributionen kommen immer mit einem 
großen "Repository" (auf DVD und/oder online), in dem tausende Pakete/
Programme enthalten sind, die Du in der Paketverwaltung einfach 
auswählen und installieren kannst.
(Auch wenn der Vergleich böse ist - unter Windows werden nur Paint, 
Minesweeper und Notepad mitgeliefert. Ernsthafte Programme muss man dann 
einzeln mit der jeweiligen setup.exe installieren.)
Sogar ich brauche nur sehr selten Pakete aus externen Repositories - 
99,9% meiner Pakete/Programme werden direkt mit openSUSE ausgeliefert 
[2].

Ganz salopp erklärt: Unter Linux sagst Du der Paketverwaltung 
"installiere Firefox, Thunderbird und LibreOffice", und kurz danach sind 
diese Programme installiert - und zukünftige Sicherheitsupdates bekommst 
Du aus dem Repository der Distribution auch frei Haus geliefert.

Unter Windows musst Du erstmal die passende Downloadseite (für jedes 
Programm eine andere) finden, die jeweilige setup.exe runterladen und 
jedes Programm damit installieren.
Wenn Du Glück hast, prüft jedes Programm beim Start, ob es eine neue 
Version / Sicherheitsupdates gibt, und bietet ein Update an - aber das 
ist dann programmspezifisch und nicht zentral an einer Stelle.


> Die Frage hier beantwortet: Warum komme ich zu LUG?
> Und weiter: Warum interessiert mich Linux und welches Linux hätte ich
> gerne? a)
> Das Letzte zuerst, was ich mir wünsche: Ein fertiges Linux, das ich
> nicht zusammenstricken muss/will, das von der Anwenderseite(!), nicht
> intern, funktioniert wie Windows. Das hieße im speziellen
> Upgrade-Fall: Ich kriege mitgeteilt, dass Neues vorhanden ist und ich
> habe einen Start-Button (drücke, wann es mir passt). 

Das müsstest Du mit allen aktuellen Linux-Distributionen bekommen.
Im Idealfall mit einem kleinen Popup auf dem Desktop, wenn es neue 
Updates gibt - incl. Knopf zum Installieren.

> Das
> tabellarische Wissen um irgendwelche Abhängigkeiten, das soll mal
> klammheimlich und mir total verborgen die Software machen.

Genau das ist der Job der Paketverwaltung, und die macht das erstaunlich 
gut ;-)  (Ich spreche hier mal aus openSUSE-Sicht, mangels Erfahrung mit 
anderen Distributionen.)  Als "normaler Benutzer" musst Du also nicht 
wissen, was Abhängigkeiten sind - das läuft automatisch unter der Haube.

Apropos "normaler Benutzer" - ich zähle da wohl nicht mehr dazu ;-) weil 
ich u. a. ein paar Pakete in openSUSE "baue". Wenn man sowas macht, 
sollte man natürlich wissen, was Abhängigkeiten sind und sie ggf. beim 
Erstellen des Pakets mit angeben. Aber sogar beim Paketbau muss ich das 
nicht alles von Hand machen - Abhängigkeiten zu Bibliotheken werden 
automatisch erkannt und in den Paket-Metadaten hinterlegt.

> b)
> Linux interessiert mich, um ein wenig sicherer als unter Windows im
> web unterwegs zu sein. Ich weiß aber, dass die Linux-Programmierer
> nicht schlauer als die der Win-Fraktion sind. Der Vorteil liegt in
> den vielen, leicht unterschiedlichen Linux-Distributionen, die, ob
> der
> Unterschiedlichkeit (und mangels Verbreitung) uninteressant für
> Netz-Gauner sind. Offener Quellcode von Linux, der garantiert (fast)
> frei von Hintertürchen, wenn da auch einer mal nachschaut, wobei man
> halt, zu dumm, Heartbleed übersah. Es menschelt - überall.

Ich wage zu behaupten, dass die Menge und Schwere der Fehler unter 
Windows (oder allgemein bei kommerzieller Software) größer ist - aber 
ich stimme Dir auch zu, dass es überall Bugs gibt. Fehlerfreie Software 
schreiben hat leider noch niemand geschafft ;-)


Wenn Du die Zahlen vergleicht, behalte bitte im Hinterkopf, dass bei 
einer Linux-Distribution immer tausende Programme enthalten sind, und 
bei Windows gern mal nur die "Windows-Updates" des reinen 
Betriebssystems (fast) ohne Programme gezählt werden.

Mal als konkretes Beispiel: openSUSE Leap 42.3 hat im Lauf von zwei 
Jahren 901 Sicherheitsupdates und gut 800 andere Updates (z. B. nicht 
sicherheitsrelevante Bugfixes) bekommen [7], also 37,5 
Sicherheitsupdates und 33,3 sonstige Updates pro Monat - für alle 
Programme zusammen. Sogar wenn ich die Anzahl der gefixten CVEs [5] und  
Bugs einzeln rechne, komme ich "nur" auf  132 bzw. 223 pro Monat.

Wie viele Patches gibt es beim monatlichen Windows Patchday - nur fürs 
Betriebssystem und die damit ausgelieferten Basis-Bibliotheken? ;-)

> c)
> Die LUGer sind alles nette Menschen, man fühlt sich wohl im Club. Es
> geht da ja nicht nur um Linux mit Vorträgen dazu, was sich alles tut,
> sondern auch um allgemeines Computer- und Netzwerkwissen und immer
> wieder mal, um interessante technische Beiträge, so über'n Tisch
> geplaudert. Soweit die LUG-Treffen-Werbung, z.B. an Matthias
> gerichtet.

:-)

> Mit diesen positiven Worten, liebe Grüße von
> Heinz
> 
> PS, kann mir es doch nicht verkneifen:
> An meinem letzten Arbeitsplatz saß neben mir ein netter Linuxler. An
> der Hochschule wurden Linux und Windows parallel gebraucht/gelehrt.
> Als ich ausschied, länger her, hatte ich viel Linux vom Kollegen
> gelernt, der Kollege aber null Windows von mir (null Interesse bei
> ihm). Jedoch: Er wunderte sich immer wieder, dass ich alle Probleme
> mit Windows genauso gut/schnell löste, wie er unter Linux.
> Gibt es dazu nicht Parallelen? Einige LUGer werden im Büro mit Windows
> konfrontiert, könnten vielleicht auch noch dazu lernen oder sich das
> Leben mit Programmen eines gewissen hp erleichtern (wenn sie mögen).
> So z.B. für Backup: Bei Linux rsync, bei Windows mein BUX anwenden
> und total zwanglos vieles, vieles andere mehr.

Kein Widerspruch, aber ;-) ich erkläre aber trotzdem mal, wie es bei mir 
aussieht:

Ich habe jahrelang mit Windows (3.11 bis 98) gearbeitet und gebastelt 
(u. a. Programmierung mit Visual Basic [6]).
Irgendwann hat mir dann mal ein Bekannter Linux gezeigt und ich habe es 
parallel zu Windows installiert. Anfangs habe ich noch großteils Windows 
benutzt, aber innerhalb von ein paar Monaten hat sich das komplett 
umgedreht und auf Windows lag eine dicke Staubschicht. Inzwischen müsste 
meine erste Linux-Installation volljährig sein ;-) und ich lebe seit 
(geschätzt) 17 Jahren Windows-frei.

Falls ich tatsächlich mal auf einem fremden Rechner Windows benutzen 
muss, fluche ich jedesmal und frage mich, wie man sowas freiwillig 
verwenden kann ;-)  [3] [4]
Natürlich lässt sich das auch durch Gewohnheit erklären (so wie Windows-
User eben Windows und seine Eigenheiten gewohnt sind) - aber Du müsstest 
mir schon ein sehr hohes Schmerzensgeld zahlen, um mich zur Benutzung 
von Windows zu, äh, überreden ;-)

(Dazu kommen noch Nettigkeiten wie die automatische und nicht / extrem 
schwer abschaltbare Übertragung von Daten an Microsoft, aber das ist 
nochmal ein ganz anderes Thema.)


Und jetzt noch das Wort zum Sonntag - gilt für alle meine Mails, auch 
wenn ich es nur selten erwähne:
Falls irgendwas in meiner Mail unklar, unverständlich, zu technisch, ... 
ist, frag nach. Es gibt keine dummen Fragen, nur dumme Antworten ;-)


Gruß

Christian Boltz

PS: Die Fußnoten habe ich teilweise nachträglich eingebaut, daher ist
    die Nummerierung nicht fortlaufend.

[1] Metadaten des Pakets "MozillaFirefox" unter openSUSE:

# rpm -qi MozillaFirefox
Name        : MozillaFirefox
Version     : 67.0.4
Release     : 1.2
Architecture: x86_64
Install Date: Do 04 Jul 2019 14:20:22 CEST
Group       : Productivity/Networking/Web/Browsers
Size        : 180963901
License     : MPL-2.0
Signature   : RSA/SHA256, Di 02 Jul 2019 14:36:40 CEST, 
              Key ID b88b2fd43dbdc284
Source RPM  : MozillaFirefox-67.0.4-1.2.src.rpm
Build Date  : Di 02 Jul 2019 14:06:22 CEST
Build Host  : lamb78
Relocations : (not relocatable)
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://www.mozilla.org/
Summary     : Mozilla Firefox Web Browser
Description :
Mozilla Firefox is a standalone web browser, designed for standards
compliance and performance.  Its functionality can be enhanced via a
plethora of extensions.
Distribution: openSUSE Tumbleweed


[2] Der Vollständigkeit halber: Es gibt _sehr seltene_ Ausnahmen, in 
    denen Linux-Programme nicht als Paket kommen. Das kommt höchstens 
    bei irgendwelcher propietären Software vor, wenn (sorry für die böse 
    Formulierung) der Hersteller zu blöd ist, ein "richtiges" Paket zu 
    bauen. In diesen Fällen bekommt man dann etwas, das einer setup.exe 
    ähnelt und sich an der Paketverwaltung vorbei installiert.

[3] Mal als ein kleines Beispiel von vielen: Copy&Paste.
    Unter Linux bin ich gewohnt, dass ein Text in der Zwischenablage
    landet, sobald ich ihn markiere, und sich per Klick der mittleren
    Maustaste einfügen lässt.
    Dass das unter Windows so nicht geht (und ich entsprechend fluche),
    muss ich wohl nicht extra erwähnen ;-)

[4] Ich habe auch schon mehr als einmal langjährige Windows-Nutzer nach 
    dem Update auf Windows 10 fluchen gehört - neben "Linux vs. Windows"
    gibt es also auch Dinge wie "Windows 7 vs. Windows 10" oder, noch 
    schlimmer, "XP vs. Windows 10" ;-)

[5] Ein CVE ist die Beschreibung und Nummer einer einzelnen 
    Sicherheitslücke, siehe
    https://de.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures

[6] Will sonst noch jemand seine Jugendsünden beichten? ;-)

[7] Quelle: https://lists.opensuse.org/opensuse-security-announce/
2019-07/msg00000.html


-- 
Es gibt einen alten chinesischen Fluch, Captain:
    Mögest Du in interessanteren Zeiten leben!
Inzwischen ist es höchst interessant, wenn Neelix in der Küche brutzelt.
["Harry Kim" in Star Trek: Voyager - Der mysteriöse Nebel]