PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schlaue Verwaltung compilierter Codes



hunter
12.04.02, 12:44
Linux ist ja ein freies und offenes Betriebsystem. Das bedeutet das man Programme oder Bibliotheken meist als Quellcode bekommt der nach Anleitung zu compilieren ist. Meistens mit "./configure" um es auf das System anzupassen und dann ein "make" zum compilieren. Danach muss das ganze dann installiert werden: "make install"

Jetzt habt ihr das Programm oder sonst was in euer Linux System eingefügt. Wenn ihr aber nun das ganze wieder los werden wollt oder eine neuere Version wollt, dann habt ihr ein Problem: ihr könnt das nicht einfach los werden, weil nirgendwo steht welche Datein dazu gehören und welche nicht. Das das nirgendwo steht stimmt nicht ganz, es steht nämlich in der Config in den Quellen. Dann ist ein "make uninstall" möglich.

Jetzt könnt ihr natürlich hergehen und die Quellen einfach behalten. Aber nachdem ihr das mit 10 oder noch mehr Quellen so gemacht habt werdet ihr feststellen das ihr damit ziemlich viel Speicherplatz verbraucht. Außerdem kann es beim installieren von anderen Paketen dann sein das Abhängigkeiten bemängelt werden die ihr aber mit dem selbst compilierten Programm schon längst gelöst habt.

Als Lösung für beides bietet sich daher das nutzen eines Paketmanagment an. Redhat, Mandrake und Suse benutzen dazu RPM. Debian und Slackware haben ein eigenes System.

Dieses könnt ihr nun benutzen indem ihr nach "make" einfach "checkinstall" benutzt. Dieses baut und installiert dann ein Paket und speichert es auf Platte. Diese Pakete verbrauchen nur wenig Platz und die Quellen werden auch nicht mehr gebracht. Und das deinstallieren geht z.B. mit "rpm -e PAKET".

Vorher muss es aber installiert werden. Meistens liegt es jeder Distribution bei. Wenn nicht, hier der
Link (http://freshmeat.net/projects/checkinstall/?topic_id=46%2C41%2C147%2C257).

Trillian
12.04.02, 13:08
Schlankere, aber auch weniger fähige Lösung:
install-log (http://install-log.sf.net)

In der Praxis sieht das so aus, dass man nach jedem "make install", einmal "install-log paketname" tippselt, und install-log sich dann die Änderungen z.b. in /usr/local merkt und protokolliert.

Wer auf einem LFS o.ä. System keine Lust auf eine Paketverwaltung a la Slackware, RPM oder dpkg hat, für den sollte install-log genau richtig sein.

McG.linux
12.04.02, 19:37
dann gibt es noch stow

http://www.gnu.org/software/stow/stow.html

Stow installiert jedes Packet in /usr/local/stow/packetname und verklinkt es dann nach /usr/local, d.h. es schaut so aus als wären die progs nach
/usr/local/ installiert worden..

Will man ein Prog deinstallieren muss man nur dien entsprechenden Ordner in /usr/local/stow löschen und die dead-links entfernen..
Habs nie getestet, soll aber sehr gut funktionieren.. stabil is es schon seit mehreren versionen

Gruß
McG.linux

akula
06.09.02, 12:52
hi

eine andere Variante: einfach beim ./configure den prefix auf /opt/paketname-version setzen. Dann einen Link /opt/paket auf /opet/paket-version setzten, dann den Pfad anpassen, da jetz das bin und lib im /opt/paket sind. Wenn dann eine neue version herauskommt braucht man dann nur noch den Link anzupassen

gruss akula

Basti_litho
06.09.02, 13:04
geht sogar mit make:

"make prefix=/opt/xosview install"

Supervisor
10.11.02, 17:44
Hallo,

Ich habe checkinstall mit Kpakage installiert und es schien in Ordnung, aber wenn ich versuche checkinstall in der Konsole aufzufufen, wird dieses Kommando nicht erkannt... Was tun?

Manfred.S
10.11.02, 18:09
is der pfad richtig gestezt ?

$PATH

bash: /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/opt/bin:/usr/X11R6/bin:/opt/blackdown-jre-1.3.1/bin:/usr/qt/3/bin:/usr/qt/2/bin

wenn es in einem von dem verz ist kann mann es direkt von konsole aufrufen.

fs111
11.11.02, 10:46
checkinstall ist unter /usr/local/sbin installiert, etwas exotisch, aber man kann ja einen Link nach /usr/bin erstellen, oder den Pfad erweitern.

fs111

Supervisor
11.11.02, 16:57
Hallo,

hab folgendes gemacht:

ln -ns /usr/local/sbin/checkinstall /usr/bin

nun funtzt es !!! :-)

ist dieser Befehl so richtig? Ich meine ob es besser ist einen symbolic Link oder nen harten Link zu erstellen und macht dieses -n bei diesem Befehl auch Sinn? Ich habe mir mit ln --help die Optionen angeschaut und "-ns" hat mir am besten gefallen... Läßt sich sagen, daß für alle Situationen eine bestimmte Optionsfolge bei ln optimal ist? quasi ein Standard ln-Befehl, den man immer verwenden kann?

Frage 2: Angenommen ich habe unzählige Links mit ln angelegt? Kann ich mir irgendwo ansehen welche Datei mir welcher verlinkt ist? also ne Übersicht? Wie löse ich diese Links? Was passiert mit dem Link, wenn ich checkinstall nun lösche?

MfG

Supervisor

Supervisor
11.11.02, 17:00
ach, hab noch was vergessen!


mit checkinstall installieren geht doch so:

./configure --option
make

su passwort

make checkinstall ???


Ist das richtig so?

oder lasse ich das "make" in der letzten Zeile weg und tippe nur "checkinstall" ein?

fs111
12.11.02, 00:33
make weglassen