Schlagwort-Archive: Linux

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.

Kernelmeldungen überfluten Konsole

Auf manchen Systemen (bei mir ein Ubuntu 12 LTS Server) ist das Log Level so niedrig das man vor lauter Kernel Meldungen nicht mehr arbeiten kann. Der Bildschirm wird regelrecht „überflutet“.

Die 8 Loglevel findet man in der Datei printk.h in seinen Linux-Headers. Bei meinem Ubuntu Server mit dem 3.5.0-37er Kernel unter

# vim /usr/src/linux-headers-3.5.0-37-generic/include/linux/printk.h

Dort ab Zeile 9 (circa :) )

#define KERN_EMERG      "<0>"   /* system is unusable                   */
#define KERN_ALERT      "<1>"   /* action must be taken immediately     */
#define KERN_CRIT       "<2>"   /* critical conditions                  */
#define KERN_ERR        "<3>"   /* error conditions                     */
#define KERN_WARNING    "<4>"   /* warning conditions                   */
#define KERN_NOTICE     "<5>"   /* normal but significant condition     */
#define KERN_INFO       "<6>"   /* informational                        */
#define KERN_DEBUG      "<7>"   /* debug-level messages                 */

Oder bei GitHub. Bei meinem Ubuntu Server waren die Loglevel

# cat /proc/sys/kernel/printk
7	4	1	3

Debug ist natürlich heftig. Also das ganze bleibend auf „4 4 1 3“ anpassen.

# vim /etc/sysctl.conf

und Zeile 10 kernel.printk anpassen

# Uncomment the following to stop low-level messages on console
kernel.printk = 4 4 1 3

Das ganze speichern und beenden (:wq!). Den sysctl neu einlesen

# sysctl -p /etc/sysctl.conf

und der Spuk auf der Konsole sollte ein ende haben. Das ganze funktioniert auch unter Debian und co. In diesem Sinne, cu und man sysctl ;)

Dateien mit SCP kopieren

Dateien unter Linux Rechnern zu kopieren ist dank SCP1 recht simpel. Und dank ssh auch noch sicher.

Voraussetzung

openssh-server auf dem Rechner/PC/Server/wasauchimmer zu dem man Dateien kopieren oder Dateien holen möchte.

Dateien kopieren (up)

In diesem kurzen Beispiel möchte ich die Datei zero.conf von meinem Linux Client auf einen Server kopieren. Die Datei soll dann im Verzeichnis /home/benutzer/configs liegen. Weiterlesen

  1. secure copy (remote file copy program)

rdesktop local mount

Möchte man PC/Server aus dem Hause M$ verwalten oder warten, kommt man mit Bordmitteln nicht um das RDP1 herum. RDP Clients unter Linux gibt es viele. An dieser Stelle möchte ich auf den RDP Client rdesktop eingehen. Diesen habe ich bis jetzt auf jeder Distri gefunden ohne Gnome oder KDE Anteile einrichten zu müssen.

Ich persönlich halte diesen für die eleganteste und schnellste Lösung. Aber das ist denke ich Geschmackssache.

Der größte Vorteil dieser RDP Clients ist, dass auf der remote Seite keine Software installiert werden muss. M$ Systeme bringen alles Standardmäßig mit. Es muss nur aktiviert werden. Langer Rede … los gehts

Vorab

Ich nutze für die Beispiele einen Bsp. Server mit der IP 192.168.1.1. Die IP kann auch durch den Hostname ersetzt werden.

Server verbinden

Weiterlesen

  1. Remote Desktop Protokoll

BitTorrent sync Linux Windows Mac

Fangen wir bei Linux an. Mein Laptop (TERRA Mobile 1586p) mit SparkyLinux soll der Chef im Ring werden. Die weiteren Rechner sind

  • eine eMachines mit Linux Mint 15
  • ein iMAC mit Snow Leopard
  • ein DELL Dimension 5000 mit Windows 7 (Testrechner)
  • mal sehn was mir noch so in die Finger fällt :)

Aber das nur zur Info.

Was habe ich vor

Alle oben genannten Rechner sollen ohne einen zusätzlichen Server (zB owncloud) mit Hilfe des Torrent Netzwerks Ordner und Dateien synchron halten. Der Dienst des btsync soll automatisch bei der Anmeldung gestartet werden. Vorteil ist, dass der komplette Servertraffic entfällt. Im Zeitalter von privaten Flatrates sehr nützlich.

Wer mehr über die Technik des BitTorrent sync Clients erfahren möchte, kann sich in den Laboren umschauen :)

Software besorgen

Alles was wir benötigen finden wir im Labor von BitTorrent. Ich besorge mir von dort

  • Linux btsync (32 und 64bit)
  • Windows Client
  • Mac Client

Weiterlesen

cal und ncal

Manchmal kommt es vor, dass ich auf meine „seltsamen“ Desktop Hintergründe und „komischen“ Wandkalender angesprochen werde. Ich selbst finde diese nicht komisch oder seltsam sondern eher nützlich.

  1. weil das meist keine Hintergründe sondern eine offene Konsole ist
  2. weil ich zum Datieren von Aufträgen, Rechnungen und der Logistik einen Kalender brauche
  3. und weil der Julianische Kalender funktioniert :D

Hier mal ein Screenshot vom Terminator und einem ncal -jyw

Julianischer Kalender Konsole (ncal -jyw)

Julianischer Kalender Konsole (ncal -jyw)

Da ich Programmierer bin und der Auffassung, dass alles was mehr als zwei Farben hat kaputt ist, bleibt mir nur der Weg über einen Konsolenkalender ;) Ebenso nutze ich in der Konsole ICQ, IRC, (AIM), MSN, Jahoo, Jabber, Browser und vieles mehr (Irssi & BitlBee, eLinks …). Aber das ist eine andere Geschichte.
An dieser Stelle soll nur erwähnt werden, wie ich obige Kalender erzeuge.

Weiterlesen