swish-e auf der DS210j compilieren

Status
Für weitere Antworten geschlossen.

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

ich versuche swish-e direkt auf der DS210j zu compileren, aber ich bekomme beim 'make' folgenden Fehler:

====================================
...
gcc -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -O
2 -o .libs/swish-e swish.o keychar_out.o dump.o result_output.o ./.libs/libswis
hindex.a ./.libs/libswish-e.so -lz -lm -Wl,--rpath -Wl,/opt/lib
./.libs/libswishindex.a(xml.o): In function `countwords_XML':
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:123: undefined reference to `XML_ParserCreate'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:159: undefined reference to `XML_SetUserData'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:160: undefined reference to `XML_SetElementHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:161: undefined reference to `XML_SetCharacterDataHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:168: undefined reference to `XML_Parse'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:174: undefined reference to `XML_ParserFree'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:164: undefined reference to `XML_SetCommentHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:168: undefined reference to `XML_Parse'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_GetCurrentLineNumber'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_GetErrorCode'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_ErrorString'
collect2: ld returned 1 exit status
make[3]: *** [swish-e] Error 1
make[3]: Leaving directory `/volume1/Main/swish-e/swish-e-2.4.7/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/volume1/Main/swish-e/swish-e-2.4.7/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/volume1/Main/swish-e/swish-e-2.4.7/src'
make: *** [all-recursive] Error 1
======================================================

libxml2 und expat sind installiert.
ich habe zuvor ein
./configure --prefix=/opt
durchgeführt.

Hat jemand vielleicht eine Idee, was da schief läuft?
Andere sourcen wie mp3wrap und faac konnte ich z.B. problemlos compilieren.

Danke für die Antworten,
Anna
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Könnte es sein, dass es für die xml Geschichte einen eigenen Parameter bei ./configure gibt? Mal in der offiziellen Doku des Projekts gesucht?
Und die libxml und expat sind auch sicher irgendwo in /opt?
Unter http://swish-e.org/docs/install.html#installing_without_root_access ist ein Beispiel mit erweiterten Flags bei configure
Und sonst auf goetz warten, der ist ein wandelnder Compiler ;)
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.176
Punkte für Reaktionen
424
Punkte
393
Hallo,
so dolle ist dann aber auch nicht:eek:.
Auf der DS-106 (ppc) lief es sofort durch. Auf der 107+ maulte configure rum cpp sei nicht "sane", lag an der fehlenden syslimits.h, einfach per touch eine leere angelegt und schon geht es.
Mit Deiner XML config scheint etwas noch nicht zu stimmen. Der entsprechende gcc-Aufruf sieht bei mir so aus
Rich (BBCode):
gcc -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -o .libs/swish-e swish.o keycha
r_out.o dump.o result_output.o  ./.libs/libswishindex.a -L/opt/lib -lxml2 ./.libs/libswish-e.so -lz -lm -Wl,--rpa
th -Wl,/opt/lib
Du kannst ja mal versuchen in src den obigen Befehl abzusetzen und danach make nochmal anwerfen.

Gruß Götz
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo Götz,

danke für den Tipp, aber leider bekomme ich bei dem Compileraufruf wieder die gleiche Fehlermeldung.
Irgendwie scheint meine compiler-umgebung nicht komplett oder durcheinander.
Ich bekomme z.B. immer die Meldung eines fehlenden 'tr', woher bekomme ich das?
Rich (BBCode):
../libtool: line 453: tr: not found
./.libs/libswishindex.a(xml.o): In function `countwords_XML':
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:123: undefined reference to `XML_ParserCreate'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:159: undefined reference to `XML_SetUserData'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:160: undefined reference to `XML_SetElementHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:161: undefined reference to `XML_SetCharacterDataHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:168: undefined reference to `XML_Parse'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:174: undefined reference to `XML_ParserFree'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:164: undefined reference to `XML_SetCommentHandler'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:168: undefined reference to `XML_Parse'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_GetCurrentLineNumber'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_GetErrorCode'
/volume1/Main/swish-e/swish-e-2.4.7/src/xml.c:169: undefined reference to `XML_ErrorString'
collect2: ld returned 1 exit status
make[3]: *** [swish-e] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Ich habe libxml2 über das Paket neon installiert, ist das okay?
Könnte es an weiteren fehlenden Paketen liegen?
Über weitere Tipps würde ich mich freuen.
Viele Grüße,
Anna
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.176
Punkte für Reaktionen
424
Punkte
393
Hallo,
tr ist Bestandteil von coreutils. ipkg list_installed gibt Dir Auskunft über alle installierten Pakete und deren Versionsnummern. ipkg upgrade bringt alle Pakete auf den aktuellen Stand. ipkg install coreutils wäre erst mal der Anfang.

Gruß Götz
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo Götz,

danke für den Tipp, coreutils hatten wirklich gefehlt, das 'tr'-Problem ist weg.
leider nicht das XML-Problem (wie oben)

mit xml2-config bekomme ich:

DiskStation> xml2-config --libs
-L/opt/lib -lxml2 -lz -lm
DiskStation> xml2-config --cflags
-I/opt/include/libxml2
DiskStation> xml2-config --version
2.7.7

Passt das so? Hast Du vielleicht noch eine Idee?
Nochmals Danke & Grüße
Anna
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.176
Punkte für Reaktionen
424
Punkte
393
Hallo,
das sollte so passen, bekomme die gleiche Ausgabe.
Ich würde noch mal von vorne anfangen also
Rich (BBCode):
make clean
./configure --prefix=/opt
make
dabei die Ausgaben von configure beobachten bzw. die config.log nach xml durchsuchen.

Gruß Götz
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo Goetz,

habe nochmal ganz von vorne angefangen - dann hat es geklappt. Lag also allein an den coreutils.
Vielen Dank.
Anna
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Was macht swich-e denn eigentlich so? Kann das mal jemand kurz erklären?

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.176
Punkte für Reaktionen
424
Punkte
393
Hallo,
swich-e Homepage
Swish-e is a fast, flexible, and free open source system for indexing collections of Web pages or other files. Swish-e is ideally suited for collections of a million documents or smaller. Using the GNOME™ libxml2 parser and a collection of filters, Swish-e can index plain text, e-mail, PDF, HTML, XML, Microsoft® Word/PowerPoint/Excel and just about any file that can be converted to XML or HTML text. Swish-e is also often used to supplement databases like the MySQL® DBMS for very fast full-text searching.

Gruß Götz
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

ich denke wenn ich ein Demo-Setup habe, werde ich das mal veröffentlichen.
Meine Vorstellung ist es, den Index Nachts aktualisieren zu lassen um dann schnelle Volltextsuchen auf dem NAS durchführen zu lassen.
Ich habe aus der Vergangenheit schon ein paar rudimentäre Erfahrungen mit swish-e.
Anna
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Meine Frage ist jetzt schon halb beantwortet. Trotzdem noch einmal nachgehakt: Ist das also sowas wie ein Toolset, das eine Datenbank füllt? Oder hat das Teil eine eigene GUI wie Google?

Itari
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo Itari,

swish-e ist ein Kommandozeilen-tool.
Es erzeugt zum einen einen Volltextindex in einer Datei, zum anderen kann man es in der Kommandozeile auch zum Suchen verwenden.
Für letzteres nimmt man besser eine Gui, z.B ein cgi-skript (siehe auch hier ) oder auch ein
kompiliertes Executable. Letzteres habe ich schon unter windows benutzt.
Mein erster und einfachster Ansatz wäre, swish-e auf der DS zu benutzen, den Index zu erzeugen, und unter windows die Suchabfragen durchzuführen.

Am coolsten wäre es sicherlich, es in das DS-Interface zu intergieren - und bestimmt auch nicht sonderlich aufwändig, habe ich nur noch nie gemacht.
Das werde ich, wenn ich nicht was besseres finde, bestimmt wal versuchen.
Will vielleicht jemand mithelfen? ;)

Ein kleiner Stoplerstein sind noch die Dateifilter - die muss man swish-e erst noch beibringen. Z. B. für Word als filter Antiword usw. Da habe ich Erfahrung, da sollte ich was hinbekommen. Als standard versteht swish-e zunächst mal Text und HTML.

Anna
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hi Anna,

danke für die Erklärungen. Jetzt hab ich es verstanden.

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@Anna_Konda
Und ich fordere mit Nachdruck einen Wikibeitrag bzw ein kleines HowTo dazu (wenn denn mal alles läuft) ;)
Das hört sich wirklich sehr interessant an

Gruss

tobi
 

Anna_Konda

Benutzer
Mitglied seit
01. Sep 2010
Beiträge
129
Punkte für Reaktionen
0
Punkte
22
Hallo,

ich bastle gerade mal wieder an der swish-e-Baustelle.
Ich würde gerne ein PHP Modul installieren wie hier http://devzone.zend.com/article/11335 beschrieben.

Ich bin bei dem Teil:
shell> tar -xzvf swish-0.4.0.tar-gz
shell> cd swish-0.4.0
shell> phpize
shell> ./configure
shell> make
shell> make install

allerdings habe ich kein phpize. kann ist das installieren, ohne mein orginal php abzuschießen, oder wie geht das?

Viele Grüße,
Anna
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat