Archiv für den Monat: September 2013

ADempiere ERP Wheezy install Script

Ich habe mal das Debian install-Script von fusiondirectory an ein blanko Debian Wheezy angepasst. Irgend wie hat das unter obigem Link nicht funktioniert. Jedenfalls nicht auf einem blanko Debian System.

Das Script kommt OHNE GARANTIE usw.!

Am Ende des Scripts kurz die Zusammenfassung. Ihr müsst nichts machen außer das Script starten. Am einfachsten unter /tmp das ganze anlegen.

cd /tmp
touch adinstall
vi adinstall

Den Inhalt des Scripts copy&paste rein.

:wq
chmod +x adinstall
./adinstall

Zwischendurch 4 Fragen beantworten und warten. Dann den Server starten

/opt/Adempiere/utils/RUN_Server2.sh

Anschließend ist ADempiere via https://IP-oder-HOSTNAME:4443 erreichbar.

Script

#!/bin/bash
# Shell script to install Adempiere 3.7.0 on Debian Squeeze 6.0
# Inspired mainly from :
# http://www.adempiere.com/Installing_ADempiere_3.7.0_on_Ubuntu_11.04
if [ "$USER" != "root" ]; then echo "Must be root to execute script..." exit 1
fi

apt-get update
### linux-welten.de - 20130929 - change package 4 wheezy ###
apt-get -y install sudo wget openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-6-jdk postgresql tar gzip

mkdir /opt
cd /opt

### linux-welten.de - 20130929 - change download link. old busy because name "download" ###
if [ ! -f /opt/Adempiere_370LTS.tar.gz ]; then
  # FIXME: Is there a way of automatically finding the best sourceforge
  # mirror, or else is there a better general mirror than Internode?
  #wget http://internode.dl.sourceforge.net/project/adempiere/ADempiere%20Official%20Release/Adempiere%203.7.0-LTS/Adempiere_370LTS.tar.gz
  #wget -d http://sourceforge.net/projects/adempiere/files/ADempiere%20Official%20Release/Adempiere%203.7.0-LTS/Adempiere_370LTS.tar.gz/download
  wget -d http://sourceforge.net/projects/adempiere/files/ADempiere%20Official%20Release/Adempiere%203.7.0-LTS/Adempiere_370LTS.tar.gz
fi

tar -zxvf Adempiere_370LTS.tar.gz

cd /opt/Adempiere
sudo chmod +x *.sh
sudo chmod +x utils/*.sh
sudo chmod +x utils/postgresql/*.sh

# Set system variables JAVA_HOME and ADEMPIERE_HOME in
# the file /etc/environment...
### linux-welten.de - 20130929 - change java_home inkl. i386 ###
if [ `grep -c "export JAVA_HOME=" /etc/environment` -gt 0 ]; then
sed -i 's@^export JAVA_HOME=.*$@export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386@' /etc/environment
else
echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386" >> /etc/environment
fi

if [ `grep -c "export ADEMPIERE_HOME=" /etc/environment` -gt 0 ]; then
sed -i 's@^export ADEMPIERE_HOME=.*$@export ADEMPIERE_HOME=/opt/Adempiere@' /etc/environment
else
echo "export ADEMPIERE_HOME=/opt/Adempiere" >> /etc/environment
fi

# ...and export to our current environment.
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386
export ADEMPIERE_HOME=/opt/Adempiere

echo ""
echo "You need to specify which network/s the Adempiere database stored in"
echo "Postgres can be accessed from :"
echo "1 - 192.168.1.0/24"
echo "2 - 10.0.0.0/24"
echo "3 - any network (ie. *)"
echo "...or you can type a network/mask pair manually:"
read NETWORK_CONFIG
if [ "$NETWORK_CONFIG" = "1" ]; then NETWORK_CONFIG="192.168.1.0/24"
elif [ "$NETWORK_CONFIG" = "2" ]; then NETWORK_CONFIG="10.0.0.0/24"
elif [ "$NETWORK_CONFIG" = "3" ]; then NETWORK_CONFIG="*"
fi

### linux-welten.de - 20130929 - change postgresql version 9.1 ###
sed -i 's@^host.*all.*all.*127.0.0.1/32.*$@&\
host all all '$NETWORK_CONFIG' md5@' /etc/postgresql/9.1/main/pg_hba.conf

sed -i "s@#listen_addresses = 'localhost'@listen_addresses = '*'@" /etc/postgresql/9.1/main/postgresql.conf

sed -i 's@#password_encryption = on@password_encryption = on@' /etc/postgresql/9.1/main/postgresql.conf

/etc/init.d/postgresql restart

PG_PASSWORD=""
AD_PASSWORD=""

echo ""
echo "Enter a new password for the Debian PostgreSQL superuser:"
read PG_PASSWORD

sudo -u postgres sh -c "psql -d template1 -c 'ALTER USER postgres WITH PASSWORD '\'$PG_PASSWORD\'';'"

### linux-welten.de - 20130929 - inkl create db and user ###
### linux-welten.de - automatic create role superuser J ???
echo ""
echo "Enter a password for the Postgres user 'adempiere' which will own your db:"
read AD_PASSWORD
sudo -u postgres createuser adempiere
sudo -u postgres createdb -O adempiere adempiere
sudo -u postgres sh -c "psql -d template1 -c 'ALTER USER  adempiere WITH PASSWORD '\'$AD_PASSWORD\'';'"

# The dump file we're loading into Postgres needs to be modified to suit
# an older PostgreSQL v8.4
sed -i 's@CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;@CREATE PROCEDURAL LANGUAGE plpgsql;@' /opt/Adempiere/data/Adempiere_pg.dmp

cd /opt/Adempiere
# Copy the properties template using tr to magically change the
# format from DOS to Unix.
tr -d '\15\32' < AdempiereEnvTemplate.properties > AdempiereEnv.properties

### linux-welten.de - 20130929 - change java_home inkl. i386 ###
# Configure the minimum required variables so we can run Adempiere setup
sed -i 's@^ADEMPIERE_HOME=.*$@ADEMPIERE_HOME=/opt/Adempiere@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^JAVA_HOME=.*$@JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_DB_SERVER=.*$@ADEMPIERE_DB_SERVER='`hostname --fqdn`'@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_DB_SYSTEM=.*$@ADEMPIERE_DB_SYSTEM='$PG_PASSWORD'@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_DB_PASSWORD=.*$@ADEMPIERE_DB_PASSWORD='$AD_PASSWORD'@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_APPS_SERVER=.*$@ADEMPIERE_APPS_SERVER='`hostname --fqdn`'@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_WEB_PORT=.*$@ADEMPIERE_WEB_PORT=4080@' /opt/Adempiere/AdempiereEnv.properties
sed -i 's@^ADEMPIERE_SSL_PORT=.*$@ADEMPIERE_SSL_PORT=4443@' /opt/Adempiere/AdempiereEnv.properties

# FIXME: I don't think this is required. Check, and remove this if it's so.
#sed -i 's@^ADEMPIERE_DB_PASSWORD=.*$@&\
#ADEMPIERE_DB_URL=jdbc\\\:postgresql\\\://'`hostname --fqdn`'\\\:5432/adempiere@' /opt/Adempiere/AdempiereEnv.properties

# ...I've left these here in case there's more variables I decide to set...
# eg. email or cert variables.
#sed -i 's@@@' /opt/Adempiere/AdempiereEnv.properties
#sed -i 's@@@' /opt/Adempiere/AdempiereEnv.properties

sh ./RUN_silentsetup.sh

cd /opt/Adempiere/utils/

sh ./RUN_ImportAdempiere.sh

echo ""
echo "To run the Adempiere server : /opt/Adempiere/utils/RUN_Server2.sh"
echo "...then..."
echo "to access the web client : https://"`hostname --fqdn`":4443"

# FIXME: Perhaps we can set up a /etc/init.d script in future?

 Anpassungen

  • Debian Pakete
  • Java Version
  • Java Home
  • Sudo
  • PostgreSQL Version
  • Download Link
  • Datenbank erstellen und Benutzer anpassen

Eventuell hilft dies wem weiter :)

PS: Nutzernamen und Passwörter der Vollständigkeit halber:

System Management System System
System Management or any role/company SuperUser System
Sample Client Administration GardenAdmin GardenAdmin
Sample Client User GardenUser GardenUser

Windows Admin Passwort reset

… Als linux „Geek“ wisse man, wie man Windows „häckt“ … Ja ne is klar.

Mein letztes Windows war 98SE oder so. Über das zurücksetzen von Passwörtern existieren genug HowTo. Warum also noch eins? Wer „häcken“ möchte, kann sich das HowTo des Kölner CCC anschauen.

Damit dieser Beitrag nicht ganz so kurz wird, legen wir pauschal einen zweiten Benutzer mit Admin-Rechten unter Windows 7 (sollte auch unter Server 2K8 u.Ä. funktionieren) an. OHNE Zugriff auf ein anderes Benutzerkonto zu haben. Quick&Dirty eben. Man kann ja mal sein Passwort vergessen.

Ich nutze dazu die Distribution GRML. Download, brennen und PC damit starten.

Partition herausfinden

Als erstes müssen wir herausfinden auf welcher Partition das Verzeichnis Windows/System32 liegt. Pauschal kann man sagen, wenn SATA dann irgend eine /sda /sdb usw. Wenn IDE dann /hda /hdb usw. Obs stimmt, sieht man nach dem mount. In meinem Fall ist die Windows Partition unter /dev/sda1. Also binden wir diese ein.

# mount /dev/sda1 /mnt

ein ls -ila /mnt zeigt mir die C: Partition der Windows Festplatte.

Sollte man mehrere Partitionen versuchen wollen, benötigt man noch den Befehl umount. Das ganze könnte dann in etwa so aussehen :)

# mount /dev/sda1 /mnt
# ls /mnt
# umount /mnt
# mount /dev/sda2 /mnt
# ls /mnt
# umount /mnt
# mount /dev/sdb1
# ls /mnt
# und so weiter ...

bis man die richtige Partition erwischt hat.  Ja, es geht auch kürzer aber man lernt mit dem tippen der Befehle nur dazu :)

Dateien kopieren und umbenennen

Fangen wir an

# cd /mnt/Windows/System32
# cp sethc.exe sethc.bak
# cp cmd.exe sethc.exe

Was habe ich gemacht? Die sethc.exe ist die „Feststell- Einrastfunktion“ von Windows. Diese kann man bei dem Anmeldebildschirm mit „5 mal schnell Shift“ aktivieren. Diese habe ich kopiert und umbenannt (Backup :D ). Danach habe ich die Windows „Konsole“ (command prompt) kopiert und in sethc.exe umbenannt. Das wars.

# shutdown -r now

Neustart.

Neuen Benutzer anlegen

Ist Windows gestartet und die Eingabemaske zum anmelden erschienen, kann es losgehen. Drücke 5 mal hintereinander Shift. Normalerweise würde die Einrastfunktion aktiviert, in unserem Fall öffnet sich der command prompt. Mit vollen Admin rechten :)

Neuen Benutzer erstellen

# net user /add neuerbenutzer

dem Benutzer Adminrechte geben

# net localgroup administratoren neuerbenutzer /add

Passwort bekommt er keins. Nach einem Neustart ist der neue Benutzer verfügbar und hat alle Rechte. … OK, OK, man könnte auch an dieser Stelle für einen bestehenden Benutzer das Passwort zurück setzen :)

# net user Benutzername neuesPasswort

In diesem Sinne, happy hacking.

Fedora Deutsche Tastaturbelegung

Und noch einen kurzen Tipp hinterher. Ein Kumpel fragte mich gerade wie er seine Tastatur bei Fedora auf ein deutsches Layout (QWERTZ) umstellen kann.

Man benötigt das Paket system-config-keyboard

# yum -y install system-config-keyboard

Anschließend kann man mit

# system-config-keyboard

das Layout anpassen.

Eventuell hilft es wem :)

Eingefrorene Programme sofort beenden

Gestern wurde über „Tools“ zum beenden von hängenden Programmen unter Linux gesprochen. Ich wusste garnicht das es dafür sogenannte „Tools“ gibt :)

Hängt zum Beispiel der VLC Media Player genügt ein kill PID. Um die PID zu finden ein ps

Ich höre gerade Radio Reeperbahn via VLC. Nehmen wir dies mal als Vorführer :)

$ ps x | grep vlc
 3618 ?        Sl     0:13 /usr/bin/vlc /home/benutzer/Musik/radio-reeperbahn.m3u

Ich weiß jetzt das der VLC die PID 3618 hat.

$ kill 3618

ruhe ist :) Zur Not hat man noch die Option -9 ;) Eine Liste der „signal names“ bekommt man mit kill -l

$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

So viel zu heute. „Happy Killing“ ;) und man kill nicht vergessen.