compilen: wie und was tun gegen fehler

apexero

Lieutenant
Registriert
Aug. 2001
Beiträge
564
hallo

also immer noch gehts um den 2.6 kernel

per readme erfährt man ja was man so alles für progs und in welcher version braucht

eine frage gleichmal : für mandrake rpms steht mdk im dateinamen ...steht für Suse auch was da ?
oder nehm ich da die i386 datein oder wonach richte ich mich??

ich kann ja auch src tar.bz2 datein nehmen

die entpacken und dann tu ich immer als root ./configure machen
hatte dabei diesmal auch nichtmal fehler ...und hey ... die jfsutils konnte ich ohne fehler compilieren

allerdings die mod init tools nicht - configure ging tadellos aber das make install danach hat irgendwann einen fehler gebracht, allerdings hatte ich trotzdem die mod init tools
mit andern worten depmod -V geht jetzt und ging halt vorher nicht

kann ich mit der version arbeiten die ich jetz hab trotz fehler ?

oder habe ich falsche befehle benutzt ?

procps brauche ich auch noch, aber das kann ich garnicht compilieren -> sehr viele fehler

woran das liegt weiss ich nicht ...eine rpm wäre vielleicht ne suche wert

und dann noch die isdn4ktools - da find ich für suse keine rpm ...weiss ja nich wonach ich suchen soll und an sources find ich auch nur src rpm´s ....und wie das mit denen is versteh ich auch net

der hat zwar was installiert aber es gab keine bestätigung das der fertig is und wo die nun liegen die sources weiss ich auch nicht

wie immer schön wenn jemand antworten für mich hat



danke

mfg
 
Als ersten würde ich dir empfehlen diese Dokumentation durchzulesen
http://doc.mandrakelinux.com/MandrakeLinux/92/en/Starter.html/software-management.html

da seht wie man Mandrake rpm's installiert und wenn es bei Mandrake
keine rpm's in der passenden Version gibt, kannst du sie bei rpmfind.net
oder so suchen.

Ich glaube es wäre für dich erstmal einfacher Mandrake eine rpm's zu
installieren als sie selber zu kompilieren.
 
hach ...

wie man eine rpm installiert das weiss ich ja - ich will / muss selbst kompilieren

also selbe frage wie oben
 
hi,

nochmal ne schoene Uebersicht ueber die Versionen und auch links auf die Pakete gibt es hier: http://kerneltrap.org/node/view/799

rpms findest du auch fuer SuSE und Mandrake wie kenne erwaehnt unter rpmfind.net, die sourcen gibt es unter den links oben. Wenn es kein Distributions-basiertes RPM gibt, dann nimm doch einfach ein src.rpm und uebersetze es kurz per --rebuild neu.

noch ein genereller Tipp: bei ./configure und bei make brauchst du nicht root zu sein, es ist meist aus dateirechtlichen und sicherheitstechnischen Gruenden besser wenn nicht. Ein feature benutze ich von configure recht haeufig, naemlich die option --prefix=<dir>, womit ich das Zeug da hininstallieren kann, wo ich es haben will. Wenn du das zB in ein build-Unterverzeichnis im Quellcodeverzeichnis machst, brauchst du nicht mal root zum installieren (ausser ld und Co werden benutzt). Und das Deinstallieren = Loeschen des Unterverzeichnisses ist auch sehr einfach und vollstaendig :)

An das Fehlen von Bestaetigungen unter Linux solltest du dich eher schnell gewoehnen, denn eigentlich gibt es nur Meldungen, wenn was schief geht.
 
eine frage gleichmal : für mandrake rpms steht mdk im dateinamen ...steht für Suse auch was da ?
oder nehm ich da die i386 datein oder wonach richte ich mich??
Für SuSE gibt es auf dem FTP ziemlich viele RPMs:
ftp://ftp.suse.com/pub/suse/i386/current/suse/; viele sollten aber auch auf den CDs sein.
http://rpm.pbone.net/ zeigt auch meist an, für welche Distribution das RPM-File ist.
Im Namen selbst steht oft suse.
Ich habe zwar noch nie Yast benutzt, aber es soll etwas wie ein Online-Update geben, mit dem sich auch Pakete suchen lassen.
http://apt4rpm.sourceforge.net/ ist wohl noch bequemer...
die entpacken und dann tu ich immer als root ./configure machen
hatte dabei diesmal auch nichtmal fehler ...und hey ... die jfsutils konnte ich ohne fehler compilieren
./configure und make kann man noch als normaler User ausführen, für make install sind dann aber Rootrechte erforderlich.
Wenn Du das JFS-Dateisystem nicht benutzt, musst Du die jfsutils übrigens nicht installieren.
Tipp: Wenn du dir oft Tarballs ziehst und die Pakete selbst kompilierst, bietet sich Checkinstall an.
Mit Checkinstall kannst du RPM, TGZ und DEB Pakete bauen lassen; sehr praktisch, da man sie so besser deinstallieren kann.
Nachdem du ./configure ; make als User ausgeführt hast, tippst du danach als root einfach checkinstall ein.

kann ich mit der version arbeiten die ich jetz hab trotz fehler ?
Wenn es funktioniert schon möglich, aber es wäre sinnvoll die Fehlermeldung(en) zu posten. :)
und dann noch die isdn4ktools - da find ich für suse keine rpm ...weiss ja nich wonach ich suchen soll und an sources find ich auch nur src rpm´s ....und wie das mit denen is versteh ich auch net
src-rpms müssen noch gebaut werden. Benutze RPM nicht, deshalb kenne ich jetzt die genauen Befehle nicht; man rpm, rpm --help oder ein RPM-Spezialist aus dem Forum können dir hier wohl behilflicher sein.
 
ach nu nehmt mir doch nich meine jfstools ..das is das einzige was funktioniert hat :)
procps
aber ihr würdet mir eine freude machen indem ihr mir sagt das ich dieses dumme procps auch nicht brauche ...weil das problem die nich kompilieren zu können haben scheinbar mehrere leute

isdn4ktools...
welche sourcen soll ich denn für das ding nun nehmen ? is das egal wenn ich halt ein --rebuild ausführe damit oder wie is das gemeint gewesen ?
und wie der syntax dazu ? rpm isdn4ktools.......rpm --rebuild einfach ?
 
belbono schrieb:
ach nu nehmt mir doch nich meine jfstools ..das is das einzige was funktioniert hat :)
procps
aber ihr würdet mir eine freude machen indem ihr mir sagt das ich dieses dumme procps auch nicht brauche ...weil das problem die nich kompilieren zu können haben scheinbar mehrere leute

isdn4ktools...
welche sourcen soll ich denn für das ding nun nehmen ? is das egal wenn ich halt ein --rebuild ausführe damit oder wie is das gemeint gewesen ?
und wie der syntax dazu ? rpm isdn4ktools.......rpm --rebuild einfach ?

naja, procps brauchste schon fuer das procfs, aber es ist nur version 2.0.9 noetig, das ist bei SuSE >8 schon dabei. Ansonsten ziehste dir hier http://www.rpmfind.net/
halt entweder das mandrake-paket oder das src.rpm, welches du dann mit "rpm --rebuild <*.src.rpm>" uebersetzt. Genau so kannst du es mit deinen isdn4ktools machen. Kannst auch beide hintereinander schreiben und in einem Rutsch uebersetzen, klar.
 
belbono@linux:~/Kernel/req/isdn4k-utils> rpm --rebuild isdn4k-utils-3.1-62.src.rpm
--rebuild: unknown option
belbono@linux:~/Kernel/req/isdn4k-utils>
...soviel zum kommando --rebuild
---------------------------------------
linux:/home/belbono/Kernel/req/module-init-tools-0.9.15-pre4 # ./configure && make
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
configure: Adding gcc options: -g -O2 -Wunused -Wall -Wcast-align
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
if [ "docbook2man" = "docbook2man" ]; then \
docbook2man doc/modprobe.conf.sgml > /dev/null 2>&1; \
else \
docbook2man doc/modprobe.conf.sgml 2>&1 > modprobe.conf.5 | sed 's/^[^:]*://'; \
fi
make: *** [modprobe.conf.5] Fehler 127
linux:/home/belbono/Kernel/req/module-init-tools-0.9.15-pre4 #

das zu den module init tools - denke ma hier is schon der fehler geboren der die make install etwas schief gehen lässt
---------------------------------------

linux:/home/belbono/Kernel/req/procps/procps-2.0.11 # make install
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -c oldps.c
make -C proc `basename proc/libproc.so.2.0.11` SHARED=1 SHLIBDIR=/lib VERSION=2 SUBVERSION=0 MINORVERSION=11 LIBVERSION=2.0.11
make[1]: Entering directory `/home/belbono/Kernel/req/procps/procps-2.0.11/proc'
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -MM -MG alloc.c compare.c devname.c ksym.c output.c pwcache.c readproc.c signals.c status.c sysinfo.c version.c whattime.c > .depend
make[1]: Leaving directory `/home/belbono/Kernel/req/procps/procps-2.0.11/proc'
make[1]: Entering directory `/home/belbono/Kernel/req/procps/procps-2.0.11/proc'
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c alloc.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c compare.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c devname.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c ksym.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c output.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c pwcache.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c readproc.c
echo '#include <signal.h>' | gcc -E -dM - | \
sed 's/.*SIGSTKSZ.*//g' | \
tr -s '\t ' ' ' | sort -n +2 | sed \
's:#define SIG\([A-Z]\+[0-9]*\) \([0-9]\+\) *\(\|/\*.*\)$:{\
\2,"\1" },:p;d' > signames.h
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c signals.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c status.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c sysinfo.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -DVERSION=\"2\" -DSUBVERSION=\"0\" -DMINORVERSION=\"11\" -c version.c
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fPIC -c whattime.c
gcc -Wl,-warn-common -shared -Wl,-soname,libproc.so.2.0.11 -o libproc.so.2.0.11 alloc.o compare.o devname.o ksym.o output.o pwcache.o readproc.o signals.o status.o sysinfo.o version.o whattime.o -lc
ln -sf libproc.so.2.0.11 libproc.so
make[1]: Leaving directory `/home/belbono/Kernel/req/procps/procps-2.0.11/proc'
gcc -Wl,-warn-common -o oldps oldps.o proc/libproc.so.2.0.11
install --strip oldps /usr/bin/oldps
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -c uptime.c
gcc -Wl,-warn-common -o uptime uptime.o proc/libproc.so.2.0.11
install --strip uptime /usr/bin/uptime
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -c tload.c
gcc -Wl,-warn-common -o tload tload.o proc/libproc.so.2.0.11
install --strip tload /usr/bin/tload
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -c free.c
gcc -Wl,-warn-common -o free free.o proc/libproc.so.2.0.11
install --strip free /usr/bin/free
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -DW_SHOWFROM -c w.c
gcc -Wl,-warn-common -o w w.o proc/libproc.so.2.0.11
install --strip w /usr/bin/w
gcc -D_GNU_SOURCE -O3 -Wall -Wstrict-prototypes -Wshadow -I/home/belbono/Kernel/req/procps/procps-2.0.11 -I/usr/include/ncurses -I/usr/X11R6/include -fwritable-strings -c top.c
top.c:102:21: termcap.h: Datei oder Verzeichnis nicht gefunden
top.c: In function `setup_terminal':
top.c:319: Warnung: implicit declaration of function `tgetent'
top.c:325: Warnung: implicit declaration of function `tgetstr'
top.c:325: Warnung: assignment makes pointer from integer without a cast
top.c:326: Warnung: assignment makes pointer from integer without a cast
top.c:327: Warnung: assignment makes pointer from integer without a cast
top.c:328: Warnung: assignment makes pointer from integer without a cast
top.c:329: Warnung: assignment makes pointer from integer without a cast
top.c:330: Warnung: assignment makes pointer from integer without a cast
top.c:331: Warnung: assignment makes pointer from integer without a cast
top.c:332: Warnung: assignment makes pointer from integer without a cast
top.c: In function `error_end':
top.c:594: Warnung: implicit declaration of function `tputs'
top.c:594: Warnung: implicit declaration of function `tgoto'
top.c: In function `window_size':
top.c:646: Warnung: implicit declaration of function `tgetnum'
make: *** [top.o] Fehler 1
linux:/home/belbono/Kernel/req/procps/procps-2.0.11 #

procps 2.0.11 ....und zwar nachdem ich eine source rpm installiert hab und dann unter usr/..../sources/ eine procps-2.0.11.tar.bz2 gefunden hab die ich in mein homeverz. entpackt habe und dann eben make install eingegeben hab
------------------------------------

linux:/home/belbono/isdn4k-utils # make
make[1]: Entering directory `/home/belbono/isdn4k-utils/scripts/lxdialog'
gcc -O2 -Wall -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<curses.h>" -c -o lxdialog.o lxdialog.c
In file included from lxdialog.c:22:
dialog.h:29:20: curses.h: Datei oder Verzeichnis nicht gefunden
In file included from lxdialog.c:22:
dialog.h:109: error: parse error before "use_colors"
dialog.h:109: Warnung: type defaults to `int' in declaration of `use_colors'
dialog.h:109: Warnung: data definition has no type or storage class
dialog.h:110: error: parse error before "use_shadow"
dialog.h:110: Warnung: type defaults to `int' in declaration of `use_shadow'
dialog.h:110: Warnung: data definition has no type or storage class
dialog.h:112: error: parse error before "attributes"
dialog.h:112: Warnung: type defaults to `int' in declaration of `attributes'
dialog.h:112: Warnung: data definition has no type or storage class
dialog.h:125: error: parse error before '*' token
dialog.h:128: error: parse error before '*' token
dialog.h:129: error: parse error before '*' token
dialog.h:130: error: parse error before '*' token
dialog.h:132: error: parse error before '*' token
lxdialog.c: In function `main':
lxdialog.c:94: Warnung: implicit declaration of function `refresh'
lxdialog.c:128: error: `stdscr' undeclared (first use in this function)
lxdialog.c:128: error: (Each undeclared identifier is reported only once
lxdialog.c:128: error: for each function it appears in.)
lxdialog.c:128: error: `LINES' undeclared (first use in this function)
lxdialog.c:128: error: `COLS' undeclared (first use in this function)
lxdialog.c: In function `Usage':
lxdialog.c:142: Warnung: implicit declaration of function `fprintf'
lxdialog.c:142: error: `stderr' undeclared (first use in this function)
lxdialog.c: In function `j_inputbox':
lxdialog.c:225: Warnung: implicit declaration of function `fputs'
lxdialog.c:225: error: `stderr' undeclared (first use in this function)
/usr/include/bits/string2.h: At top level:
dialog.h:112: Warnung: array `attributes' assumed to have one element
make[1]: *** [lxdialog.o] Fehler 1
make[1]: Leaving directory `/home/belbono/isdn4k-utils/scripts/lxdialog'
make: *** [scripts/lxdialog/lxdialog] Fehler 2
linux:/home/belbono/isdn4k-utils # make install
set -e; for i in `echo `; do make -C $i install; done
(some) ISDN devices already exist, not creating them.
Use scripts/makedev.sh manually if necessary.
linux:/home/belbono/isdn4k-utils #

hier also die isdntools - die hab ich mit rpm --rebuilddb source.rpm erstmal ja ...eben vom homeverz. ins usr/...sources/ verz. kopiert (was der noch gemacht hat weiss ich nicht) alles andere steht da

das is wohl alles - ich hoffe man kann damit was anfangen
 
hab keine lust, mehrere seiten zu quoten, deswegen:

zu Punkt 1:
$ rpm --rebuild
rpm: no packages given for rebuild

ein "man rpm" oder "info rpm" hilft uebrigens in solchen faellen meist, ausserdem mach bitte configure und make nicht als root, nur das make install muss als root ausgefuehrt werden, da es entweder privilegierte programme ausfuehrt, oder in privilegierte verzeichnisse schreibt

zu Punkt 2:
*-pre versionen sind moeglicherweise instabil, solltest also davon absehen, wenn es nicht unbedingt noetig ist. Nimm also besser 14. Bei mir hat die pre4 uebrigens wunderbar funktioniert mit gcc 3.3.2 . Zu testzwecken kannst du die installation per "./configure --prefix=<targetdir>" umleiten, und wenn du nicht soviel ausgabe haben willst, empfehle ich die -s option bei make, also zb "./configure --prefix=<targetdir> && make all install -s". Brauchst in diesem Fall auch nicht root zu sein, weiterer Vorteil.
Und natuerlich kann ein make install normal nie funktionieren, wenn das make all und configure schon fehlgeschlagen sind.

zu procps:
hast du das entpackt und dan direkt make / make install gemacht? vermutlich hat das auch ein configure script drin, was die dependencies ueberprueft, das solltest du vorher laufen lassen. dann werden die makefiles gar nicht erst angelegt, bzw dir korrekten
 
das ich root war lag daran das in meinem usermodus configure und make garnich gingen ...daher hab ich s dann nochmal als root versucht und das dann gepostet

bei rpm hab ich ins manuel geschaut und dort nur rebuilddb gefunden
sollte vielleicht mal schauen obs an meiner version liegt

nochwas : das prefix= targetdir ...was macht der dann ? was wird umgeleitet

und eins noch zu den mod tools .... 15 pre 4 hab ich da ... kompiliert wie gesagt, allerdings mit fehlern - ja und dann depmod -v ausgeführt
das ergebnis war .......version : 0.14 .. ?
naja egal ich versuchs nochma mit ner andern version - dabei interessiert mich noch was: muss ich die die ich jetz hab dazu deinstallieren oder wie verhält sich das bei linux ohne rpm ??

und die allerletzte frage erstmal: kernel 2.6.1 is aktuell aber die 2.6.2 is auch schon RC 1 mm1 - wie lange könnte das noch dauern bis der stable is ?
 
wenn configure und make im usermode nicht laufen, dann heisst das entweder, dass du das paket als root heruntergeladen hast, oder die rechte fuer die datei oder das verzeichnis nicht stimmen, ueberpruefe das doch mal

da du SuSE 9 hast, und ich auf meinem testrechner nur 8.2 heisst das entweder, sie habens nicht mehr drin, was ich mir nicht wirklich vorstellen kann, oder rpm ist irgendwie kaputt

mach mal ./configure --help, wie bei jedem linux programm, dann wirste sehen..

naja, wie ich schon oben geschrieben hab, wenn make all nicht geht, dann geht make install auch nicht, ergo wird das nicht installiert, und wie sollte dann die neue version da sein? btw, version 14 ist neu genug, mehr brauchste nicht

du kannst bei linux ohne rpm auch drueber installieren, sauberer waere allerdings ein "rpm -e <packagename>" und dann neu von sourcen drauf machen

hm, also die ersten kernelversionen wechseln recht schnell, normalerweise geht es aber ein paar wochen, bis die naechste grosse version kommt, dazwischen sind eher bugfixes und so. Wenn du schon so gierig bist, dann hol dir doch die cvs Version von 2.7 :)

und lies ein bisschen mehr doku, das ist zum Start unter Linux wirklich noetig, man, info, online, ...
 
Zurück
Oben