Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] Problem bei inst. von Squidguard - make bricht ab

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

[gelöst] Problem bei inst. von Squidguard - make bricht ab

Beitrag von toady »

Hallo zusammen,

ich hab ein Problem bei der Installation von SquidGuard:

nach dem ./configure, das Fehlerfrei durchläuft, bricht der make-Befehl ab, weil er unter /usr/local/BerkleyDB/include ein Verzeichnis "lex.yy.c vermutet, es aber nicht findent (is übringens auch gar nicht da!).

Auf squidguard.org steht dazu, dass man die Meldung ignorieren kann, wenn man mit gcc -Wall compiliert. Aha???

Kann mir jemand was dazu sagen??
Ich komm da irgendwie nicht weiter!

Dank euch!!
Gruß,
toady
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Zeig mal die genaue Ausgabe von 'configure'.
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

bitteschön:

linux:/tmp/src/squidGuard-1.2.0 # ./configure
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix...
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking whether make sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... no
checking for yywrap in -lfl... no
checking for yywrap in -ll... no
checking for lynx... false
checking for perl... /usr/bin/perl
checking for db_version in -ldb... yes
checking for ANSI C header files... yes
checking for db.h... yes
checking for regex.h... yes
checking for unistd.h... yes
checking for gcc option to accept ANSI C... none needed
checking for an ANSI C-conforming const... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... (cached) yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for regcomp... yes
checking for regerror... yes
checking for regexec... yes
checking for strdup... yes
checking for strerror... yes
checking for vsprintf... yes
checking for sigaction... yes
checking for signal... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/sg.h
config.status: creating doc/Makefile
config.status: creating test/Makefile
config.status: creating test/test1.conf
config.status: creating test/test2.conf
config.status: creating samples/Makefile
config.status: creating samples/sample.conf
config.status: creating samples/squidGuard.cgi
config.status: creating samples/squidGuard-simple.cgi
config.status: creating contrib/Makefile
config.status: creating contrib/squidGuardRobot/squidGuardRobot
config.status: creating contrib/sgclean/sgclean
config.status: creating contrib/hostbyname/hostbyname
config.status: creating src/config.h
linux:/tmp/src/squidGuard-1.2.0 #


Gruß,
toady
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Und 'make' ?
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

sorry:

making all in squidGuard-1.2.0
make[1]: Entering directory `/tmp/src/squidGuard-1.2.0/src'
making all in src
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c main.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgLog.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgDb.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c sgDiv.c
yacc -d sg.y || (cp y.tab.c.bison y.tab.c && cp y.tab.h.bison y.tab.h)
/bin/sh: yacc: command not found
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c y.tab.c
: sg.l || cp lex.yy.c.flex lex.yy.c
gcc -I.. -I. -I. -I/usr/local/BerkeleyDB/include -DHAVE_CONFIG_H -g -O2 -I/usr/local/BerkeleyDB/include -c lex.yy.c
gcc: lex.yy.c: No such file or directory
gcc: no input files
make[1]: *** [lex.yy.o] Error 1
make[1]: Leaving directory `/tmp/src/squidGuard-1.2.0/src'
make: *** [all] Error 1
linux:/tmp/src/squidGuard-1.2.0 #
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Installier mal 'bison'.
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

bison???
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Klar!
Bison und Yacc ist doch fast das gleiche...Warst du noch nie im Zoo?
Dort gibt es auch GNUs...
...
..
.
Nee, im Ernst: Bison ist GNU's Version von Yacc (Yet Another Compiler Compiler).
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

Haha... *g*

ich hätte hier den bison-Parsergenerator zu bieten.

und wie bring ich dem Ganzen dann bei, den bison zu nehmen??
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Wenn du bison installierst, wird da nicht auch ein 'yacc' mit installiert ?
Ein neuer 'configure'-Lauf sollte bison aber auch erkennen.
Oder du legst dir ein /usr/bin/yacc mit folgendem Inhalt an

Code: Alles auswählen

#!/bin/sh
exec bison -y "$@"
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

da steht jetzt, das er den GNU C compiler benutzt...

und in den Abhängigkeiten steht nur "m4"
Zuletzt geändert von toady am 6. Apr 2005, 14:20, insgesamt 1-mal geändert.
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Das ist OK.
Aber was steht bei

Code: Alles auswählen

checking for bison... no
checking for byacc... no
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

gibt's net
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Doch. Gibt's.
Bei dir sollte da jetzt aber

Code: Alles auswählen

checking for bison... bison -y
stehen.

Du musst übrigens wahrscheinlich auch noch 'flex' installieren.
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

tatsächlich!!

jetzt klapp et!!!

am flex hat's gelegen.

allerdings hat er unter /usr/local/ keinen Ordner squidGuard angelegt... das bemängelt er jetzt beim starten. Oder muss man das selber machen?

Aber wenn du mir jetzt noch kurz erläutern könntest, warum und was wir jetzt gemacht haben, wär ich dir sehr verbunden!!

Ein neuer Compiler, gut... aber warum?
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Also gut...

squidGuard benutzt einen Parser-Generator um einen Parser für eine bestimmte Syntax zu erzeugen (für die Config-Datei, nehm ich an).
Der Parser-Generator heisst urprünglich (UNIX, alt) YACC.
Zusätzlich wird noch ein Lexer-Generator benutzt der halt weiss welche 'TOKEN' in der Syntax vorkommen dürfen/können. Diese TOKEN werden dann an den Parser weitergereicht, der widerum bei bestimmten TOKEN bestimme Dinge macht (d.h. Code ausführt).
Der Lexer heisst ursprünglich Lex.
Bei dir fehlten sowohl Lexer (GNU-Version: Flex) und Parser-Generator (GNU-Version: Bison).

Es wird also quasi eine Meta-Sprache benutzt (eigentlich zwei), die mithilfe von Lex/Yacc (Flex/Bison) in C-Code übersetzt wird. GCC wird dann als normaler C-Compiler benutzt um aus C was ausführbares zu machen.

Du hast übrigens die Hinweise aus der squidGuard-Doku falsch verstanden. Dort steht, dass eventuelle Warnungen beim Übersetzen der generierten Dateien ignoriert werden können.
Bei dir wurden aber keine Dateien aus sg.l und sg.y (Ja, das sind die Lexer- und Parser-Beschreibungen) erzeugt weil Lex und Yacc fehlten.

So, das war's...
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

aha! Danke!!

und das hier:

linux:/usr/local/bin # squidGuard start
2005-04-06 15:08:09 [17309] squidGuard: can't write to logfile /usr/local/squidGuard/log/squidGuard.log
2005-04-06 15:08:09 [17309] squidGuard: can't open configfile /usr/local/squidGuard/squidGuard.conf
2005-04-06 15:08:09 [17309] going into emergency mode

oder muss man das immer selber machen?
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Was muss man immer selber machen ?

Gibt's das Log-Verzeichnis denn ?
Und die Config-Datei ? Die musst du auf jeden Fall selbst erstellen.
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
toady
Newbie
Newbie
Beiträge: 26
Registriert: 22. Dez 2004, 13:22
Wohnort: bei Hanau

Beitrag von toady »

das meinte ich ja.

An dieser Stelle gibt's nämlich gar kein Squid oder SquidGuard-Verzeichnis.

Dann mach ich mir grad eins.

Dank dir!!!
toady
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Hab übrigens gerade gesehen, dass du nur drei Dateien hättest umbenennen müssen. Die generierten Dateien werden nämlich mitgeliefert.
Naja, hast vielleicht was gelernt dabei...
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Antworten