Utente:LoStrangolatore/Calderone/Slackware
Gestione dei .tar.gz
[modifica | modifica sorgente]La Slackware utilizza pkgtool e i comandi installpkg/removepkg per la gestione dei pkg ufficiali della distribuzione. Per installare programmi dai sorgenti, e per mantenere traccia dei file aggiunti in modo da permetterne la rimozione con i tool ufficiali, basta creare un file di testo in /var/log/packages con l'elenco dei file aggiunti e delle eventuali directory create durante l'installazione. Il formato del file di testo è molto semplice, ed è sufficiente un semplice shell script per crearlo.
Procedura per l'installazione
[modifica | modifica sorgente]Per cominciare, spostarsi nella directory /tmp e scompattare il file .tar.gz. Poi spostarsi nella directory creata e dare il comando:
# ./configure --help
per visualizzare le opzioni configurabili. Dopo aver lanciato il configure dare il comando make. A fine compilazione, lanciare lo script che segue, e quando compare il prompt
install pkg>
dare il comando make install. Al termine dell'installazione, premere Ctrl-D. Lo script rifarà lo scanning del filesystem confrontandolo con quello fatto prima dell'installazione. Le righe dei due file che differiscono sono i file aggiunti dal programma. Apparirà poi una finestra di dialog che richiede il nome del pkg installato e una breve descrizione. Dato l'OK, lo script crea il file in /var/log/packages che permette la rimozione del programma con removepkg o con pkgtool.
Script d'esempio
[modifica | modifica sorgente]#!/bin/bash PRIMA=/tmp/prima-`date +%d_%m_%H-%M-%S` DOPO=/tmp/dopo-`date +%d_%m_%H-%M-%S` DIFFFL=/tmp/diff-`date +%d_%m_%H-%M-%S` TMPDG=/tmp/tmpdg-`date +%d_%m_%H-%M-%S` echo echo "Scanning filesystem ..." echo /usr/bin/find / -path '/boot' -prune -o -path '/dev' -prune \ -o -path '/mnt' -prune -o -path '/proc' -prune \ -o -path '/tmp' -prune -o -print | sort | sed 's|/||' > $PRIMA OLD_PS1=$PS1 export PS1='install pkg> ' /bin/bash echo echo "Scanning filesystem after installation ..." echo /usr/bin/find / -path '/boot' -prune -o -path '/dev' -prune \ -o -path '/mnt' -prune -o -path '/proc' -prune \ -o -path '/tmp' -prune -o -print | sort | sed 's|/||' > $DOPO PS1=$OLD_PS1 /usr/bin/comm -13 $PRIMA $DOPO > $DIFFFL /bin/rm $PRIMA $DOPO if [ ! -s $DIFFFL ]; then /bin/dialog --msgbox "Nessun file aggiunto" 5 30 /bin/rm $DIFFFL exit 1 fi /bin/dialog --inputbox "Nome del package" 10 30 2> $TMPDG NOMEPKG=`cat $TMPDG` /bin/dialog --inputbox "Descrizione" 10 50 2> $TMPDG DESCRPKG=`cat $TMPDG` DEST=/var/log/packages/$NOMEPKG if [ -f $DEST ]; then /bin/dialog --msgbox "Package $DEST esiste\n \ Continuo con tmp-`date +%d_%m_%H-%M-%S`" 10 50 DEST=/var/log/packages/tmp-`date +%d_%m_%H-%M-%S` fi echo "PACKAGE NAME: $NOMEPKG" > $DEST echo "COMPRESSED PACKAGE SIZE:" >> $DEST echo "UNCOMPRESSED PACKAGE SIZE:" >> $DEST echo "PACKAGE LOCATION: /usr/local/src/$NOMEPKG" >> $DEST echo "PACKAGE DESCRIPTION:" >> $DEST echo "$NOMEPKG: $DESCRPKG" >> $DEST echo "$NOMEPKG:" >> $DEST echo "./" >> $DEST /usr/bin/cat $DIFFFL >> $DEST /bin/rm $TMPDG $DIFFFL /bin/dialog --msgbox "Package $NOMEPKG registrato" 8 50 exit 0
Installazione di Oracle 9i sulla Slackware 10.2
[modifica | modifica sorgente]Premessa
[modifica | modifica sorgente]Questa non vuol essere ASSOLUTAMENTE una guida ufficiale all'installazione di Oracle, anche perché la Slackware non è tra le distribuzioni certificate da Oracle stesso. È solo la mia raccolta di appunti ottenuti cercando su internet e mettendo insieme informazioni sparse.
GCC 2
[modifica | modifica sorgente]La slackware 10.2 ha installato di default il GCC versione 3, ma per la compilazione e l'installazione Oracle richiede la versione 2. Per l'installazione, basta installare la libreria compat-gcc-7.3-2.96.i386.rpm e ricreare momentaneamente il link /usr/bin/gcc facendolo puntare a /usr/bin/gcc296.
Sysctl.conf
[modifica | modifica sorgente]Aggiungere in /etc/sysctl.conf le seguenti righe
kernel.sem = 100 32000 100 100 kernel.shmmax = 2147483648 net.ipv4.ip_local_port_range = 1024 65000
e dare poi il comando sysctl -p.
Gruppi e utente
[modifica | modifica sorgente]Creare i gruppi dba e oinstall e assegnarli all'utente oracle
# groupadd dba # groupadd oinstall # useradd oracle -g oinstall -G dba -d /usr/local/oracle -s /bin/bash
libcwait
[modifica | modifica sorgente]Per risolvere un bug sulla libreria wait che blocca l'installazione, basta creare il sorgente libcwait.c:
#include <errno.h> #include <sys/syscall.h> #include <sys/types.h> #include <sys/wait.h> __libc_wait(int *status) { int res; asm volatile ("pushl %%ebx" "movl %2 %%ebx" "movl %1 %%eax" "int $0x80" "popl %%ebx" : "=a" (res) : "i" (__NR_wait4),"0" (WAIT_ANY), \ "c" (status),"d"(0),"S"(0)); return res; }
Creare poi la shared library con il comando
# gcc -shared -o libcwait.so libcwait.c -fpic -O # mv libcwait.so /usr/local/lib
profile utente oracle
[modifica | modifica sorgente]Prima dell'installazione, bisogna configurare l'environment dell'utente oracle. Editare il file .bash_profile nella home directory dell'utente creato:
# dove vengono creati i database # export ORACLE_BASE=/usr/local/oracle/oradata # # dove vengono installate librerie ed eseguibili # export ORACLE_HOME=/usr/local/oracle # # Identifier # export ORACLE_SID=ANTSID export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib export PATH=$PATH:$ORACLE_HOME/bin # # per caricare la libreria wait export LD_PRELOAD=/usr/local/lib/libcwait.so
netca (Network Assistant)
[modifica | modifica sorgente]Durante l'installazione, conviene anche creare un database per iniziare. Per evitare che netca si blocchi, basta creare un file sotto /etc con il comando
# touch /etc/rac_on
Lanciare runInstaller
[modifica | modifica sorgente]Come utente oracle, spostarsi nella dir Disk1 dove c'e' runInstaller e lanciare il comando sotto X. Seguire le istruzioni a video e scegliere o la Standard edition oppure selezionare solo le parti che si vogliono installare con la personalizzazione.