Re: Fehlermeldung beim Versuch, rpms mit checkinstall zu bauen
Hi Thomas, Am Dienstag, 26. März 2002 23:34 schrieb Thomas Templin:
Dienstag, 26. März 2002 23:07 Philipp Zacharias wrote:
---cut--- NOT-FOUND has no SOURCES directory. Please write the path to the RPM source directory tree: ---uncut---
Du hast Checkinstall als root ausgeführt?
ja, hab ich, klar.
Versuch mal ein "checkinstall make install" oder den entsprechenden Aufruf des Make für die Installation. Ich kann mich noch erinnern, dass ich ein Programm hatte, welches mit "make linux" installiert werden wollte.
Hab's z.B. mit dem mplayer versucht. Der wird über make install installiert. Aber auch ein checkinstall make install führt zu dem gleichen Ergebnis.
Dann war da ein Problem mit falsch gesetzten Rechten des SuSE RPMs der 7.3. Vielleicht schaust Du einmal nach den Rechten von checkinstall und installwatch.
/usr/local/sbin/checkinstall: 755
Ich habe in meiner /usr/local/lib/checkinstall/checkinstallrc den Eintrag PAK_DIR="." eingetragen, so werden die RPMs immer im aktuellen Quellverzeichnis abgelegt und nicht unter /usr/src/... Der einfachste Weg ist sich die aktuellen Sourcen zu besorgen und checkinstall daraus zu installieren. :)
Hab die PAK_DIR auch so gesetzt. Hat nix geholfen. Ich hatte mir für checkinstall das .rpm von deren Server gezogen. Das hat schon ewig gedauert. Jetzt saug ich mir mal die Sourcen und probier's nochmal (*gähn* <0.9KB/sec + Aussetzer). Alles andere hat bislang keine Wirkung erzielt, ich werde das gute Proggy jetzt dann mal kompilieren und gucken, was kommt. Gruß Philipp -- registered Linux user number 258854
Am Mittwoch, 27. März 2002 01:19 schrieb Philipp Zacharias: [...]
Hab die PAK_DIR auch so gesetzt. Hat nix geholfen. Ich hatte mir für checkinstall das .rpm von deren Server gezogen. Das hat schon ewig gedauert. Jetzt saug ich mir mal die Sourcen und probier's nochmal (*gähn* <0.9KB/sec + Aussetzer).
Alles andere hat bislang keine Wirkung erzielt, ich werde das gute Proggy jetzt dann mal kompilieren und gucken, was kommt.
hat auch nix geholfen :o(((( Gruß Philipp -- registered Linux user number 258854
Hallo, On Wed, 27 Mar 2002, Philipp Zacharias wrote:
Am Mittwoch, 27. März 2002 01:19 schrieb Philipp Zacharias: [...]
Hab die PAK_DIR auch so gesetzt. Hat nix geholfen. Ich hatte mir für checkinstall das .rpm von deren Server gezogen. Das hat schon ewig gedauert. Jetzt saug ich mir mal die Sourcen und probier's nochmal (*gähn* <0.9KB/sec + Aussetzer).
Alles andere hat bislang keine Wirkung erzielt, ich werde das gute Proggy jetzt dann mal kompilieren und gucken, was kommt.
hat auch nix geholfen :o((((
Kann ich mir vorstellen. Aber da checkinstall nur ein sh-script ist, solltest du da mal rein schauen. Bei 1.3.1 findet sich da ab Zeile 615: ==== snip ==== # Find out the RPM source directory path if ! [ "$RPMSOURCEDIR" ]; then RPMSOURCEDIR="NOT-FOUND" for directory in packages redhat RedHat rpm RPM "" ; do [ -d /usr/src/${directory}/SOURCES ] && RPMSOURCEDIR="/usr/src/${directory}" done fi echo RPMSOURCEDIR=$RPMSOURCEDIR while ! [ -d "$RPMSOURCEDIR/SOURCES" ]; do echo echo "$RPMSOURCEDIR has no SOURCES directory. Please write the path to" echo -n "the RPM source directory tree: " read RPMSOURCEDIR ! [ "$RPMSOURCEDIR" ] && RPMSOURCEDIR="NOT-FOUND" done ==== snap ==== d.h. du solltest das Verzeichnis /usr/src/packages/SOURCES anlegen. Achso, ich halte checkinstall fuer ne gute Idee, bin aber nicht gerade davon begeistert, dass es direkt ins System installiert... Mach das mal mit der glibc... *schauder* Und bei einem Fehler beim Install bricht checkinstall ab, und man hat u.U. ein halb-installiertes Programm irgendwo in /usr oder so rumliegen... Nicht umsonst treiben Packager in den .spec normalerweise einigen Aufwand, damit eben _nicht_ ins System installiert wird, sondern in die RPM_BUILD_ROOT (normalerweise: /var/tmp/rpm/<name>-<version>-buildroot). Bei autoconf/automake generierten Makefiles reicht's normal 'make DESTDIR="$RPM_BUILD_ROOT" install' zu verwenden, bei anderen geht i.d.R ein 'make prefix="$RPM_BUILD_ROOT"'. Und, genau, so muss man eben _nicht_ root sein, um das rpm zu erstellen, da nach /var/tmp/rpm installiert wird, und nicht ins System (was eben "fatal" enden kann). IMO ist es besser, sich ein .spec (von SuSE) zu besorgen und das dann anzupassen. Oder ggfs. auch selbst (aus ner Vorlage) zu erstellen. Achso, ja, kann sein, dass das seit 1.3.1 geaendert hat, keine Ahnung, was grad aktuell ist... <laut denk> Hm. Eigentlich muesste es doch moeglich sein, das Makefile auf "DESTDIR"/"prefix" etc. zu untersuchen... Dann die File- Liste von installwatch eben durch ein sed jagen... Koennte klappen ;0 -dnh -- Quatsch! Alle Spermien schwimmen zur Gebärmutter. Aber da die Gebärmutter nur ein Eheliches kind hatt, nämlich das mit dem gebärvater, darf auch nur dieses nach Hause kommen. Zusammen stellen sie dann den Neuen Menschen her. Oder so ähnlich. [WoKo in dag°]
Hallo, David Haller:
==== snip ==== # Find out the RPM source directory path
if ! [ "$RPMSOURCEDIR" ]; then RPMSOURCEDIR="NOT-FOUND" for directory in packages redhat RedHat rpm RPM "" ; do [ -d /usr/src/${directory}/SOURCES ] && RPMSOURCEDIR="/usr/src/${directory}" done fi
Ich hatte auch gerade Ärger mit checkinstall. Ich halte es für möglich, das meine Lösung auch auf dieses Problem passt. Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?) auch anders aus als bei mir. Offensichtlich wurde die Reihenfolge von "packages" und "redhat" vertauscht, das hätte bei mir dann nämlich auch funktioniert. An der oben zitierten Stelle versucht checkinstall herauszufinden, in welchem Verzeichnis er die RPMs abladen soll. Später versucht er, das erstellte RPM auch zu installieren. Folgendes war mein Problem: checkinstall suchte brav nach dem Vorhandensein von /usr/scr/packages /usr/src/redhat /usr/source/RedHat ... und das erste, was er findet, nimmt er, um das RPM dort abzulegen. Installieren wollte er später aber grundsätzlich nur aus /usr/src/redhat, was bei mir fehlschlug, weil /usr/src/packages existierte, die RPMs also dort lagen. Also: Ordnerchaos. Ich habe mich jetzt für die Brechstangenlösung entschieden und an obige Schleife einfach angehängt: RPMSOURCEDIR='/usr/src/packages' ...frei nach dem Motto: Denk du nur... und dann machst du, was _ich_ sage. ;-) Wenn beim Fragesteller was ähnliches passiert, aber andere Ordnerkonstellationen existieren, könnte das auch dort die Lösung sein. Also, mal obige Zeile eintragen und sicherstellen, daß /usr/src/packages/RPMS/i386 existiert. Ach so, wichtig, das hat mich eben fast in den Wahnsinn getrieben: Wenn du ausprobierst, ob es jetzt funktioniert, probiere _nicht_, checkinstall mit checkinstall zu installieren! Wenn du das Script änderst, wird das laufende Script während der Installation mit der Originalversion überschrieben, das gibt Aua. Nimm zum Testen irgendwas anderes, und wenn es läuft, kopiere das modifizierte checkinstall ins Installationsverzeichnis zurück, dann geht es, weil beide Varianten gleich sind. Gruß, Ratti
Hallo, On Wed, 27 Mar 2002, Ratti wrote:
David Haller:
==== snip ==== # Find out the RPM source directory path
if ! [ "$RPMSOURCEDIR" ]; then RPMSOURCEDIR="NOT-FOUND" for directory in packages redhat RedHat rpm RPM "" ; do [ -d /usr/src/${directory}/SOURCES ] && RPMSOURCEDIR="/usr/src/${directory}" done fi
Ich hatte auch gerade Ärger mit checkinstall. Ich halte es für möglich, das meine Lösung auch auf dieses Problem passt.
Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?)
Stammt aus der 1.3.1, wie erwaehnt. [..]
...frei nach dem Motto: Denk du nur... und dann machst du, was _ich_ sage. ;-)
*g*
Wenn beim Fragesteller was ähnliches passiert, aber andere Ordnerkonstellationen existieren, könnte das auch dort die Lösung sein.
Also, mal obige Zeile eintragen und sicherstellen, daß /usr/src/packages/RPMS/i386 existiert.
und /usr/src/packages/SOURCES ;)
Ach so, wichtig, das hat mich eben fast in den Wahnsinn getrieben: Wenn du ausprobierst, ob es jetzt funktioniert, probiere _nicht_, checkinstall mit checkinstall zu installieren! Wenn du das Script änderst, wird das laufende Script während der Installation mit der Originalversion überschrieben, das gibt Aua.
Ja, das ist das von mir angesprochene Problem, dass checkinstall ins laufende System reininstalliert, was bei libs (libc! ld.so!) sehr "Aua" machen kann... -dnh -- 86: Installationsparty -- Zusammenkunft von Installateuren, die beim Installieren von Installationen für Nichtinstallateure, die Installationen haben wollen, aber sich die Installation ihrer Installation nicht installieren können, bzw. sich die Installation ihrer Installatione nicht zutrauen, ihre Freude haben. (Detlef Neubauer)
Hi, Am Mittwoch, 27. März 2002 23:47 schrieb David Haller:
On Wed, 27 Mar 2002, Ratti wrote:
David Haller:
==== snip ==== # Find out the RPM source directory path
if ! [ "$RPMSOURCEDIR" ]; then RPMSOURCEDIR="NOT-FOUND" for directory in packages redhat RedHat rpm RPM "" ; do [ -d /usr/src/${directory}/SOURCES ] && RPMSOURCEDIR="/usr/src/${directory}" done fi
Ich hatte auch gerade Ärger mit checkinstall. Ich halte es für möglich, das meine Lösung auch auf dieses Problem passt.
Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?)
Stammt aus der 1.3.1, wie erwaehnt.
Nö, das ist die 1.5.1-1 (rpm -qa | grep check : checkinstall-1.5.1-1). Wer hat denn erwähnt, dass es die 1.3.1 sein soll? Hab den Thread überflogen und festgestellt, dass ich misslicherweise bislang übersehen habe die Versionsnummer anzugeben. [...]
Also, mal obige Zeile eintragen und sicherstellen, daß /usr/src/packages/RPMS/i386 existiert.
und /usr/src/packages/SOURCES ;)
das war die Lösung! Hab das Directory angelegt und jetzt funzt es! Besten Dank!
Ach so, wichtig, das hat mich eben fast in den Wahnsinn getrieben: Wenn du ausprobierst, ob es jetzt funktioniert, probiere _nicht_, checkinstall mit checkinstall zu installieren! Wenn du das Script änderst, wird das laufende Script während der Installation mit der Originalversion überschrieben, das gibt Aua.
Ja, das ist das von mir angesprochene Problem, dass checkinstall ins laufende System reininstalliert, was bei libs (libc! ld.so!) sehr "Aua" machen kann...
Von sowas lass ich die Finger, bis ich mich auch "well experienced" fühle :o)))) Gruß Philipp -- registered Linux user number 258854
Hallo, David Haller:
if ! [ "$RPMSOURCEDIR" ]; then
Ratti:
Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?)
Stammt aus der 1.3.1, wie erwaehnt.
Philipp Zacharias:
Nö, das ist die 1.5.1-1 (rpm -qa | grep check : checkinstall-1.5.1-1). Wer hat denn erwähnt, dass es die 1.3.1 sein soll? Hab den Thread
Das oben ist die 1.3.1, von David geposted, weil er diese Version installiert hat. Daß du die 1.5.1 hast, wurde vorrausgesetzt - du hast ja frisch gezogen und Installiert. Offensichtlich muß an den Code nochmal einer ran, das macht summa summarum zwei Fehler in einem Programm. ;-) Gruß, Ratti
Hallo, On Thu, 28 Mar 2002, Ratti wrote:
David Haller:
if ! [ "$RPMSOURCEDIR" ]; then
Ratti:
Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?)
Stammt aus der 1.3.1, wie erwaehnt.
Philipp Zacharias:
Nö, das ist die 1.5.1-1 (rpm -qa | grep check : checkinstall-1.5.1-1). Wer hat denn erwähnt, dass es die 1.3.1 sein soll? Hab den Thread
Das oben ist die 1.3.1, von David geposted, weil er diese Version installiert hat.
Ja. Nein. Ich wollte es mal installieren, es war mir dann aber in der Fassung (Kritik hab ich ja schon geschrieben) zu "schlecht", hab's also folglich _nicht_ installiert. Die 1.3.1 ist halt die Version, die ich hier noch rumfahren habe.
Offensichtlich muß an den Code nochmal einer ran, das macht summa summarum zwei Fehler in einem Programm. ;-)
Aeh, es sind noch _einige_ mehr. Allerdings nicht so offensichtliche. (okok, ich kenn wie gesagt nur die 1.3.1, kann sein, dass da einiges verbessert wurde, aber das Grundproblem / der Designfehler (install ins System) ist ja nach wie vor gegeben. Das Problem ist eben, dass Makefiles nicht standardisiert sind, selbst in autoconf-generierten Makefiles wird DESTDIR oft nicht (oder falsch) verwendet. Und selbst ein 'make prefix="$RPM_BUILD_ROOT%{prefix}"' geht nicht immer. Ich kann also checkinstall nicht empfehlen. -dnh -- Auch die Schwaben müssen, trotz Ihrer Sparsamkeit mal sterben. denn das können sie sich nicht sparen. [WoKo in dag°]
Am Mittwoch, 27. März 2002 20:40 schrieb Ratti:
Hallo,
David Haller:
==== snip ==== # Find out the RPM source directory path
if ! [ "$RPMSOURCEDIR" ]; then RPMSOURCEDIR="NOT-FOUND" for directory in packages redhat RedHat rpm RPM "" ; do [ -d /usr/src/${directory}/SOURCES ] && RPMSOURCEDIR="/usr/src/${directory}" done fi
Ich hatte auch gerade Ärger mit checkinstall. Ich halte es für möglich, das meine Lösung auch auf dieses Problem passt.
Interessanterweise sieht der oben zitierte Code (Das ist nicht die 1.51, richtig?) auch anders aus als bei mir. Offensichtlich wurde die Reihenfolge von "packages" und "redhat" vertauscht, das hätte bei mir dann nämlich auch funktioniert.
Doch, ist die 1.5.1-1 [...gute Ratschläge, besten Dank dafür, werde ich bei Gelegenheit ausprobieren...] Gruß Philipp -- registered Linux user number 258854
participants (3)
-
David Haller
-
Philipp Zacharias
-
Ratti