sonnenblen.de - Das unabhängige Sun User Forum
Betriebssysteme => Solaris => Thema gestartet von: Luca_ am 06. Februar 2006, 12:06:30
-
hallo allerseits
ich wollte auf meinem solaris 9 system vnstat irgendwie zum laufen bringen, da ich dieses tool sehr gerne unter linux benutze.
hab ich also den source code gesogen und wollte das kompilieren, jedoch stimmt das was nicht ganz:
root@app-srv01 # cd vnstat-1.4
root@app-srv01 # ls -l
total 74
-rw-r--r-- 1 root root 1961 Mar 26 2004 CHANGES
-rw-r--r-- 1 root root 17992 Feb 23 2004 COPYING
-rw-r--r-- 1 root root 116 Feb 29 2004 FAQ
-rw-r--r-- 1 root root 3390 Mar 26 2004 INSTALL
-rw-r--r-- 1 root root 1461 Mar 8 2004 Makefile
-rw-r--r-- 1 root root 2064 Mar 8 2004 README
-rw-r--r-- 1 root root 52 Mar 26 2004 UNINSTALL
-rw-r--r-- 1 root root 1514 Mar 26 2004 UPGRADE
drwxr-xr-x 2 root root 512 Feb 23 2004 cron
drwxr-xr-x 2 root root 512 Mar 8 2004 man
drwxr-xr-x 2 root root 512 Feb 23 2004 pppd
drwxr-xr-x 2 root root 512 Mar 26 2004 src
root@app-srv01 # make
make -C src vnstat
Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]
[ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
[ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
make: Fatal error: Unknown option `-C'
*** Error code 1
make: Fatal error: Command failed for target `vnstat'
root@app-srv01 # /usr/local/bin/make
make -C src vnstat
Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]
[ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
[ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
make: Fatal error: Unknown option `-C'
make: *** [vnstat] Error 1
mein make kennt die option -C nicht so wie sie im Makefile drin ist.
ich habe es mit dem GNU make und dem sun make versucht, welches bei solaris schon dabei ist:
root@app-srv01 # /usr/local/bin/make --version
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
root@app-srv01 # which make
/usr/ccs/bin/make
bei beidem kommt die meldung, dass -C nicht erkannt wird.
wie man die version des solaris make herauslesen kann hab ich leider nicht herausgefunden?
weiss jemand wie ich vielleicht das Makefile von vnstat abändern muss, damit das ganze funktioniert? oder kennt jemand ein ähnliches tool, welches mir simple traffic statistiken auf consolen basis ausgeben kann?
-
einfach mal mit gnu make versuchen, ist sowieso sinnvoll stets gnu make zu benutzen.
-
hab ich doch: ?
root@app-srv01 # /usr/local/bin/make
make -C src vnstat
Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]
[ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
[ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
make: Fatal error: Unknown option `-C'
make: *** [vnstat] Error 1
root@app-srv01 # /usr/local/bin/make --version
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
-
Hihi, da verarscht dich einer ;)
Du benutzt vielleicht gnu make um das Master Makefile zu starten, aber make startet in den Unterverzeichnissen wieder das make was er zuerst findet.
Dein Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]
[ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
[ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
sieht arg nach Sun make aus.
Gib mal ein "which make" ein, ich bin mir sicher da kommt /usr/ccs/bin/make" raus.
Du musst sicherstellen, dass gnu make vor dem sun make gefunden wird -> $PATH
Mfg. Erisch
-
du hast recht.. ich hab im make file jetzt mal den absoluten pfad zum gnu make gegeben, sieht schon einiges besser aus, jedoch noch nicht gut:
root@app-srv01 # /usr/local/bin/make
/usr/local/bin/make -C src vnstat
make[1]: Entering directory `/usr/share/src/vnstat-1.4/src'
gcc -O2 -c proc.c
In file included from proc.c:1:
vnstat.h:3:20: stdint.h: No such file or directory
proc.c: In function `parseproc':
proc.c:105: warning: integer constant is too large for "long" type
proc.c:106: warning: integer constant is too large for "long" type
proc.c:107: warning: integer constant is too large for "long" type
proc.c:109: warning: integer constant is too large for "long" type
proc.c:109: warning: integer constant is too large for "long" type
proc.c:135: warning: integer constant is too large for "long" type
proc.c:136: warning: integer constant is too large for "long" type
proc.c:137: warning: integer constant is too large for "long" type
proc.c:139: warning: integer constant is too large for "long" type
proc.c:139: warning: integer constant is too large for "long" type
make[1]: *** [proc.o] Error 1
make[1]: Leaving directory `/usr/share/src/vnstat-1.4/src'
make: *** [vnstat] Error 2
ich versteh nicht viel, ausser dass stdint.h fehlt ( ? ) und eine konstante ist zu "large" ? bitte um hilfe :(
-
willkommen beim "Kompilieren von Linux Zeugs unter Solaris"
Wenn du schwein hast, ist das der einzige Fehler, wenn nicht wirst du noch einige dieser Inkompatibilitäten zu spüren bekommen.
Zum Problem: stdint.h gibts bei Solaris nicht, die Deklaration für die int typen stehen in unistd.h
Ein intelligentes configure script erkennt das.
Zur schnellen Abhilfe, einfach unistd.h includen und es sollte gehen.
Mfg. Erisch
-
ich merk grad dass im proc.c eine funktion "readproc" gibt, hört sich sehr danach an, als er die infos aus /proc liest, welches ja bei solaris nicht vorhanden ist.
wird das irgendwann möglich sein das unter solaris zum laufen zu bringen? :D
-
[...]
wird das irgendwann möglich sein das unter solaris zum laufen zu bringen? :D
Wenn du es nicht für Solaris portierst eher nicht ;)