OpenLogos 1.0.1 Installation und Anwendung
Datenbank-Konfiguration
Bisher haben wir über den Datenbankadministrator-Benutzer postgres auf die Datenbank zugegriffen. Für OpenLogos legen wir einen PostgreSQL-Benutzer namens logos an. Er soll keine anderen Datenbanken erstellen dürfen. Als Passwort benutze ich in dieser Installation das Wort »geheim«.
Achtung: Um die Datenbankkonfiguration möglichst einfach zu halten, wird logos mit Datenbankadministrator-Rechten ausgestattet. Wem dies zuwider ist, dem gratuliere ich zu seinem Sicherheitsbewusstsein und den bitte ich an dieser Stelle sofort zum nächsten Abschnitt Konfiguration der Datenbankrechte zu springen.
> sudo -u postgres createuser --adduser --no-createdb --pwprompt --encrypted logos Enter password for new user: Enter it again:
Das Passwort müssen wir auch in der OpenLogos-Konfigurationsdatei hinterlegen:
> grep Database_Password /home/local/share/openlogos/bin/server.properties Database_Password=geheim
Wie in /usr/share/doc/odbc-postgresql/README.Debian beschrieben, konfigurieren wir nun den PostgreSQL-ODBC-Treiber.
> sudo odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template > sudo cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >> /etc/odbc.ini
Die Datei /etc/odbc.ini ergänzen wir nun mit unseren Daten aus der Datei /home/local/share/openlogos/bin/server.properties.
> cat /etc/odbc.ini [LogosDB] Description = OpenLogos Driver = PostgreSQL Trace = No TraceFile = /tmp/psqlodbc.log Database = ESENSE Servername = localhost UserName = logos Password = geheim Port = 5432 Protocol = 6.4 ReadOnly = Yes RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No ConnSettings =
Testen wir jetzt mal den Zugriff auf unsere Datenbank über ODBC.
> isql LogosDB SQL> help abc_flag | TABLE_QUALIFIER | TABLE_OWNER | TABLE_NAME [...] | | public | abc_flag [...] [...] SQL> select * from abc_flag +--------------+---------+----------------+--------------+ | language_code| abc_code| word_class_code| target_switch| +--------------+---------+----------------+--------------+ | 03 | Z | 20 | N | [...] SQL> quit
Sollte beim Zugriff per isql
eine Fehlermeldung mit dem Hinweis SQLConnect failed
erfolgen, könnte ein PostgreSQL-Restart helfen.
> sudo /etc/init.d/postgresql-8.0 restart
Konfiguration der Datenbankrechte
(Wer sich dazu entschlossen hat, dem PostgreSQL-Benutzer logos Datenbankadministrator-Rechte zu geben, darf diesen Abschnitt ignorieren.)
Mit dem nachfolgenden Befehl wird der Benutzer logos mit keinerlei Rechten angelegt:
> sudo -u postgres createuser --no-adduser --no-createdb --pwprompt --encrypted logos Enter password for new user: Enter it again:
Die Erlaubnis, lesend auf die Tabelleninhalte zuzugreifen, muss man logos für jede einzelne Tabelle geben. Ein paar Shell-Befehle erledigen das für uns. Es gibt sicher elegantere Lösungen mit Datenbankprozeduren.
> echo "GRANT SELECT ON TABLE "> logos-grant.sql > sudo -u postgres psql -c "\d" ESENSE | grep "^ public" | cut -d"|" -f2 \ | while read lin; do echo '"'${lin}'"'; done | paste -s -d ",">> logos-grant.sql > echo "TO logos;">> logos-grant.sql > cat logos-grant.sql | sudo -u postgres psql ESENSE > rm logos-grant.sql
Da OpenLogos per ODBC zugreift, ist der nachfolgende Punkt nur notwendig, wenn man als Benutzer logos mit psql
arbeiten möchte, Da wir später aber sicher auch ein wenig mit der Datenbank »spielen« möchten, vervollständigen wir noch die Konfiguration.
Standardmäßig werden beim Anmelden an der Datenbank nur Benutzernamen akzeptiert, die auch als Systembenutzer vorhanden sind. Dies ändern wir speziell für unsere Datenbank und unseren Benutzer. Die dafür notwendige zusätzliche Zeile in der Datei /etc/postgresql/8.0/main/pg_hba.conf muss unbedingt oberhalb der "local all all"-Zeile eingefügt werden. Details hierzu findet man in der PostgreSQL-Dokumentation unter /usr/share/doc/postgresql-doc-8.0/html/client-authentication.html.
> cat /etc/postgresql/8.0/main/pg_hba.conf [...] # TYPE DATABASE USER CIDR-ADDRESS METHOD # for OpenLogos local ESENSE logos md5 # "local" is for Unix domain socket connections only local all all ident sameuser [...]
Nachdem die Konfigurationsdatei neu eingelesen wurde, sollte die Anmeldung mit dem neuen Benutzer und dem entsprechenden Passwort funktionieren.
> sudo /etc/init.d/postgresql-8.0 reload > psql -U logos -W ESENSE ESENSE=> select * from abc_flag; language_code | abc_code | word_class_code | target_switch ---------------+----------+-----------------+--------------- 03 | Z | 20 | N [...] ESENSE=> \q
Jetzt springen wir wieder zurück in den vorherigen Abschnitt, um das Passwort in die OpenLogos-Konfigurationsdatei einzutragen und mit der ODBC-Konfiguration fortzufahren.
Anwendung
Endlich können wir unseren ersten Übersetzungslauf starten. Im Build-Verzeichnis von OpenLogos ist hierfür eine Datei mit einem kurzen deutschen Satz und eine passende Steuerdatei namens apitest_settings.txt
für die Übersetzung vorbereitet. Der Name der Ausgabedatei muss der Bildschirmausgabe entnommen werden. Die angezeigten Fehler sind normal, solange sich der übersetzte Text in der Ausgabedatei befindet.