Utente:LoStrangolatore/Calderone/Slackware

Wikibooks, manuali e libri di testo liberi.

Gestione dei .tar.gz[modifica]

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]

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]

#!/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]

Premessa[modifica]

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]

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]

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]

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]

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]

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]

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]

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.