Ein paar allgemeine Fragen zu linux.



  • Wenn ich mir die sourcen eines Programms als *.tar.gz (oder *.tar.bz2 oder was auch immer) runterlade, in welches Verzeichnis werden die Sourcen normalerweise entpackt. Selbst nach der install (./configure, make, make install) braucht man ja die sourcen noch, um irgendwann das Prog mal zu deinstallieren. (make uninstall) In welchem verzeichniss sollte man die sourcen aufbewahren? Ist es egal? z.Z. bewahre ich diese in einem Unterverzeichnis von meinem home erzeichnis auf.(/home/ich/my_downloads/) Dies halte ich aber für weniger elegant.

    Wie macht man das normalerweise? Löscht man eigentlich die sourcen und behällt nur die Makefile zu deinstallieren?(...was ich für unwahrscheinlich halte) Oder behällt man die sourcen?

    Ich möchte jetzt keine Anworten sehen, in denen drinsteht, dass ich rpm's benutzen soll.

    Nächste Frage: Was wird in den folgenden Verzeichnissen aufbewahrt?
    (Ich frage dies, damit ich endlich einen Überblick über das System bekomme)

    /opt, /var, /etc, /proc, /sys

    (Sagt jetzt bitte nicht, dass ich da reingucken soll. Das bringt mich in den meisten Fällen nicht weiter)

    In welches Verzeichnis werden die Programme standardmäßig installiert?
    (/usr/local/share ???) Oder benutzt man standardmäßig unterschiedliche Verzeichnisse als Installationsziel?



  • Also zu dem Deinstallationsproblem schau dir mal checkinstall an, das überwacht einen make install Vorgang und erstellt ein Paket (rpm, deb und andere) das Du dann mit dem Paketmanager wieder deinstallieren kannst.

    Ich persönlich entpacke solche Sachen immer in ein temp-Verzeichnis, nutze checkinstall und lösche die Sourcen dann wieder (die rpms packe ich nach /usr/src/packages/), ich denke für stehenbleibende Sourcen ist /usr/src ganz gut geeignet.

    In /etc liegen Konfigurationsdateien, die allermeisten davon als Klartext lesbar
    In /var liegt "alles, was ein Programm während des Ablaufs so braucht", also laufende Datendateien (Datenbanken, Mails), Flagdateien, Logfiles etc blabla
    In /opt liegen meist umfangreichere Programmsuiten wie OpenOffice, Mozilla, manchmal auch KDE, Gnome
    In /proc (altes Interface) und /sys (neues Interface) legt der Kernel Dateien ab über die man mit ihm Kommuizieren kann. Das sind z.B. Statusdateien wie Infos über freien Speicher und laufende Prozesse oder Schalter mit denen man Optionen setzen kann

    Das meiste davon "vom Distributor abhängig"...

    EDIT: Ach zur letzten Frage, kleinere Progs vom Distributor werden meist in das System einsortiert (/etc, /usr/bin, /usr/lib, /var), selbstkompiliertes installiert sich gern nach /usr/local/bin und /usr/local/lib, größeren Krempel kann man gern nach /opt installieren lassen.



  • LordJaxom schrieb:

    Also zu dem Deinstallationsproblem schau dir mal checkinstall an,[...]

    linux:/home/ich # checkinstall
    bash: checkinstall: command not found
    

    Ich hans als normaler user und als su versucht, aber das geht nicht. 😕

    ps: Hab SuSE 9.2



  • Du müsstest es schon installieren, müsste bei SuSE 9.2 auf den CDs (YaST) drauf sein 😉



  • LordJaxom schrieb:

    Du müsstest es schon installieren, müsste bei SuSE 9.2 auf den CDs (YaST) drauf sein 😉

    Ok, thx.



  • Programme deinstallieren, die von sources kompiliert wurden (also .tar.gz/.tar.bz2) ist nicht immer leicht. Da sind Lösungen wie RPM, DEB oder was weiß ich deutlich angenhemer.

    Leider kann man mit make uninstall nicht immer deinstallieren, viele Makefile kommen ohne diese Option.

    Wenn du auf die Sources nach der Installation verzichten willst, dann musst du dir merken, welche Dateien wo kopiert wurden und diese löschen. Da UNIX keine Registry oder ähnliches Müll hat, genügt es, wenn man die installierten Dateien löscht.

    Du kannst du einfach ein kleines Skriptchen schreiben, mit dem du ein Paket ohne Sources deinstallieren kannst.

    tar xzf paket-version.tar.gz
    cd paket-version
    ./configure [Optionen wie --prefix, usw] && make && make install
    mkdir image (oder etwas anders, wenn das Verzeichnis image vorhanden ist)
    make DESTDIR="`pwd`/image" install
    

    mit dem Befehl make DESTDIR... install sorgt man dafür, dass die Datein unter image/ kopiert werden und so kann man sich merken, welche Datein wo installiert werden.

    So kannst du dann ein kleines Skript ausgeben lassen

    (echo '#!/bin/bash' ; find image/ -type f) | sed -e 's/^image\(.*\)$/rm -rf \1/g'
    

    oder

    gleich in eine Datei umleiten

    (echo '#!/bin/bash' ; find image/ -type f) | sed -e 's/^image\(.*\)$/rm -rf \1/g' > paket-uninstall.sh
    chmod 755 paket-uninstall.sh
    

    so bruachst du zum Deinstallieren nur pakte-uninstall.sh auszuführen. image/ bzw. die gesamten Sources brauchst du dann nicht mehr.

    Bsp:

    supertux@supertux:~/aof-gui-1.0.2> (echo '#!/bin/bash' ; find image/ -type f) | sed -e 's/^image\(.*\)$/rm -rf \1/g'    
    #!/bin/bash
    rm -rf /usr/share/aof-gui/aof-gui.glade
    rm -rf /usr/share/aof-gui/pixmaps/poolmgr.png
    rm -rf /usr/bin/aof-gui
    


  • supertux schrieb:

    Wenn du auf die Sources nach der Installation verzichten willst, dann musst du dir merken, welche Dateien wo kopiert wurden und diese löschen. Da UNIX keine Registry oder ähnliches Müll hat, genügt es, wenn man die installierten Dateien löscht.

    Dazu habe ich mal eine Frage denn das habe ich mich schon immer gefragt (ich bin noch dabei den umgang mit Linix zu lernen, hatte früher mal verschiende distribution und nutzte jetzt "Linux From Scratch") ob ich wirklich einfach die Dateien installierten von installierten Packeten löschen kann und damit ist dann alles klar?
    Ich meine es gibt doch Programme die irgentwelche Änderungen an schon vorhandenen Dateien vornehmen z.b. sich selbst in die Boot Scripte eintragen und sowas? Muss man auf sowas nicht auch achten?



  • Hochst schrieb:

    Dazu habe ich mal eine Frage denn das habe ich mich schon immer gefragt (ich bin noch dabei den umgang mit Linix zu lernen, hatte früher mal verschiende distribution und nutzte jetzt "Linux From Scratch") ob ich wirklich einfach die Dateien installierten von installierten Packeten löschen kann und damit ist dann alles klar?

    ich stehe zu meiner Aussage.

    Hochst schrieb:

    Ich meine es gibt doch Programme die irgentwelche Änderungen an schon vorhandenen Dateien vornehmen z.b. sich selbst in die Boot Scripte eintragen und sowas? Muss man auf sowas nicht auch achten?

    Selbstverständlich ist mein kleines Skriptchen nicht perfekt, es erkennt nur, welche Dateien nue dazu gekommen sind. Ich kenne aber keine Pakete, die explizit fremde existente Dateien ändern. Klar müsste man an manchen Stellen die Konfiguration ändern, wenn ein Programm das deinstallierte Programm braucht, oder so, aber wer deinstalliert schon ein Programm, welches von einem anderem gebaucht wird?

    Kein Paket ändert bereits bestehende rc Skripte, sowas habe *ich* nie gesehen. Aber wenn das Programm eigene rc Skripte hat und du diese löschst, dann musst du auch die Symlinks von /etc/rc.X (X=1,2,3,4,5,6) entfernen, das ist klar.


Anmelden zum Antworten