Warum gibt es eigentlich 2 udev rules Ordner?
Nämlich /usr/lib/udev/rules.d und /etc/udev/rules.d/
Werden die Regeln in beiden Ordnern ausgeführt, oder müssen die ggf. erst nach /etc/udev/rules.d/ kopiert werden?
Gruß
Warum gibt es eigentlich 2 udev rules Ordner?
Nämlich /usr/lib/udev/rules.d und /etc/udev/rules.d/
Werden die Regeln in beiden Ordnern ausgeführt, oder müssen die ggf. erst nach /etc/udev/rules.d/ kopiert werden?
Gruß
Man muss normalerweise nichts kopieren. Beide werden gelesen und in der Reihenfolge der Zahlen vorn im Namen abgearbeitet ... also nicht erst die eine Directory und dann die andere. Bei gleichem Namen wird nur das aus "/etc" genommen. Das in /etc ist die Spielwiese des lokalen Administrators und das in /usr ist die des Distributors. Wenn man also irgendwas ändern will, das nur in /usr vorkommt, dann kopiert man es nach /etc und ändert dann dort.
Fast richtig. Zuerst werden die Konfigurationen aus /etc/ gelesen. Sind dort Konfigurationen vorhanden (vom User erstellt), werden diese verwendet. Sind dort keine vorhanden, werden die Konfigurationen aus /usr/ (welche übrigens bei jedem Update eines entsprechenden Services/Paketes überschrieben werden) gelesen. Deswegen sollte man Änderungen, um diese dauerhaft zu machen, immer in /etc/ (im entsprechenden Unterverzeichnis) speichern. Dazu kopiert man am Besten die entsprechende Datei von /usr/ nach /etc/ und editiert die dort. Dann bleibt diese Änderung auch nach Updates erhalten.
Das gilt auch für dieses Problem.
Bei openSUSE läuft schon die Umstellung des Verzeichnisses /etc/ nach /usr/etc/. Dies wird in naher Zukunft passieren.
Welm
Fast richtig. Zuerst werden die Konfigurationen aus /etc/ gelesen. Sind dort Konfigurationen vorhanden (vom User erstellt), werden diese verwendet. Sind dort keine vorhanden, werden die Konfigurationen aus /usr/ (...) gelesen.
Tja. Ich bin tatsächlich nicht der Ansicht, dass die rules aus /usr nur gelesen werden, wenn es keine in /etc gibt. Und ich bin tatsächlich nicht der Ansicht, dass die Rules aus /etc verwendet werden bevor die rules aus /usr gelesen wurden.
Dann beantworte mir bitte mal folgende Frage :
Wie machst du Änderungen, die ein Update überleben, wenn diese Konfigurationsdateien in /usr/ doch Bestandteil des zu aktualisierenden Paketes sind (siehe Dateiliste)?
Die Nummerierungen (00-*.conf, 10-*.conf usw) dienen dazu, dass diese Konfigurationen, sofern nötig, in einer bestimmten Reihenfolge abgearbeitet werden. Das dürfte aber nur in Ausnahmefällen überhaupt notwendig sein, da eine Stärke von systemd (im Vergleich zu sysvinit) ist, dass die Dienste (falls möglich) parallelisiert gestartet werden.
Zu deiner Frage:
Warum gibt es eigentlich 2 udev rules Ordner?
Nämlich /usr/lib/udev/rules.d und /etc/udev/rules.d/
Standardregeln: /usr/lib/udev/rules.d/
Systemspezifische Konfiguration: /etc/udev/rules.d
Ereignisse werden mit allen Regeln abgeglichen, die in den Verzeichnissen /usr/lib/udev/rules.d/ (Standardregeln) und /etc/udev/rules.d (systemspezifische Konfiguration) enthalten sind.
Jedes Mal, wenn ein Gerät hinzugefügt oder entfernt wird, sendet der Kernel ein uevent, um udev über die Änderung zu informieren. Der udev-Dämon liest und parst beim Start alle Regeln aus den Dateien /usr/lib/udev/rules.d/*.rules und /etc/udev/rules.d/*.rules und lädt sie dauerhaft in den Speicher.
Siehe hier:
https://documentation.suse.com…admin/index.html#cha-udev
Und hier:
Welm
Dann beantworte mir bitte mal folgende Frage :
Wie machst du Änderungen, die ein Update überleben, wenn diese Konfigurationsdateien in /usr/ doch Bestandteil des zu aktualisierenden Paketes sind (siehe Dateiliste)?
Das machen wir beide doch völlig gleich. Ich hab den Eindruck, dass Du auf Stichworte reagierst und nicht auf das, was ich tatsächlich geschrieben habe.