make hat mich ausgetrickst [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
niemand
Beiträge: 14653
Registriert: 18.07.2004 16:43:29

Re: make hat mich ausgetrickst

Beitrag von niemand » 27.04.2021 17:01:02

dakuan hat geschrieben: ↑ zum Beitrag ↑
27.04.2021 16:09:53
Für mich als nicht-Profi ist das zu kompliziert.
Debiancheckinstall wäre ’n guter Kompromiss – das kann aus dem Ergebnis von make install ein Paket bauen, welches man dann über das Paketsystem handhaben kann.
non serviam.

dakuan
Beiträge: 61
Registriert: 28.04.2011 22:09:39

Re: make hat mich ausgetrickst

Beitrag von dakuan » 27.04.2021 22:59:33

Checkinstall hatte ich vor etlichen Jahren einmal verwendet um unter Ubuntu einen Nvidia Grafiktreiber zu installieren. Damals war ich aber hauptsächlich mit Windows unterwegs. Später habe ich dann gelesen, dass das eine schreckliche Krücke sei (keine Ahnung warum).

Ob das in meiner aktuellen Situation eine Option ist, kann ich noch nicht beurteilen. Ich verwende das Toolkit FLTK und habe es aus dem Quelltext installiert, weil die Version aus den Paketquellen zu alt ist. Ich benötige einige neuere Features. Außerdem habe ich darin 3 Bugs entdeckt, die meine Programme zum Absturz bringen. Die Fixes sind nur in neueren Versionen vorhanden (1.4.0+). Ob checkinstall das berücksichtigt kann ich momentan nicht beurteilen.

Dazu muss man wissen, das bei Debian & Ubuntu für FLTK eine libfltk verwendet wird, während bei der Version aus den Quelltexten alle FLTK-Abhängigkeiten statisch ein-gelinkt werden (sofern man bei der Erstellung nicht eingreift).

Ob das bei einer "normalen" Packetierung oder bei checkinstall eine Rolle spielt, kann ich nicht beurteilen. Ich bin ja eher der Software Bastler und nicht der -Techniker.

Benutzeravatar
heisenberg
Beiträge: 1967
Registriert: 04.06.2015 01:17:27

Re: make hat mich ausgetrickst

Beitrag von heisenberg » 28.04.2021 14:51:16

checkinstall hat mit Deinem Kompilierungsvorgang recht wenig zu tun.

Das was es tut, ist dass es das Installationsscript(Per Vorgabe "make install") überwacht und schaut, was dieses tut. D. h. welche Dateien werden im System installiert). Anschließend baut es ein Paket daraus.

Als Krücke wurde es wahrscheinlich deshalb bezeichnet, weil es halt kein ordentliches Paket erstellt, dessen Konfiguration irgendwelchen Qualtitätsrichtlinien an Pakete entspricht. Es ist in der Hinsicht halt Quick-And-Dirty. Aber für Dein Anliegen bestimmt hilfreich. Es hilft dabei, das Paket wieder rückstandsfrei zu entfernen.
Ich biete keine Lösungen sondern gebe Hilfe zur Selbsthilfe.

dakuan
Beiträge: 61
Registriert: 28.04.2011 22:09:39

Re: make hat mich ausgetrickst

Beitrag von dakuan » 28.04.2021 20:37:13

Danke für die Erläuterungen. Wenn man das weiß, kann man sich vorstellen, woher der Name checkinstall kommt.

Aber die rückstandslose Entfernung habe ich ja in meiner make Datei unter "uninstall:" vorgesehen, was bei meinen Tests auch funktioniert hat. Nur die Config im Userverzeichniss bleibt zurück.

Aber checkinstall kann meine Probleme nicht alle lösen. Ich schiebe z.B. den Quellcode zwischen einem 64 und 32 Bit System hin und her. Da erlebe ich immer wieder mal Überraschungen.

atarixle
Beiträge: 284
Registriert: 20.02.2006 19:30:37

Re: make hat mich ausgetrickst [gelöst]

Beitrag von atarixle » 29.04.2021 13:47:24

Genau wie bei Debian-Paketen, gibt es auch bei Quell-Archiven mehr oder weniger gute Qualität.

So habe ich früher auf einem älteren Debian grundsätzlich wine aus den Quellen installiert und mich dort auch sehr gut auf make uninstall verlassen können.

Entgegen aller Empfehlungen hatte die Installation einer neuen Version von wine über die alte aber keine negativen Auswirkungen - die Versionsfortschritte waren immer im Minor-Bereich.

Das Quellpaket von cc65 lässt sich sogar ohne ./configure bauen, ohne auch nur eine Warnung auszugeben - von Mac OS X Leopard (PowerPC) bis hin zu Catalina (x86_64) und natürlich unter allen debian-Varianten, die ich betreibe.

Was ich eigentlich zum Thema beitragen wollte: Danke dafür, davon zu berichten, was passiert, sudo make install zuerst ausführt. Dass dann einem die gebauten Dateien nicht gehören und deshalb der Zwischenschritt über make (ohne sudo und install) gemacht wird, hatte ich irgendwie nie auf dem Schirm. Da hab ich wieder was gelernt (oder begriffen).

Benutzeravatar
Meillo
Moderator
Beiträge: 6568
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: make hat mich ausgetrickst [gelöst]

Beitrag von Meillo » 29.04.2021 14:46:29

atarixle hat geschrieben: ↑ zum Beitrag ↑
29.04.2021 13:47:24
Was ich eigentlich zum Thema beitragen wollte: Danke dafür, davon zu berichten, was passiert, sudo make install zuerst ausführt. Dass dann einem die gebauten Dateien nicht gehören und deshalb der Zwischenschritt über make (ohne sudo und install) gemacht wird, hatte ich irgendwie nie auf dem Schirm. Da hab ich wieder was gelernt (oder begriffen).
Das ist nicht der einzige Grund. Generell sollte man stets die geringsten Rechte verwenden, die noetig sind. Zum Kompilieren von Software sind keine root-Rechte noetig. Es ist nicht noetig, dass all der Code, der beim Kompilieren aufgerufen wird (was ggf. eine ganze Menge sein kann) mit root-Rechten laeuft. Auch darum sollte man als User kompilieren. Zum Installieren dagegen braucht man normalerweise root-Rechte, das laesst sich halt nicht aendern. Falls man bei Fremdcode im Makefile pruefen will was beim Aufruf von `make' mit root-Rechten ausgefuehrt werden wird, so ist das install-Target meist deutlich uebersichtlicher als wenn man allen Kompiliercode auch noch durchschauen muss.
Use ed(1) once in a while!

dakuan
Beiträge: 61
Registriert: 28.04.2011 22:09:39

Re: make hat mich ausgetrickst [gelöst]

Beitrag von dakuan » 29.04.2021 21:20:19

Entgegen aller Empfehlungen hatte die Installation einer neuen Version von wine über die alte aber keine negativen Auswirkungen - die Versionsfortschritte waren immer im Minor-Bereich.
Das war bei meinem aktuellen Projekt leider nicht ganz so. Aber bei einer Versionsnummer von 0.51 ist klar, das da noch Bewegung ist. Aufgrund neuer Erkenntnisse musste ich das Format der Konfigurationsdatei ändern. Da müsste dann auch die lokale Version in $HOME erneuert werden.

Ich habe mir mehrere Quelltexte besorgt, aus Neugier, aber nur FLTK wirklich daraus installiert. Dabei habe ich auch mehrfach die Konfiguration geändert, um die neuen Features nutzen zu können. Hat bei FLTK immer funktioniert.

Allerdings war mir dabei am Anfang nicht klar, dass sich dadurch das ABI ändert und meine eigenen Programme nach Veränderungen abstürzen. Ich konnte das dann meistens durch ein beherztes

Code: Alles auswählen

rm *.o
lösen. Nachdem ich jetzt noch einiges über make gelesen habe, ist mit klar, das mir der Zweig clean: fehlt. Im Buch "Linux-UNIX Programmierung" wurde das zwar erwähnt, aber nicht wirklich wozu das gut ist.

Antworten