Basi di Linux – Gestione dei pacchetti RPM e installazione di un’applicazione in codice sorgente

September 21, 2007

Gestione dei pacchetti RPM e installazione di un’applicazione in codice sorgente

Adesso daremo un’occhiata a come si installa un programma sotto linux. Inizieremo con i pacchetti RPM. Definizione11: Un pacchetto RPM è un programma di installazione di un’applicazione software. Spesso un’applicazione Linux è costituita da numerosi file che devono essere installati in varie directory: il programma viene inserito nella directory /usr/bin, i file di documentazione in un’altra directory e i file di libreria in una terza directory. Inoltre l’installazione può dover modificare alcuni file di configurazione del sistema. Il pacchetto software RPM svolge automaticamente tutte queste operazioni. Se successivamente si deciderà di non volere una determinata applicazione, si potranno anche disinstallare i pacchetti per eliminare dal sistema tutti i file e le informazioni di configurazione (più o meno come accade su windows).

Proviamo a installare il pacchetto. Digitando:

[root@diamondhead /root]# rpm

si ha la lista delle opzioni per questo comando. Procuriamoci innanzitutto il pacchetto da installare, per esempio possiamo installare xlispstat, il linguaggio lisp con un modulo supplementare per le statistiche.
Intanto accertiamoci che xlispstat non sia già installato:

[root@diamondhead /root]# rpm -qi xlispstat
package xlispstat is not installed

fatto questo installiamo il pacchetto:

[root@diamondhead /root]# rpm -ivh xlispstat-3.52.18-2.i386.rpm
Preparing… ########################################### [100%]

1:xlispstat ########################################### [100%]

il pacchetto è stato installato. Il parametro i sta per install, la v sta per verify (pronuncia: verifai), e la h sta per hash (pronuncia: hash), cioè fa in modo che si veda lo stato di avanzamento dell’installazione. A questo punto proviamo a verificare i file installati:

[root@diamondhead /root]# rpm -ql xlispstat
/usr/bin/xlispstat
/usr/lib/xlispstat
/usr/lib/xlispstat/Autoload
/usr/lib/xlispstat/Autoload/_autoidx.lsp
/usr/lib/xlispstat/Autoload/bayes.fsl
/usr/lib/xlispstat/Autoload/glim.fsl
/usr/lib/xlispstat/Autoload/maximize.fsl
/usr/lib/xlispstat/Autoload/nonlin.fsl
/usr/lib/xlispstat/Autoload/oneway.fsl
/usr/lib/xlispstat/Autoload/stepper.fsl
/usr/lib/xlispstat/Data
/usr/lib/xlispstat/Data/absorbtion.lsp

si vedono i file installati e le relative directory. Proviamo ora a vedere le informazioni relative al pacchetto RPM:

[root@diamondhead /root]# rpm -qi xlispstat

Se si ha un pacchetto RPM da aggiornare su uno già installato basta usare l’opzione U al posto della lettera i. Ora controlliamo se effettivamente il linguaggio LISP è disponibile nel nostro sistema:

[root@diamondhead /root]# xlispstat

vediamo che siamo già dentro l’interprete. Ora usciamo con Ctrl+D. Per sapere in quale directory xlispstat è stato installato basta fare un:

[root@diamondhead /root]# which xlispstat
/usr/bin/xlispstat

questo vale ovviamente per qualsiasi programma che si trova nella variabile PATH del nostro ambiente. Se facciamo un:

[root@diamondhead /root]# which httpd
/usr/sbin/httpd

vediamo che il programma apache si trova dentro /usr/sbin/ anche se però lo script di gestione (avvio/arresto) si trova dentro /etc/rc.d/init.d/httpd.
Proviamo ora a cancellare un pacchetto RPM. Proviamo con xlispstat appena installato.

[root@diamondhead /root]# rpm -e xlispstat

come si vede non è obbligatorio specificare la versione e quant’altro. Controlliamo se l’opzione -e ha fatto il suo dovere:

[root@diamondhead /root]# rpm -qi xlispstat
package xlispstat is not installed

come volevasi dimostrare.

Ora proviamo a compilare un codice sorgente. Andiamo a vedere su internet se troviamo qualcosa. Andiamo su google e proviamo a fare una ricerca per “chkrootkit”, un applicativo che controlla eventuali virus e comandi sostituiti al nostro sistema.

(se non si trova niente)
Vi copio dentro la home directory di root l’archivio compresso chkrootkit.tar.gz.

[root@diamondhead /root]# scp chkrootkit.tar.gz 192.168.1.2:/root/.

(per tutti gi host da 2 a 13)

ora che abbiamo il nostro codice da compilare, creaimo una directory:

[root@diamondhead /root]# mkdir chkrootkit

e spostiamo l’archivio dentro la directory appena creata:

[root@diamondhead /root]# mv chkrootkit.tar.gz chkrootkit/.

ora entriamo nella directory:

[root@diamondhead /root]# cd chkrootkit/
[root@diamondhead chkrootkit]# ls

scompattiamo il tutto:

[root@diamondhead chkrootkit]# gzip -dvr chkrootkit.tar.gz
chkrootkit.tar.gz: 79.0% — replaced with chkrootkit.tar
[root@diamondhead chkrootkit]# tar xvf chkrootkit.tar

ora entriamo nella directory appena creata:

[root@diamondhead chkrootkit]# cd chkrootkit-0.35/

e diamo un’occhiata al file README:

[root@diamondhead chkrootkit-0.35]# more README

nel punto 5 c’è la fase di installazione, basta fare un make sense per compilare il programma in C e poi possiamo utilizzare l’applicativo semplicemente mandando in esecuzione chkrootkit:

[root@diamondhead chkrootkit-0.35]# make sense
[root@diamondhead chkrootkit-0.35]# ./chkrootkit

il programma inizierà a controllare il filesystem alla ricerca di eventuali virus; allo stesso tempo il programma controlla anche possibili comandi modificati da un eventuale rootkit.

Leave a Reply