Samstag, 21. Juni 2014

Linux - Debian - Subversion migrieren


Annahme1: Es gibt mehrere Respositories unter dem Pfad /home/svn/repositories/
Annahme2: Am neuen SVN-Server sind die Pfade gleich wie am alten

1.Schritt: exportieren der Repositories
svnadmin dump /home/svn/respositories/myrepos1 > /home/svn/repositories/dumpfile1.dmp
svnadmin dump /home/svn/respositories/myrepos2 > /home/svn/repositories/dumpfile2.dmp
svnadmin dump /home/svn/respositories/myrepos3 > /home/svn/repositories/dumpfile3.dmp
...

2.Schritt: neue Repositories am neuen Server erstellen
siehe z.B.: http://boernie.blogspot.co.at/2014/06/linux-debian-wheezy-subversion-server.html


3.Schritt: dumpfiles vom alten zum neuen Server kopieren
am neuen Server: scp user@alterServer:/home/svn/repositories/*.dmp .

4.Schritt: importieren der Repositories
svnadmin load /home/svn/myrepos1 < dumpfile1.dmp
svnadmin load /home/svn/myrepos2 < dumpfile2.dmp
svnadmin load /home/svn/myrepos3 < dumpfile3.dmp
...

Mittwoch, 18. Juni 2014

Linux - Debian - Wheezy - Subversion Server mit Apache (SSL)

durchgeführt mit: Debian 7.5.0 x64, Apache 2.2.22, Subversion 1.6.17

1.Schritt: SSH-Packages installieren
apt-get install ssh

2.Schritt: Apache2-Packages installieren
apt-get install apache2

3.Schritt: Subversion-Packages installieren
apt-get install subversion libapache2-svn subversion-tools

4.Schritt: Erstellen der SVN-Repositories
mkdir /home/svn
mkdir /home/svn/repositories

svnadmin create --fs-type fsfs /home/svn/repositories/myproject1
svnadmin create --fs-type fsfs /home/svn/repositories/myproject2
...

5.Schritt: Benutzerrechte der Repositories anpassen
chown -R www-data:www-data /home/svn/*
chmod -R 770 /home/svn/*

6.Schritt: Sicherstellen, dass svn unter apache bereits läuft
a2enmod dav
a2enmod dav_svn

7.Schritt: SVN-Benutzer erstellen
htpasswd -c /etc/apache2/svn_myproject1.passwd userA
--> ACHTUNG!!! -c löscht das passwd-file, falls bereits vorhanden
...also nur beim ersten mal verwenden!
htpasswd /etc/apache2/svn_myproject1.passwd userB

htpasswd -c /etc/apache2/svn_myproject2.passwd userA
--> ACHTUNG!!! -c löscht das passwd-file, falls bereits vorhanden...also nur beim ersten mal verwenden!
htpasswd /etc/apache2/svn_myproject2.passwd userC

...

8.Schritt: Erzeugen neuer Webfolder für SVN
einfügen der folgenden Codezeilen in: /etc/apache2/mods-available/dav_svn.conf
<Location /svn_myproject1>
   DAV svn
   SVNPath /home/svn/repositories/myproject1
   AuthType Basic
   AuthName "Subversion Repository Project1"
   AuthUserFile /etc/apache2/svn_myproject1.passwd
   Require valid-user
   # SSLRequireSSL <-- kann bei bedarf einkommentiert werden wenn SSL installiert ist 
</Location>

<Location /svn_myproject2>
   DAV svn
   SVNPath /home/svn/repositories/myproject2
   AuthType Basic
   AuthName "Subversion Repository Project2"
   AuthUserFile /etc/apache2/svn_myproject2.passwd
   Require valid-user
   # SSLRequireSSL <-- kann bei bedarf einkommentiert werden wenn SSL installiert ist 
</Location>

9.Schritt: Apache neu starten
/etc/init.d/apache2 restart
testen unter http:///myproject1

10. SSL hinzufügen
apt-get install openssl ssl-cert

11. Zertifikat generieren
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.key
-> im Zertifikatserstellungsdialog die gewünschten Infos eintragen

12. Berechtigungen für Zertifikat ändern
chmod 600 /etc/apache2/apache.pem 
chmod 600 /etc/apache2/apache.key

13. SSL in der config aktivieren
editieren von /etc/apache2/mods-available/dav_svn.conf und einkommentieren von:
SSLRequireSSL

14.Schritt: neue Seite für SSL hinzufügen
cd /etc/apache2/sites-available/
cp default-ssl ssl
a2ensite ssl
a2enmod ssl

editieren von /etc/apache2/sites-available/ssl

ändern von:
SSLCertificateFile /etc/apache2/apache.pem 
SSLCertificateKeyFile /etc/apache2/apache.key

15.Schritt: Apache neustarten
/etc/init.d/apache2 restart
testen unter https:///myproject1_site

Samstag, 14. Juni 2014

Linux - VIM - Farbschema aktivieren

Linux - VIM - Farbschema aktivieren


1.) Neue Datei erstellen
~/.vimrc

2.) .vimrc bearbeiten
syntax on
colorscheme default
 
welche anderen farbschemata ausser "default" es noch gibt, kann man unter
/usr/share/vim/vim71/colors betrachten.

Donnerstag, 12. Juni 2014

Linux - Debian - Wheezy - x64 - Java 7

Java 7 unter Debian Wheezy (7.5.0) x64 installieren

1.Schritt: Downloaden der gewünschten Java-Version von der Oracle-Homepage
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
(Licence Agreement akzeptieren, sonst kein Download)
-> Download via Konsole:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u60-b19/jdk-7u60-linux-x64.tar.gz
 
2.Schritt: Datei entpacken
tar zxvf jdk-7u60-linux-x64.tar.gz -C /usr/lib/jvm/java-7

3.Schritt: Berechtigung prüfen
/usr/lib/jvm/java-7 muss dem Benutzer "root" gehören, falls das nicht so ist:
chown -R root:root /usr/lib/jvm/java-7

4.Schritt: Konfiguration
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7/bin/java 1065
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7/bin/javac 1065

5.Schritt: Prüfen
update-alternatives --config java

falls mehrere Java-Versionen installiert sind, bekommt man eine Auswahl, welche Version verwendet werden soll.
die neu installierte Java-Version sollte mit einem Stern markiert sein:

 Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7/bin/java             1065      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/jdk1.7.0/bin/java             1065      manual mode

java -version
Ausgabe sollte sein: java version "1.7.0_60"

6.Schritt: JAVA_HOME setzen
in der Datei /etc/bash.bashrc folgende Zeilen unten einfügen:
### Java Environment ###
export JAVA_HOME=/usr/lib/jvm/java-7


Rechner anschliessend am Besten mal neustarten.

Linux - Debian - Wheezy - x64 - Oracle 11gR2 XE

durchgeführt mit:
- Debian 7.5.0 x64, java 1.7.0_60 x64, Oracle-XE 11.2.0 x64
- Debian 7.8.0 x64, java 1.8.0_40 x64, Oracle-XE 11.2.0 x64

1.) Java installieren
(zb. siehe http://boernie.blogspot.co.at/2014/06/linux-debian-wheezy-java-7.html)

2.) folgende Anleitung so genau wie möglich befolgen
- Java-Installation überspringen, erst ab "Installing Oracle 11g R2 Express Edition":
http://blog.whitehorses.nl/2014/03/18/installing-java-oracle-11g-r2-express-edition-and-sql-developer-on-ubuntu-64-bit/

- ein Punkt muss anders gemacht werden, da sonst die Datenbank nicht startet und "ORACLE not available" bzw. "MEMORY_TARGET not supported on this system" Fehler auftauchen:

statt
- Create the file /etc/rc2.d/S01shm_load....

muss folgendes durchgeführt werden
* erzeugen eines neuen startupskript-files:
vim /etc/init.d/oracle-shm_load

* einfügen von:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          oracle-shm_load
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
case $1 in
 start) 
  mkdir /var/lock/subsys 2>/dev/null
  touch /var/lock/subsys/listener
  rm /dev/shm 2>/dev/null
  mkdir /dev/shm 2>/dev/null
  mount -t tmpfs shmfs -o size=2048m /dev/shm 
  ;;
 stop) 
  ;;
 restart)
  ;;
esac
exit 0


-> wobei "2048m" mit der tatsächlichen Gesamtgrösse des RAM-Speichers der Maschine ersetzt werden muss

* schreibrechte setzen und file initialisieren.
chmod 755 oracle-shm_load
update-rc.d oracle-shm_load defaults

das skript "oracle-shm_load" muss unbedingt VOR dem oracle-xe skript starten.
per default werden beide im runlevel 2 (/etc/rc2.d) gestartet.
es laufen beide (ohne weitere konfiguration) mit der gleichen priorität (bei mir S17), deshalb die namenswahl mit oracle-shm_load, das ist alphabetisch vor oracle-xe und wird somit auch zuerst gestartet bei gleichem runlevel und gleicher priorität :)
kann sicher auch eleganter gelöst werden, ist mir aber nicht gelungen...


3.) Parameter einstellen
vim /etc/bash.bashrc
unten einfügen:
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

4.) neustarten des systems.



5.) diverses
Oracle-Apex Zugriff:
http://ip-des-datenbankservers:eingestellter-port/apex/apex_admin
als admin einloggen (default: admin/admin)
wenn passwort vergessen wurde:
cd /u01/app/oracle/product/11.2.0/xe/apex
sqlplus / as sysdba
SQL> @apxchpwd.sql
Quelle: http://docs.oracle.com/cd/E37097_01/install.42/e35123/otn_install.htm#HTMIG503

Apex-Zugriff von extern:
sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit



Password Expiration:
Im default profile der Oracle Database 11g, ist der parameter PASSWORD_LIFE_TIME auf 180 (Tage) gesetzt. dh. bei jedem neu angelegten user läuft nach 180 tagen das passwort ab!!!
sqlplus / as sysdba
SQL> select profile from dba_users where username='xyz';
Ergebnis zb.

PROFILE
------------------------
DEFAULT

nun ändern wir den parameter PASSWORD_LIFE_TIME des profiles 'default' auf unlimitiert!
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
 

Mittwoch, 11. Juni 2014

Linux - Ping multiple IP-Adresses

for i in {1..254} ;do (ping 192.168.0.$i -c 1 -w 5  >/dev/null && echo "192.168.0.$i" &) ;done

Sonntag, 9. September 2012

Linux - Debian - Squeeze - x64 - Oracle XE - 11.2.0


Installiert wird "Oracle Database Express Edition 11g Release 2" unter Debian Squeeze x64

Voraussetzungen:
- es muss mindestens 2GB SWAP-Speicher vorhanden sein


1.Schritt: fehlende Pakete nachinstallieren
apt-get install alien libaio1 unixodbc


2.Schritt: Kernel-Parameter ändern
Kopieren & Einfügen der folgenden Zeilen direkt in die command shell (nicht via text editor):
(wenn man nur die Konsole zur Verfügung hat, dann mit Shift+Enter in die nächste Zeile springen)

cat > /etc/sysctl.d/60-oracle.conf <<-EOF
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65500
kernel.sem=250 32000 100 128
# kernel.shmmax=429496729
kernel.shmmax=107374183
EOF


3.Schritt: Installationsfile downloaden und entpacken
Download unter: http://download.oracle.co/otn/linux/oracle11g/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Achtung: Login wird benötigt

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
rm oracle-xe-11.2.0-1.0.x86_64.rpm.zip


4.Schritt: konvertieren des RPM-Pakets in ein Debian-Paket
cd ./Disk1
alien --to-deb --scripts oracle-xe-11.2.0-1.0.x86_64.rpm
(dauert ein paar Minuten)
rm oracle-xe-11.2.0-1.0.x86_64.rpm


5.Schritt: Installation vorbereiten
ln -s /usr/bin/awk /bin/awk

Kopieren & Einfügen der folgenden Zeilen direkt in die command shell (nicht via text editor):
(wenn man nur die Konsole zur Verfügung hat, dann mit Shift+Enter in die nächste Zeile springen)

cat > /sbin/chkconfig <<-EOF
#!/bin/bash
echo "Simulating /sbin/chkconfig..."
if [[ ! \`tail -n1 /etc/init.d/oracle-xe | grep INIT\` ]]; then
cat >> /etc/init.d/oracle-xe <<-EOM
#
### BEGIN INIT INFO
# Provides:          OracleXE
# Required-Start:    \\\$remote_fs \\\$syslog
# Required-Stop:     \\\$remote_fs \\\$syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Oracle 11g Express Edition
### END INIT INFO
EOM
fi
update-rc.d oracle-xe defaults 80 01
EOF

Berechtigungen des neuen Files anpassen:
chmod 755 /sbin/chkconfig


6.Schritt: Installation durchführen
cd ./Disk1
dpkg --install ./oracle-xe_11.2.0-2_amd64.deb
(dauert ein paar Minuten)


7.Schritt: Datenbank erstmalig Initialisieren
/etc/init.d/oracle-xe configure

Wenn alles passt, wird folgende Ausgabe in der Konsole erscheinen:
Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.


8.Schritt: Passwort des oracle-Users ändern
passwd oracle


9.Schritt: Umgebungsvariablen anpassen
vim /etc/bash.bashrc
unten einfügen:
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh


10.Schritt: remote-Zugriff auf die APEX-Applikation zulassen
su oracle
sqlplus / as sysdba

SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit


11.Schritt: Konfiguration der Schemas und User
http://ip-der-datenbank:gewählterPort/apex/apex_admin


Danke an "Dude", hier der vollständige Artikel (für Ubuntu):
https://forums.oracle.com/forums/thread.jspa?threadID=2301639