26/03/10

TOra "Segmentation fault"

per qualche motivo che tutt'ora ignoro di punto in bianco (in piu' rispetto a quando funzionava correttamente, ho installato l'editor Emacs) TOra ha smesso di funzionare.
quando da terminale davo:
#tora
il risultato era: "Segmentation fault"

cercando sulla rete, dopo molte peripezie ho letto, tra le righe di un blog, che una possibile soluzione poteva essere: "la cancellazione del file di configurazione di TOra"
effettivamente dando il seguente messaggio:
#rm ~/.config/TOra/TOra.conf

ovviamente questo fa si che TOra si ripresenta come quando e' stato installato la prima volta, perde tutte le configurazioni fatte nonche' gli alias creati

19/03/10

installazione di "Oracle 10201"

nel seguito di questo blog parlero' di come installare Oracle 10201 (non XE) su Ubuntu 9.10.

bisogna fare delle modifiche ad alcuni file di sistema e consiglio di farsene prima una copia quindi va creato l'utente "oracle" appartenente al suo solito gruppo "dba", quindi configurare opportunamente l'utente ed eseguire runInstaller.
ma procediamo per passi.

1. modifica dei parametri di sistema
#sudo vim /etc/sysctl.conf
aggiungere i seguenti valori
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
#fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

dare il comando per confermare le modifiche fatte:
#sudo sysctl -p

quindi modificare il file limits.conf

#sudo vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

#sudo vim /etc/pam.d/login
vi session required /lib/security/pam_limits.so

2. creazione dell'utente oracle e del suo gruppo
#sudo groupadd dba
#sudo adduser -G admin.dba -d /home/oracle -s /bin/bash -m oracle
#sudo passwd oracle
e dare la password che si desidera

3. configurazione utente "oracle"
definire la cartella dove installare il motore oracle ed eventualmente dove posizionare "oradata" per i datafile. nel mio caso ho messo tutto nella /home/oracle
inoltre creare una cartella di appoggio dove posizionare l'unzip del file"10201_database_linux32.zip" (che produce una cartella "database")

cambiare il proprietario della cartella "database"
#sudo chown oracle.dba /database/

impostare nel file .bashrc dell'utente oracle i seguenti valori (almeno questi sono quelli impostati da me):
#vim .bashrc
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/home/oracle/database ; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/1021 ; export ORACLE_HOME
ORACLE_SID=ORA1021; export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin

LD_LIBRARY_PATH=$ORACLE_HOME/lib ; export LD_LIBRARY_PATH

4. installazione di Oracle
connettersi come root
#sudo su -
#xhost +
#su - oracle
#export DISPLAY=:0.0

fare un test con utente oracle per vedere se la componente grafica e' attiva:
#xclock

quindi posizionarsi nella cartella scompattata, controllare se il file "runInstaller" e' un eseguibile, e dare il seguente comando (come oracle)
#./runInstaller -ignoreSysPrereqs

se non parte l'installazione controllare come scritto sopra che i file e' un eseguibile e nel caso negativo eseguire:
#sudo chmod a+x runInstaller


partita l'installazione, ho scelto di installare solo il motore e di non creare l'istanza che faro' in un secondo momento.
piu' o meno verso la fine si potrebbero avere dei problemi ma che non sono in alcun modo bloccanti.
in particolare sono due errori di compilazione ma cliccando su "anvanti" l'installazione continua.

5. creazione dell'istanza oracle
come utente oracle, posizionarsi dentro la cartella $ORACLE_HOME/bin ed eseguire:
#./dbca

nel mio caso ho scelto di creare un "database personalizzato", ho deselezionato tutti i componenti aggiuntivi

ed impostato come caracter set "WE8ISO8859P15 - * - West *".
quindi ho dato fine sul riepilogo.
terminata la creazione dell'istanza con la seguente maschera:



6. Configurazione listener e tnsnames
con il comando:
#./netca
ho configurato il listener.ora e il tnsnames.ora

15/03/10

installazione VmWare-Server-2.*

installare vmware su ubuntu (9.10) puo' risultare alquanto complicato, ma seguendo le corrette indicazioni tutto si semplifica.

intanto bisogna registrarsi sul sito www.vmware.com per poter scaricare la versione "vmware-server-xxxx" con la relativa licenza.
inoltre scaricarsi la patch che serve esplicitamente per ubuntu:

wget http://www.ubuntugeek.com/images/vmware-server.2.0.1_x64-modules-2.6.30.4-fix.tgz

quindi scompattare il tar.gz, entrare nella relativa cartella ed eseguire con i diritti di root il seguente comando:
#sudo ./vmware-install.pl

dire sempre di si a tutte le richieste !!, anche se compaiono errori di compilazione per ilvmmon.

terminata questa fase di installazione, anche se non e' andata a buon fine, non ti preoccupare !, passiamo all'istallazione della patch che dovrebbe risolvere i problemi di compilazione:
#tar xvzf vmware-server.2.*.fix.tgz
quindi
#sudo sh vmware-server.2*.fix.sh

vengono eseguiti tutti i fix necessari alla configurazione del vmware che termina con la seguente schermata:


rimuovere la cartella come descritto sopra:
#sudo -rf /usr/lib/vmware/modules/bin

quindi sempre con i diritti di amministratore:
#sudo vmware-config.pl



la url dovrebbe essere (se nulla e' stato modificato durante l'installazione ossia la porta di ascolto):
https://localhost:8333/

verra' richiesto di abilitare il certificato, ricordarsi che non funge con chrome ma solo con firefox.


12/03/10

clean dei file inutili su ubuntu

per pulire tutti i file temporanei:
#sudo rm -fr /tmp/* /tmp/.??*

per pulire la cache dai programmi disinstallati:
#sudo apt-get autoclean

per pulire la cache del gestore dei pacchetti digitiamo:
#sudo apt-get clean

per eliminare i file relativi alle dipendenze ormai obsoleti:
#sudo apt-get autoremove

rimuovere le librerie inutili:
#sudo apt-get remove --purge 'deborphan'


(#sudo apt-get install deborphan (per installarlo))

11/03/10

"centos 5.4" su virtualbox

Host: Ubuntu 9.10
Guest: Centos 5.4

terminata la fase del sistema operativo Centos, passiamo all'istallazione dei componenti aggiuntivi di VirtualBox, che servono per gestire meglio alcune periferiche come video, presa e rilascio del mouse, condivisione di file e cartelle.
Cliccando sulla voce "Dispositivi" --> "Virtual Guest Additions" viene montato sul dektop del sistema guest la cartella "VBOXADDITION_3*"


come utente root:
root>cd /media/VBOXADDITION_3*
root>sh ./VBoxLinuxAdditions-x86.run

installati i pacchetti aggiuntivi, bisogna comunque intervenire sul sistema Centos a riga di comando per configurare correttamente la risoluzione del monitor e per condividere cartelle tra il sistema Host (Ubuntu) e quello Guest (Centos).

1. configurazione risoluzione video
adattare la risoluzione dello schermo alla scheda grafica.
bisogna editare il file /etc/X11/xorg.conf come utente root e fare in modo che la sezione Screen coincide con:

Section "Screen"
SubSection "Display"
Depth 24
Modes "1750x1090" "1600x1200" "1600x1024" "1440x900" "1400x1050" "1280x1024" "1280x960" "1280x800" "1152x864" "1152x768" "1024x768" "800x600" "640x480"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection

in particolare e' importante aggiungere la sezione Modes.
per maggiori dettagli si veda:


2. condivisione di cartelle tra host e guest
con il sistema guest spento, andare sulle impostazioni della macchina virtuale ed aggiungere una cartella condivisa.
vengono date delle indicazioni di merito per la condivisione


quindi startare il sistema guest (Centos) e creare una cartella su cui montare la cartella condivisa.
nel mio caso ho scelto di condividere la cartella Pubblici del sistema Host ed ho creato sul sistema Guest un omonimo in /mnt

da root
root> cd /mnt
root> mkdir Pubblici
root> mount -t vboxsf Pubblici /mnt/Pubblici

ovviamente se quest'ultima non viene inserita nel fstab, ogni volta va rieseguito
root>vim /etc/fstab

un modo diverso per montare all'avvio la cartella condivisa e' quella di mettere il comando mount direttamente nel file /etc/rc.d/rc.local sempre editando il file con i diritti di root
root>vim /etc/rc.d/rc.local

aggiungere alla fine la riga:
mount -t vboxsf -o uid=user-proprietario,gid=gruppo-proprietario,rw Pubblici /mnt/Pubblici

e' stato messo un utente ed un gruppo che sulla cartella condivisa puo' operare in lettura e scrittura.
questo perche' se messo nel file fstab probabilmente il sistema operativo, non avendo ancora installato le Guest-Additions non conosce il tipo vboxsf mentre il file rc.local viene eseguito alla fine di tutto e quindi il sistema riconosce il comando -t vboxsf nel mount.

08/03/10

shell bash (Bourne Again Shell)

le personalizzazioni più utili della bash: PATH, alias, prompt

se operiamo da linea di comando, dopo essere entrati nel sistema ci troveremo di fronte ad una shell che ci permetterà di interagire col sistema accettando i nostri comandi.
nel mondo Linux esistono una gran varietà di shell, possiamo distinguere tra due grandi gruppi: le shell compatibili con la shell Bourne e quelle compatibili con le shell C.

queste tipologie di shell conservano tra di loro un certo grado di compatibilità insieme a numerose differenze soprattutto per quanto riguarda la programmazione e i comandi per le impostazioni delle shell stesse.

analizzerò solo la shell bash (Bourne Again Shell), la shell compatibile con la Bourne creata dal progetto GNU che é una delle più diffuse e delle più potenti su Linux che offre l'editing della linea di comando e la presenza di una cronologia dei comandi dati e altro.
per sapere quale shell state usando potete dare il comando:

#echo $SHELL

all'interno di una stessa shell distinguiamo tra:
- shell di Login - che si avvia nel momento in cui ci si logga al sistema;
- shell interattive - che permettono di inserire comandi, può essere anche di login (pensate ai terminali lanciati da ambiente grafico);
- shell non interattive - quelle lanciate ognivolta che eseguiamo uno script.

a seconda del tipo di shell il sistema leggerà diversi file di configurazione.

la shell bash utilizza, per il suo funzionamento, alcuni file di sistema (/etc/profile, /etc/bashrc, /etc/profile.d/ ) più alcuni file presenti nella propria home che permettono di personalizzare l'ambiente della shell per il singolo utente.
in particolare a seconda del tipo di shell vengono letti i seguenti file:
- shell di login: /etc/profile e poi dalla propria home .bash_profile, .bash_login, .profile (di questi ultimi tre verrà letto solo il primo file esistente)
- shell di login: .bash_logout, questo file viene letto all'uscita dalla shell
- interattiva: .bashrc
- non interattiva: variabile d'ambiente BASH_ENV

assicuratevi che nel file .bash_profile (o .profile) ci siano le seguenti righe:

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

in questo modo ogni volta che lanceremo la shell di login verrà letto anche .bashrc (se esiste).
potremo quindi fare ogni modifica in .bashrc con la sicurezza che questo verrà sempre letto.

se vogliamo che le modifiche influenzino tutti gli utenti di sistema agiremo sui file contenuti in /etc/ (profile, ecc...) se invece ci interessa il singolo utente agiremo sui file di configurazione presenti nella sua home, (.bashrc, .bash_profile, ecc...).
dopo aver modificato i file di configurazione per rendere effettive le modifiche dobbiamo far rileggere al sistema il file modificato con il comando source nome_file:
#source .bashrc

variabili di ambiente
può capitare che dopo aver installato un programma, digitiamo il comando (es. firefox) che dovrebbe farlo avviare e otteniamo semplicemente un laconico "Command not found" o simile. il problema risiede nel fatto che la shell cerca i programmi in alcune directory che sono elencate nella variabile d'ambiente PATH.
se vogliamo avviare quel programma dovremmo o inserire il percorso completo (es. /usr/local/bin firefox) o modificare la variabile d'ambiente.

quest'ultima operazione è molto semplice nel digitare in una shell:

export PATH=$PATH:/cartelle/da_aggiungere/al_path
(es.: export PATH=$PATH:/usr/local/bin )
o, se vogliamo rendere permanenti le modifiche, scrivere qualcosa del genere:
PATH=$PATH:/usr/local/bin
export PATH

in .bashrc se vogliamo modificare la variabile per un solo utente oppure in /etc/profile (ma questo file potrebbe variare in base alla distribuzione) se vogliamo che la modifica influenzi tutti gli utenti del sistema.

dopo aver modificato il file .bashrc è necessario far rileggere al sistema il file in questione con i seguenti comandi:
#source ~/.bashrc (oppure . ~/.bashrc)

N.B. tieni presente che la shell cercherà il comando partendo dalla prima cartella elencata e proseguendo verso destra.
quindi nell'esempio sopra, /usr/local/bin/ sarà l'ultima cartella in cui cercherà la shell.

gestione ALIAS
gli alias sono un comodo meccanismo che permettono di assegnare nomi più facilmente ricordabili ai comandi che digitiamo solitamente nella shell.
ad esempio, digitando le seguenti righe in una shell:
alias ll='ls -ltr'
assegneremo all'alias ll il comando ls -ltr.

sarà quindi sufficiente digitare ll per ottenere lo stesso output di ls -ltr.

Prompt
dopo essere entrati nel sistema (login) apparirà il prompt, come il seguente:
administrator@matrix:~$
solitamente il prompt termina con $ se l'utente loggato è un utente normale, mentre termina con # se l'utente loggato è root.
questo comportamento, come anche il resto del prompt, può essere modificato agendo su alcune variabili: PS1 e PS2, la prima permette di modificare il prompt mentre la seconda permette di indicare il simbolo usato quando il comando viene completato su più righe.
vediamo alcuni esempi:
#export PS1='\u@\h>'
permette di ottenere questo: administrator@matrix>
altre variabili da poter inserire nel prompt le potete trovare con un "man bash", eccone alcune:
\d --Data
\w -- Directory corrente
\u -- Nome dell'utente
\t -- Ora corrente
\s -- Nome della shell

rendere permanente il prompt
come Path e alias basterà inserirlo in un file di configurazione con la seguente sintassi:
PS1='\w@\u>'
export PS1

06/03/10

sqldeveloper (by oracle)

come tora anche sqldeveloper (open-source) e' uno strumento grafico per la gestione del database oracle.
per ogni informazione sul prodotto riferirsi al seguente link:http://www.oracle.com/technology/products/database/sql_developer/index.html

dove si puo' scaricare la versione dopo essersi autenticati sul sito (quindi si richiede un account).

dopo avere accettato le condizioni, selezionare la versione desiderata, per ubuntu non sono stati rilasciati i pacchetti .deb, ma solo *.rmp
ovviamente scaricato il file in formato *.rmp bisogna trasformare il tutto in *.deb con alien(leggi come fare).

#sudo alien sqldeveloper_*.rmp

quindi:
#sudo dpkg -i sqldeveloper_*.deb

terminata la fase di installazione, bisogna intervenire sul file un configurazione del software per settare la JAVA_HOME.
in particolare posizionarsi nella cartella dove e' stato installato il prodotto:
#cd /opt/sqldeveloper/sqldeveloper/bin
#sudo vim sqldeveloper.conf

e aggiungere alla fine del file la seguente variabile:
SetJavaHome /usr/lib/jvm/java-6-sun-1.6*
e modifcare se si ha disponoibilita' di RAM il parametro MaxPermSize


esempio di sqldeveloper.conf

SetJavaHome ../../jdk
AddVMOption -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true
AddVMOption -Dsun.java2d.ddoffscreen=false
AddVMOption -Dwindows.shell.font.languages=
AddVMOption -XX:MaxPermSize=256M
IncludeConfFile sqldeveloper-nondebug.conf

SetJavaHome /usr/lib/jvm/java-6-sun-1.6.0.15


e' importante ricordarsi che se java e' stato installato con il "Gestore Pacchetti" (vedi il link) ogni qual volta viene fatto un aggiornamento bisogna modificare la variabile come descritto sopra.

per eseguire il software
#sqldeveloper
o crearsi un'icona sulla barra delle applicazioni.