De DE/installation debian postgres8 1

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

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

Pljava-obj5.png

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.

Adempiere server setup.png

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.

Key store dialog.png

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.

Lizenzvereinbarung.png

Dort klicken wir, wenn wir einverstanden sind, auf den Button "Ja, ich verstehe und akzeptiere". Dann ercheint folgendes Fenster.

Adempiere server setup1.png

Nachdem wir auf den Button "OK" geklickt haben, sehen wir folgende Ausgaben auf der Konsole

Server install.png

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

Login1.png

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

Login2.png

Danach erscheint die Anwendung ADempiere.

Application.png

Dort können wir alle Menüpunkte erreichen indem wir den Reiter "Menu" anklicken.