De DE/installation debian postgres8 1
Contents
- 1 Installation der Pakete
- 2 Installation von PLjava
- 3 Passwort für Benutzer postgres vergeben
- 4 Konfiguration das PostgreSQL PLjava verwendet
- 5 Entpacken von ADempiere
- 6 Installation von ADempiere ohne X11
- 7 Installation von ADempiere mit Grafischem Installer
- 8 Installation der Datenbank
- 9 Starten des Anwendungsservers
- 10 Starten der Anwendung (Swing-Client)
Installation der Pakete
Wir laden uns Adempiere_320.tar.gz von [sf.net] herunter.
Ab hier sollten wir uns als Systembenutzer "root" einloggen. Einloggen auf Konsole als root ist ausreichend.
Wir benötigen java welches nur im non-free Zweig der Repositories vorhanden ist. Dazu erweitern wir unsere jetzigen source.list Einträge oder wir tragen folgende Zeilen in /etc/apt/sources.list ein
deb http://ftp.uni-erlangen.de/pub/Linux/debian/ etch main non-free contrib deb-src http://ftp.uni-erlangen.de/pub/Linux/debian etch main non-free contrib
Danach führen wir folgenden Befehl aus um die folgenden Pakete zu installieren
aptitude update;aptitude install less ssh dpkg-dev unzip sun-java5-jdk postgresql-8.1 libpq-dev postgresql-server-dev-8.1 gcj java-gcj-compat-dev sux
Nun ist automatisch in Debian GNU java aktiviert, was man mit folgendem Befehl herausfinden kann
java -version
Wir wechseln deshalb die java version indem wir folgenden Befehl ausführen
update-java-alternatives --set java-1.5.0-sun
Nun sollte java -version eine andere Ausgabe erzeugen.
Installation von PLjava
Nun benötigen wir PLjava, das als Java Backend für PostgreSQL verwendet wird. Da jedoch die mit Debian Etch mitgelieferte Variante einen Bug aufweist, werden wir PLjava aus dem Sourcecode selbst kompilieren (in dem Debian-Paket postgresql-8.1-pljava-gcj in der Version 1.3.0-1+b1 fehlt eine dynamische Bibliothek, was den Installationsprozess abbrechen lässt). Zunächst ist es notwendig, dass in der Konfigurationsdatei /etc/apt/sources.list die entsprechende Zeile für die Quellpakete vorhanden ist (in unserem Fall benutzen wir einen Mirror der Universität Erlangen):
deb-src http://ftp.uni-erlangen.de/pub/Linux/debian etch main
Anschliessend laden wir den entsprechenden Quellcode zu dem Paket postgresql-8.1-pljava-gcj herunter:
cd /usr/local/src apt-get source postgresql-8.1-pljava-gcj
Damit liegt uns nun der Quellcode des Pakets im Verzeichnis /usr/local/src vor. Zunächst müssen wir das Makefile /usr/local/src/postgresql-pljava-1.3.0/src/C/pljava/Makefile an drei Stellen so anpassen, dass die fehlende dynamische Bibliothek libjvm.so mit eingebunden wird.
* Zeile 71: SHLIB_LINK = -lgcj wird zu SHLIB_LINK = -lgcj -ljvm * Zeile 73: SHLIB_LINK += -lws2_32 wird zu SHLIB_LINK += -lws2_32 -ljvm * Zeile 79: SHLIB_LINK += -L. -framework JavaVM wird zu SHLIB_LINK += -L. -framework JavaVM -ljvm
Wir setzen wir einen symbolischen Link von /usr/lib/gcj-4.1/libjvm.so nach /usr/lib/libjvm.so, da das modifizierte Makefile die entsprechende Bibliothek benötigt:
ln -s /usr/lib/jvm/java-1.5.0-sun-1.5.0.10/jre/lib/i386/client/libjvm.so /usr/lib/libjvm.so
Nun installieren wir PLjava mittels:
export JAVA_HOME="/usr/lib/jvm/java-gcj" cd /usr/local/src/postgresql-pljava-1.3.0 make make install
Ist diese Prozedur ohne Fehler einmal durchlaufen, haben wir bereits ein funktionierendes PLjava Backend vor uns.
Nun können wir mit folgendem Befehl testen ob sich das JNI_CreateJavaVM object in dieser Datei befindet
objdump -t -T /usr/lib/postgresql/8.1/lib/pljava.so |grep JNI_CreateJavaVM
Passwort für Benutzer postgres vergeben
Nachdem man die PostgreSQL Datenbank installiert hat, muss man noch dem Datenbankbenutzer "postgres" ein Passwort vergeben.Dies kann man mit folgenden Befehlen
su - su postgres psql ALTER USER postgres PASSWORD 'MeinGeheimesPasswort'; \q
Konfiguration das PostgreSQL PLjava verwendet
Nun müssen wir noch PostgreSQL dazu anweisen, dieses zu verwenden. Damit das DBMS die entsprechenden Java Kommandos versteht, müssen wir zunächst der Konfigurationsdatei /etc/postgresql/8.1/main/postgresql.conf die folgenden Zeilen an das Ende anfügen:
custom_variable_classes = 'pljava' pljava.classpath = '/usr/lib/postgresql/8.1/lib/pljava.jar' pljava.statement_cache_size = 10 pljava.release_lingering_savepoint = true pljava.vmoptions = '' pljava.debug = false
Anschliessend müssen wir PostgreSQL mitteilen, an welcher Stelle das DBMS die Java VM findet. Dazu fügen wir die folgende Zeile der Konfigurationsdatei /etc/postgresql/8.1/main/environment an:
JAVA_HOME='/usr/lib/jvm/java-1.5.0-sun'
Anschliessend starten wir den Server neu:
reboot
Beim Hochfahren des Servers sollte nun auch das DBMS automatisch gestartet werden.
Nun müssen wir das gesamte Datenbank-Cluster main so konfigurieren, dass es PLjava verwendet. Dazu binden wir PLjava in die Datenbank template1 und alle darunterliegenden Datenbanken ein, so dass diese PLjava verwenden können. Mit der unten stehenden Anweisung wird nun jede Datenbank, die auf dem PostgreSQL Server installiert wird, so konfiguriert, dass sie PLjava als Backend verwendet:
su postgres -c "export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun; /usr/lib/postgresql/8.1/bin/psql -d template1 -f /usr/local/src/postgresql-pljava-1.3.0/src/sql/install.sql"
Nun fügen wir dem System einen neuen Benutzer adempiere hinzu, mit dessen Rechten wir auf die Applikation und die Datenbanken zugreifen werden:
adduser adempiere
Diesem Benutzer erlauben wir nun den Zugriff auf die Datenbank, wobei dieser unter der User-ID postgres ausgeführt wird. Der User postgres übernimmt dabei die Rolle eines Systemusers, was die Zugriffe auf alle PostgreSQL Resourcen angeht. Um nun dem Benutzer adempiere die beschriebenen Rechte zu erteilen, fügen wir der Konfigurationsdatei /etc/postgresql/8.1/main/pg_hba.conf folgende Zeilen hinzu:
local all postgres ident sameuser local all all md5 host all all 127.0.0.1/32 md5 host all postgres 192.168.1.0/24 md5 host all adempiere 192.168.1.0/24 md5
Nun die PostgreSQL Datenbank neustarten mit
/etc/init.d/postgresql-8.1 restart
Nun setzen wir das Passwort des Benutzers postgres neu mittels:
su postgres psql −−command "ALTER USER postgres PASSWORD 'MeinGeheimesPasswort'"
Das Passwort, das hier angegeben wird, wird lediglich von dem Installationsskript verwendet.
WICHTIG: Von nun an sollten alle Operationen als User adempiere ausgeführt werden!
Wir wechseln zum Benutzer adempiere mit folgendem Befehl
su adempiere
Nun müssen wir die beiden Umgebungsvariablen JAVA_HOME und ADEMPIERE_HOME für den Benutzer adempiere setzen. Dies tun wir, indem wir der Konfigurationsdatei /home/adempiere/.bashrc die beiden folgenden Zeilen anhängen:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun export ADEMPIERE_HOME=/home/adempiere/Adempiere
Anschliessend lesen wir diese Datei für die aktuelle Sitzung ein:
. ~/.bashrc
Entpacken von ADempiere
Wir wechseln in das Verzeichniss /home/adempiere und führen folgenden Befehl aus
tar -xzf Adempiere_320.tar.gz
Danach wechseln wir in das neu entstandene Verzeichniss Adempiere
Installation von ADempiere ohne X11
Nun führen wir die eigentliche Installation des ERP-Systems durch. Dazu existieren zwei Möglichkeiten: einerseits ist eine interaktive Installation mittels einer GUI möglich, auf der anderen Seite eine rein textbasierte. Da wir einen großen Wert auf die Sicherheit unseres Systems legen und damit kein X11 auf dem Server verwenden, entscheiden wir uns an dieser Stelle für die textbasierte Installation mittels des Skripts /home/adempiere/Adempiere/RUN_silentsetup.sh. Dazu kopieren wir zunächst ein Template der zur Installation von Adempiere benötigten Konfigurationsdatei:
cp /home/adempiere/Adempiere/AdempiereEnvTemplate.properties /home/adempiere/Adempiere/AdempiereEnv.properties
und passen diese anschliessend unseren Anforderungen an:
#Adempiere home ADEMPIERE_HOME=/home/adempiere/Adempiere #Java home JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
#Type of jvm, sun|mac| ADEMPIERE_JAVA_TYPE=sun #Java runtime options ADEMPIERE_JAVA_OPTIONS=-Xms64M -Xmx512M
#Type of database, postgresql|oracle|oracleXE|fyracle ADEMPIERE_DB_TYPE=postgresql #Database server host name ADEMPIERE_DB_SERVER=adempiere.slashconcept.local #Database port, oracle[1512], postgresql[5432], fyracle[3500] ADEMPIERE_DB_PORT=5432 #Database name ADEMPIERE_DB_NAME=adempiere #Database system user password ADEMPIERE_DB_SYSTEM=MeinGeheimesPasswort #Database user name ADEMPIERE_DB_USER=adempiere #Database user password ADEMPIERE_DB_PASSWORD=MeinGeheimesPasswort
#Type of application server ADEMPIERE_APPS_TYPE=jboss #Application server host name ADEMPIERE_APPS_SERVER=adempiere.slashconcept.local #Application server port ADEMPIERE_JNP_PORT=1099 ADEMPIERE_WEB_PORT=80 ADEMPIERE_SSL_PORT=443
#Certificate details #Common name, default to host name ADEMPIERE_CERT_CN=adempiere.slashconcept.local #Organization, default to the user name ADEMPIERE_CERT_ORG=slashconcept GbR #Organization Unit, default to ‘AdempiereUser’ ADEMPIERE_CERT_ORG_UNIT=Accounting #town ADEMPIERE_CERT_LOCATION=Goslar #state ADEMPIERE_CERT_STATE=Niedersachsen #2 character country code ADEMPIERE_CERT_COUNTRY=DE
Anschliessend führen wir das Installationsskript aus:
cd ~/Adempiere chmod a+x *.sh ./RUN_silentsetup.sh
Installation von ADempiere mit Grafischem Installer
Anmerkung: sollten wir an dieser Stelle diese Variante der Installtion bevorzugen, muss die Konfigurationsdatei /home/adempiere/Adempiere/AdempiereEnv.properties nicht angepasst werden. Stattdessen führt man hier das Setup-Skript RUN_setup.sh aus.
Wenn wir nicht als Benutzer adempiere in X eingeloggt sind, sollte man eine neue konsole öffnen und folgende Befehle ausführen
sux adempiere
Dadurch bekommt der Benutzer adempiere Rechte Grafische Anwendungen zu starten. Nachdem Sie diesen Befehl ausgeführt haben sollten Sie folgendes auf der Konsole sehen: xauth: creating new authority file /home/adempiere/.Xauthority
Nun navigiert man in das entpackte Adempiere Verzeichniss und führt folgenden Befehl aus
chmod +x RUN_setup.sh ./RUN_setup.sh
Jetzt ercheint folgendes Fenster.
Java Home:
- Debian/Etch = /usr/lib/jvm/java-1.5.0-sun
Adempiere Home:
- Debian/Etch = Das Verzeichniss wo Sie das Paket Adempiere_330.tar.gz ausgepackt haben.
Application Server:
- Der Name des Rechners oder die IP Adresse wo Adempiere installiert wird.
Server Type:
- "jboss" wenn man kein tomcat und kein jboss installiert hat. Die option "tomcatOnly" scheint nur dafür zusein, das wenn man jboss schon installiert hat.
Deployment:
- Debian/Etch = /var/lib/tomcat5.5
SSL
- Man kann sich den Port aussuchen, aber da wir nicht Benutzer root sind, muss der Port über Port 1024 liegen, z.b. Port 1443
Web Port:
- Man kann sich den Port aussuchen , aber da wir nicht Benutzer root sind, muss der Port über Port 1024 liegen, z.b. Port 8888
Database Name:
- In diesem Howto legen wir eine Datenbank mit Namen "adempiere" an.
Database Server:
- Hier verwenden wir "localhost", oder wir ändern in der Datei /etc/postgresql/8.1/main/postgresql.conf die option listen_addresses
Database Type:
- Hier wählen wir "postgresql"
System Password:
- Das Passwort des Benutzers postgres
Dort trägt man alle relevanten Daten ein und klickt auf den Button "Test". Nun erscheint folgendes Fenster.
Wenn diese Daten stimmen, klickt man auf den Button mit dem grünen Haken. Wenn im setup Fenster links-unten das Wort "OK" erscheint,dann ist das setup gut verlaufen. Es gibt zwar keine Haken in den checkboxen neben Web Port, SSL, Database Name, Database User und Database Passwort, aber dies ist ok wenn links-unten das Wort "OK" ercheint. Dann klicken wir auf den Button "Save". Daraufhin ercheint folgendes Fenster.
Dort klicken wir, wenn wir einverstanden sind, auf den Button "Ja, ich verstehe und akzeptiere". Dann ercheint folgendes Fenster.
Nachdem wir auf den Button "OK" geklickt haben, sehen wir folgende Ausgaben auf der Konsole
Installation der Datenbank
Nun haben wir Adempiere soweit installiert, dass wir jetzt die entsprechende Datenbank aufbauen können. Dazu führen wir folgende Kommandos als Benutzer postgres aus:
psql -c “DROP DATABASE adempiere;” psql -c “DROP USER adempiere;” psql -c “CREATE ROLE adempiere SUPERUSER LOGIN PASSWORD ‘MeinGeheimesPasswort’” psql -c “CREATE DATABASE adempiere WITH ENCODING=’UNICODE’ OWNER=adempiere;”
oder
createuser -U postgres -s adempiere -P createdb adempiere -E UNICODE -O adempiere -U adempiere
Anschliessend testen wir als Datenbankadministrator postgres die Verbindung zu der von uns erstellten Datenbank mittels:
psql -h localhost -U adempiere -W adempiere
Damit starten wir die PostgreSQL eigene Konsole, in der wir bspw. folgende Kommandos absetzen können:
* Alle von PostgreSQL verwalteten Datenbanken anzeigen:
\l
(hier muss u.a. die Datenbank adempiere aufgelistet sein)
* Alle von PostgreSQL verwalteten Datenbankbenutzer anzeigen:
\du
(hier muss u.a. der Datenbankbenutzer adempiere augelistet sein)
Nun füllen wir die manuell erstellte Datenbank adempiere mit Inhalt auf.
psql -h localhost -d adempiere -U adempiere -c “drop schema sqlj cascade” psql -h localhost -d adempiere -U adempiere -f ${ADEMPIERE_HOME}/data/Adempiere_pg.dmp
Anschliessend können wir uns den Inhalt der erstellten und mit Daten gefüllten Datenbank adempiere anschauen:
psql -h localhost -U adempiere -W adempiere
* Alle innerhalb der Datenbank adempiere definierten Datenbanktabellen anzeigen:
\dt
* Alle innerhalb der Datenbank adempiere definierten Datenbanktabellen, Views und Sequences anzeigen:
\dp
Starten des Anwendungsservers
Wenn man den Swing-Client verwendet muss man den Anwendungsserver nicht starten.
sux adempiere cd /home/adempiere/Adempiere/utils ./RUN_Server2.sh
Starten der Anwendung (Swing-Client)
sux adempiere /RUN_Adempiere.sh
Nun ercheint folgendes Fenster
Es gibt einen Demonstrations Mandanten, dessen Admin Logindaten sind
Benutzer:GardenAdmin Kennwort:GardenAdmin
dann gibt es noch einen User
Benutzer:GardenUser Kennwort:GardenUser
und den ADempiere Administrator
Benutzer:System Kennwort:System
und SuperUser
Benutzer:SuperUser Kennwort:System
Danach erscheint folgendes Fenster
Danach erscheint die Anwendung ADempiere.
Dort können wir alle Menüpunkte erreichen indem wir den Reiter "Menu" anklicken.