Entwicklung des Paketes YaCy
Ziel des Projektes war es eine lokale Suchmaschine zu installieren, welche mit dem Proxy der Universität kommunizieren sollte. Durch die unabhängigkeit der Suchmaschine von anderer Dienste wie Google und Yahoo, eignete sich diese perfekt für den Einsatz an der Universität, da man sich hier unabhängig machen würde. Durch die Peer-to-Peer Technologie, die verwendet werden kann, um den Suchindex mit anderen Teilnehmern zu tauschen, ist diese Suchmaschine ausfallsicherer als große Suchdienste wie Google und Co.. So erfüllen nicht ein paar große Server den Dienst, sondern viele kleine Rechner, eben die der Teilnehmer, mit installierer YaCy Instanz. Der Zweck dieser Suchmaschine war, sich einen, auf die Universität personalisierten, Suchindex mittels des Surfverhalten der User zu erstellen. Um dies zu realisieren, sollte die Suchmaschine mit dem Proxy der Universität kommunizieren. Die Suchmaschine schneidet hierbei, keine benutzerbezogenen Daten mit, sondern wertet die angefragten Seiten, bei denen keine benutzerbezogenen Daten verwendet werden, aus.
Wieso überhaupt ein Paket?
Von der Suchmaschine YaCy war aktuell, zum Zeitpunkt des Projektes kein .rpm Paket für SuSe Betriebssysteme verfügbar, dass den Systemadministratoren genügte (https://build.opensuse.org/package/show?package=yacy&project=home%3Acoprophiliac – enthält keine “SuSe”-spezifischen Anpassungen). Da am RRZE Vorbedingung für die Installation neuer Software ein RPM Paket ist, war es nötig ein eigenes Paket zu bauen.
Die Grundlage für das Bauen des Paketes, entnahm ich einem Spec File aus dem SVN Repository der YaCy Entwickler. Leider war dieses Spec File aus dem Jahre 2006 und wurde bis heute kaum angepasst, da die Entwickler nur noch Pakete für Debian erstellen, aber keine .rpm SuSe Pakete mehr bereitstellen. Somit musste das Spec File, an die Bedürfnisse des Projektes, angepasst werden. Nach der Einarbeitung in das Spec File, wurden in diesem Anpassungenvorgenommen, so dass es schlieslich für die Bedürfnisse des Projektes angepasst war. Hierbei wurden Pfade korrigiert und Befehle angepasst oder nicht mehr benöigtes zu erst auskommentiert und zum Schluss gelöscht. Auch neue Befehle und Definitionen kamen hinzu. Das Init Skript wurde hierfür angepasst. Im Spec File aus dem SVN war auch ein Init Skript für SuSe Betriebssysteme enthalten, dies musste aber korrigiert und angepasst werden. Hier wurden Befehle und Pfade angepasst und nicht mehr Benötigtes entfernt sowie neues hinzugefügt. Zum Schluss wurde das Init Skript aus dem Spec File ausgeschnitten und in eine eigene Datei verschoben die dann nur noch kopiert wurde. Danach war das Paket fertig zum Einsatz auf dem Test Server
Leider kam das Paket nie richtig zum Einsatz, da der für das Projekt sehr wichtige ICAP Support in der aktuellen YaCy Version fehlte bzw. nicht mehr implementiert war. Das ICAP Protokoll hätte die Weiterleitung der HTTP Anfragen der User, an den Proxy-Server weiter an die YaCy Suchmaschine übernehmen sollen. Da aber der Proxy-Server nach langer Arbeit ICAP fähig war, die Suchmaschine YaCy aber das Protokoll nicht mehr an Board hatte und es keinen Patch o.ä. gegeben hat, wurde das Projekt schließlich eingestellt. Durch das Fehlen des ICAP Supports ist eigentlich die wichtigste und zugleich die komfortabelste Funktion der “YaCy an Proxy” Anbindung weggefallen. Dies machte das Projekt, dann leider sehr uninterresant für uns, da wir genau dies gebraucht hätten. Von Seiten der Entwickler der Suchmaschine, kam auf meine Anfrage leider bisher keine Rückmeldung.
Zu guter letzt und damit die Open Source Gemeinde dennoch etwas von meiner Arbeit hat, veröffentliche ich nun das von mir gebaute YaCy Paket, im offiziellen OpenSuse Repository.
Project course of the project YaCy to Proxy
Development of the package YaCy
Aim of this project was to install a local search engine which communicates with the university’s Proxy. Through the independency of search engines of other services like Google and Yahoo, this one is perfect for the use at the university, because you can make yourself independent there. Through the Peer-to-Peer technology, which can be used to switcht the search index of other participant, this search engine is more fail-proof as big search engines like Google and Co.. So not only some big servers fulfill their duty but many smaller computers, said of the participants, with insatlled YaCy instance. The function of this search engine was to create one search index pesonalized for the university through the user’s surf behavior. To realise this project the search engine should communicate with the university’s Proxy. The search engine is here not recording any user related data but evaluates the inquired sites where no user related data is used.
Why a package at all?
There wasn’t a .rpm package for SuSe software of the search engine available at the time of the project which satisfyed the system admins (https://build.opensuse.org/package/show?package=yacy&project=home%3Acoprophiliac – does not contain a “SuSe”-specific adjustment). Because the precondition at the RRZE for the installation of new software is a RPM package, it was neccessary to build an own package.
I extracted the base for the building of the package from a Spec File of the SVN Repository of the YaCy developers. Unfortunately this Spec File was from 2006 and hasn’t been adjusted until today, because the developers are only developing packages for Debian but don’t provide any .rpm SuSe packages anymore. Therefore the Spec File has to be modified for the needs of the project. After the adaption into the Spec File, adjustments have been made to fulfill the project’s needs. Therefore first paths have been correted, commands adjusted or not longer neccessarys have been deleted. Also new comands and definitions have been added. Therefore the Init Skript has been modified. In the Spec File from the SVN, a Init Skript was already included for SuSe software, but it needed modification. Therefore comands and paths again have been adjusted and not longer used ones have been deleted aswell as new ones added. In the end the Init Skript has been cut out from the Spec File and was placed in an own data file, which then has only been copied. After that the package was ready for use on the test server.
Unfortunately the package has never really been used because the for this project very important ICAP Support in the current YaCy version was missing, respectively hasn’t been implemented anymore. The ICAP protocol should have forwarded the user HTTP requests on the Proxy Server to the YaCy search engine. But because the Proxy Server was, after a long time of work, working with ICAP, but the search engine YaCy did no longer contain the protocol and there hasn’t been a patch or similar, the project has finally been abondend. Because of the missing ICAP Support the rather important and most comfortable function of the “YaCy to Proxy” connection was gone. This makes the project very uninteressting for us, because we needed exactly this one. There was no reaction from the search engine developers and my requests haven’t been answered yet.
Finally the Open Source community should have some benefits out of my work, therefore I published my work: YaCy Paket, im offiziellen OpenSuse Repository.