# Überflüssige Konfigurationsdateien erkennen

## TheSmallOne

Hallo, 

also so wie ich das sehe ist es ja wohl so, dass ein emerge unmerge <paketname> zwar alle Binaries, Dokus, Libraries e.t.c. entfernt, die Konfigurationsdateien aber nicht anrührt... kann ja sein, dass man die nochmal braucht.

Nun ist es aber so, dass ich wenn ich nun in mein /etc Verzeichniss schaue, Unmengen an Dateien sehe, von denen ich bei einigen ziemlich sicher weiß, dass ich sie nicht mehr brauche, bei anderen hingegen weiß ich nichtmal zu welchem Paket sie gehören...

Gibt es irgendeinen Befehl, mit dem emerge bei einem unmerge auch Konfigurationsdateien entfernt, oder besser ein Programm, welches /etc nach unnötigen Dateien durchsucht?

----------

## Lenz

Hol' dir das script cruft, gibt's hier im Forum, einfach mal suchen. Das findet dir Dateien die zu keinem der installierten Paketen gehört.

Hab den Link noch rausgekramt: https://forums.gentoo.org/viewtopic-t-152618-highlight-cruft.html

----------

## TheSmallOne

-–- gelöscht -–-Last edited by TheSmallOne on Sat Dec 22, 2012 12:22 pm; edited 1 time in total

----------

## Lenz

Nein, so eine Option in Portage gibt's nicht. Aber dass er dir die Kernelmodule findet ist doch normal, weil die ja nicht per Portage installiert wurden. Bei mir funktioniert das Skript recht gut, ein bisschen Handarbeit ist aber schon angesagt.

----------

## c07

 *TheSmallOne wrote:*   

> (habe keinen cron-daemon installiert)

 

Aber mal gehabt und vergessen, auch sys-apps/cronbase zu deinstallieren?

Konfigurationen (solang man sie nicht geändert hat) kann man prinzipiell schon löschen lassen, wenn man zuvor CONFIG_PROTECT leert. Dann muss man aber auf das AUTOCLEAN verzichten.

----------

## Fauli

 *TheSmallOne wrote:*   

> Hm, naja ganz so toll ist das Programm zwar nicht (zeigt mir z.B. all meine Kernelmodule an, aber sowas wie /etc/cron.weekly (habe keinen cron-daemon installiert) findet es nicht), aber es ist zumidest schonmal ein Anfang...

 

Es gibt hier (https://forums.gentoo.org/viewtopic-t-254197.html) eine Weiterentwicklung von cruft.

Bitte auch diesen (https://forums.gentoo.org/viewtopic-p-2082722.html#2082722) Beitrag des Threads beachten!  :Wink: 

----------

## TheSmallOne

-–- gelöscht -–-Last edited by TheSmallOne on Tue Dec 25, 2012 10:36 pm; edited 1 time in total

----------

## c07

 *TheSmallOne wrote:*   

> Was macht AUTOCLEAN?

 

 */etc/make.conf.example wrote:*   

> # AUTOCLEAN enables portage to automatically clean out older or overlapping
> 
> #     packages from the system after every successful merge. This is the
> 
> #     same as running 'emerge -c' after every merge. Set with: "yes" or "no".
> ...

 

Der Punkt ist der, dass du beim Emergen niemals ein leeres CONFIG_PROTECT haben solltest, deshalb musst du dann das -c als eigenen Schritt ausführen.

----------

## Lenz

 *Fauli wrote:*   

>  *TheSmallOne wrote:*   Hm, naja ganz so toll ist das Programm zwar nicht (zeigt mir z.B. all meine Kernelmodule an, aber sowas wie /etc/cron.weekly (habe keinen cron-daemon installiert) findet es nicht), aber es ist zumidest schonmal ein Anfang... 
> 
> Es gibt hier (https://forums.gentoo.org/viewtopic-t-254197.html) eine Weiterentwicklung von cruft.
> 
> Bitte auch diesen (https://forums.gentoo.org/viewtopic-p-2082722.html#2082722) Beitrag des Threads beachten! 

 

Also Findcruft funktioniert bei mir schlechter als das Original cruft[tm]. Vor allem nervt das voll, dass das auch /mnt, /home und /root berücksichtigt. Aber das kann man wahrscheinlich irgendwie ausgliedern lassen. Trotzdem hatte ich damit auch so Probleme. Cruft lief besser.

----------

## Fauli

 *Lenz wrote:*   

> Vor allem nervt das voll, dass das auch /mnt, /home und /root berücksichtigt.

 

Wenn du findcruft nicht nach /usr/local installiert hast, musst du die Shell-Variable FINDCRUFT_CONFDIR auf "<Installationsverzeichnis>/lib/findcruft" setzen, sonst findet findcruft die Listen mit den zu ignorierenden Dateien nicht.

----------

## Lenz

Achso, dann liegt das wohl daran. Hab das per (inoffiziellem) ebuild installiert, scheint wohl ein Bug im ebuild zu sein.

----------

## Fauli

Ist denn FINDCRUFT_CONFDIR gesetzt? Und wenn ja, wie? (Ich frage, weil das Ebuild am Ende des Threads von mir ist...)

----------

## stahlsau

hi,

von den cruft-scripts halte ich irgendwie nichts, die finden mir zu viele false positives. Aber ist ja Geschmackssache.

Um rauszufinden ob die configs noch verwendet werden, kannst du "qpkg -f /pfad/zum/file" machen, wenn er was findet is das zugehörige Programm noch installiert, wenn nicht, kannste die Datei löschen. Ein bisschen umständlich, aber die meisten Dateien in /etc kennt man ja  :Wink: 

----------

## Lenz

 *Fauli wrote:*   

> Ist denn FINDCRUFT_CONFDIR gesetzt? Und wenn ja, wie? (Ich frage, weil das Ebuild am Ende des Threads von mir ist...)

 

Eingestellt hab ich nichts. Einfach nur ebuild installiert und ab dafür. Das war wohl der Fehler. Wo muss ich FINDCRUFT_CONFDIR setzen?

----------

## Fauli

Ein "source /etc/profile" nach dem Mergen sollte ausreichen. Dann müsste FINDCRUFT_CONFDIR = /usr/lib/findcruft sein.

----------

## Lenz

Stimmt, jetzt geht's. Danke  :Smile: . Wobei dieses Skript teilweise andere Dateien findet wie cruft. Also bislang lösch ich nur Dinge wo ich auch weiß, dass ich sie garantiert nicht mehr brauche und das Paket schon längst deinstalliert habe. Irgendwie bin ich mir unschlüssig was da wirklich Müll ist und was vielleicht nicht, bei den Sachen die mir nicht's sagen.

----------

## hoschi

ein gutes hat das ja, im gegensatz zu windows haben wir keine registry am halbs, die config-dateien legen nicht das ganze system mit der zeit lahm (den effekt kann man bei windows-xp nach wie vor beobachten, nur langsamer). aber es stimmt schon, portage könnte sich hier ruhig wie apt-get veralten und mit, ähh, ich glaube -p "prune" arbeiten.

----------

## c07

Ich halt es immer noch für eins der größten Defizite von Linux, dass es kein mit der Registry vergleichbares Konzept gibt (abgesehn von ein paar relativ unbedeutenden Ansätzen). Selbst eine absolut zugemüllte und mies implementierte Registry ist immer noch schneller, als mit grep oder gar sed in Dateien rumzuwühlen. Und ob man eine Registry oder Konfigurationsdateien aufräumt, macht keinen Unterschied. Abgesehn davon stören die ganzen Konfigurationsdateien im Home-Verzeichnis einfach mein ästhetisches Empfinden und sind auch sonst äußerst unpraktisch.

----------

## Lenz

LOL! Die Registry ist der größte Haufen Mist den ich je gesehen hab und ich bin äußerst froh, dass ich das unter Linux nicht haben muss. Schonmal probiert unter Windows Einstellungen z.B. bei einer Neuinstallation Einstellungen zu sichern? Viel Spaß, das ist fast unmöglich. Bei Linux dagegen: /etc /home gesichert und ab dafür.

----------

## Inte

Schimpft bitte nicht auf das Konzept der zentralen Konfigurationsverwaltung. Es gibt unter Linux einen (meiner Meinung nach) effizienten Ansatz: Elektra

Es gibt sogar eine Sprachanbindung für unser heißgeliebtes Python.  :Wink: 

Dezentrale Konfigurationsdateien sind IMHO ein Kropf! Wenn z.B. alle Non-Default-Einstellungen zentral verwaltet werden könnten, wäre auch ein etc-update überflüssig.

----------

## c07

Das wird zwar ziemlich OT, aber die Registry unter Windows ist ziemlich trivial zu sichern. Ist schließlich nur eine einzige bzw. ein paar wenige Dateien. Auch Teilbäume lassen sich völlig problemlos exportieren und importieren.

Nur die Konfigurationsdateien unter /home zu sichern, ist nicht ganz trivial. Vor allem wenn du nicht gleich den ganzen Cache von Mozilla und Ähnliches mitsichern willst. Auch in /etc ist vieles, was mit Konfiguration normalerweise nichts zu tun hat. Bis vor einiger Zeit war da sogar das komplette XKB drin. Die Sicherung ist deshalb auch relativ unbrauchbar. Du kannst sie später nicht einfach zurückspielen, sondern musst manuell die eigentliche Konfiguration selektieren, wenn du nicht mittlerweile womöglich geänderte Initskripts u.Ä. zerstören willst (bei Gentoo ist das auch schon ohne Veränderung verhängnisvoll). Es gibt halt einfach keine vernünftige Trennung der Konfiguration vom restlichen System.

----------

## Lenz

Wenn ihr meint. Ich seh das anders. Und sooo einheitlich ist das unter Windows keinenfalls. Das eine Programm speichert in die Registry, das andere ins Programmverzeichnis, wieder andere nach \Dokumente und Einstellungen\User. Und da ist dann auch z.B. der Mozilla-Cache drin. Also das ist für mich kein Argument.

Zumal es sich in der Regel in /etc um gut kommentierte Dateien handelt, wärend man in der Registry Kommentare vermisst. Vielleicht ist die Idee einer zentralen Konfigurationsverwaltung in einer Datenbank nicht so schlecht, aber dann bitte konsequent und besser umgesetzt, z.B. durch kommentierte Einstellungen, einer Möglichkeit tote Einträge gescheit zu entfernen, keine Defragmentierung usw. Ich stelle bei mir nur fest, dass die Registry immer aufgeblähter und aufgeblähter wird und das System träger und träger.

----------

## pablo_supertux

Und die Registry ist auch unübersichtlich, da findet man kaum, was man will, die Schlüssel sind in den wenigen Fällen eindeutig, ich meine damit, dass man sie leist und weiß, was drin gespeichert ist.

Ich bin Lenz Meinung, dass die Win reg. nicht einheitlich ist, alle Programme schreiben, wo sie wollen, und du als Administrator hast absolut keine Chance sowas zu verwalten, weil es nämlich danach gefragt ist, viele Programme schreiben krypitsche Daten und in den seltsamesten Orten der Registry, so dass man die Sachen nie im Leben finden kann. Viele Programme schreiben dort ihr Müll und kein Schwein weiß, was drin ist und du kannst es auch nicht entfernen, denn du weiß nicht, was du entfernen kannst und was nicht, es gibt keine Dokumentation, die dir etwas erklärt, alles muss du mehr oder wenig selber herleiten und nicht immer liegt man da richtig. Wenn du kein Admin. bist und trotzdem etwas für dich selber installieren willst, geht es auch nicht, weil du kein Schreib Recht in der registry hast ... es ist eine Katastrophe.

Dadegen ist unter POSIX Systeme so, dass es kein ein configure Skript gibt, dem du nicht sagen kannst, wo er die Konfigurationsdateien installieren soll, es gibt Dokumentation für die Konfigurationsdateien und die Dateien selber sind meistens übersichtlich. Ich finde mittels grep geht die Suche nach Einstellungen viel schneller als mit der "search" Funktion der Win Reg. und als Admin weißt du, wo was ist und kannst es auch verwalten. Auch ein normaler User kann seine Programme lokal installieren und ggf. die Konfigdateien bei sich selber installieren, ohne dass irgend ein System Prozess sich quer stellt und meckert.

----------

## TheSmallOne

-–- gelöscht -–-Last edited by TheSmallOne on Sat Dec 22, 2012 12:22 pm; edited 1 time in total

----------

## c07

Elektra hab ich noch nicht gekannt. Ich hätt gern einen noch weitergehenden Ansatz, der nicht rein textbasiert ist, aber dafür ist Elektra ziemlich konservativ und damit konsensfähig, sodass es sich auch wirklich durchsetzen könnte.

Kurz zusammengefasst: Es ändert eigentlich nichts, außer dass jeder konfigurierte Wert in eine eigene Datei kommt, die einen definierten Aufbau hat, um den Kommentar vom Wert zu trennen. Fast alle Metainformationen (Zugriffsrechte u.Ä.) stehn ganz normal im Inode. Das lässt sich dann natürlich gut hierarchisch organisieren, wobei alles unterhalb von /etc/kdb (System) bzw. ~/.kdb (userbezogene Konfiguration) liegt. Dazu kommt noch ein API und ein Kommandozeilentool, mit denen einfach auf die einzelnen Werte zugegriffen werden kann, aber prinzipiell ist auch der direkte Zugriff über das Dateisystem möglich.

Der Ansatz, das Dateisystem direkt als Datenbank zu benutzen, ist nicht neu (Portage macht das ja insbesondere in /var/db/pkg auch), ist aber nur mit Reiser wirklich effektiv zu machen. Natürlich könnte man auch ein Pseudodateisystem wie /proc/sys nehmen. In Gentoo bleibt durch dieses Konzept die prinzipielle Möglichkeit, bei der Deinstallation alle zugehörigen Einträge zu entfernen wie jede andere Datei auch, solang sie bei der Installation gesetzt worden sind. Tote Einträge kann Elektra aber auch über die letzte Zugriffszeit erkennen und beseitigen (wenn nicht mit noatime gemountet wird).

Letztlich bleibt es natürlich Sache der einzelnen Pakete, ob sie dieses Konzept ausschließlich, teilweise oder gar nicht nutzen wollen, wie auch in Windows kein Programm gezwungen werden kann, die Registry ordendlich zu benutzen (an Richtlinien mangelt es auch dort nicht). Prinzipiell hat ein Programm bei der Installation alle Rechte (bei Gentoo durch das Ebuild kontrolliert) und kann auch Trojaner installieren oder das System zerschießen. Ein Missbrauch lässt sich da nur dadurch verhindern, dass man halt nur vernünftige Programme installiert.

----------

## hoschi

 *Inte wrote:*   

> Schimpft bitte nicht auf das Konzept der zentralen Konfigurationsverwaltung. Es gibt unter Linux einen (meiner Meinung nach) effizienten Ansatz: Elektra
> 
> Es gibt sogar eine Sprachanbindung für unser heißgeliebtes Python. 
> 
> Dezentrale Konfigurationsdateien sind IMHO ein Kropf! Wenn z.B. alle Non-Default-Einstellungen zentral verwaltet werden könnten, wäre auch ein etc-update überflüssig.

 

Und was ist mit /etc/conf.d und /etc/profile?

Beide sind ja von Gentoo mehr und mehr dezentralisiert worden, was ich in Teilen auch recht skeptisch sehe und mich etwas nervt (PATH...arrrrrr!).

----------

## b3cks

Warum gräbst du fast zwei Jahre alte Threads aus?!  :Shocked: 

----------

## hoschi

Weil ich was nachschauen wollte, keine befriedigende Lösungen gesehen habe, und dann ueber das gequotete Posting gestolpert bin  :Very Happy: 

Jaja, Leichenfledern und so  :Wink: 

----------

