Old:Realizzazione di un Desktop Environment su misura: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(piccole migliorie)
 
(45 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
=Introduzione=
{{Old}}
In genere si sente spesso parlare di LAMP (Linux, Apache, MySQL e PHP), con riferimento alla famosa e diffusa piattaforma open per lo sviluppo di applicazioni web based (per informazioni complete e dettagliate sull'impostazione di un sistema LAMP vi invito a leggere la guida, presente su questo sito, [[LAMP: Linux, Apache, MySQL e PHP]]). In questa guida, invece, vorrei proporvi una variante di tale piattaforma in cui il DBMS MySQL viene sostituito da Oracle Server 10g Express Edition, una versione free del pi� blasonato DBMS commerciale, disponibile anche per il pinguino, seppur con alcune limitazioni di cui parler� in seguito.
== Introduzione ==
In questa guida si focalizzer� l'attenzione sull'installazione e la configurazione di [http://httpd.apache.org/ Apache], [http://www.php.net/ PHP] ed [http://www.oracle.com/technology/software/products/database/xe/index.html Oracle Database Server 10g XE] e sulle modalit� di interazione tra questi software, in modo tale da disporre di una piattaforma completa per lo sviluppo di applicazione web-based.
L'obiettivo di questa guida è quello di permettere di realizzare un Desktop Environment altamente personalizzato e tagliato su misura attorno alle esigenze dell'utente.
Tutti i passaggi indicati in questa guida sono stati eseguiti su un sistema Debian GNU/Linux 4.0 R3 Netinst.
Buona lettura!


=Oracle Database Server 10g XE=
Sono molte infatti le situazioni in cui l'utenza non rinuncia all'utilizzo di sistemi operativi e software proprietari unicamente per il motivo che su un nuovo ambiente si trova del tutto disorientata.
==Installazione==
Sul sito di Oracle Corp., previa procedura di registrazione, sono disponibili i pacchetti per Debian, Ubuntu, Suse Novell, Red Hat/Fedora e Mandriva di Oracle Database Server 10g XE con una serie di limitazioni rispetto alla versione a pagamento:
* se Oracle Database Server 10g XE viene installato su un computer con pi� di una CPU (incluse anche le CPU dual core), esso utilizzer� esclusivamente le risorse di una sola CPU
* su un singolo computer pu� essere effettuata l�installazione di una sola copia di Oracle Database Server 10g XE; in aggiunta, gli utenti possono far girare una sola istanza del database Oracle su ciascun computer. Quest�ultima limitazione pu� comunque essere aggirata in quanto, anche sulla stessa installazione di Oracle Database Server 10g XE possono convivere pi� schemi, ciascuno dei quali contenente le proprie tabelle. Di fatto, � come se sulla stessa macchina fossero presenti pi� database simultaneamente
* la quantit� massima di dati contenuta in un database Oracle Database Server 10g XE non pu� superare i 4 gigabytes di spazio disco, tuttavia se i dati degli utenti dovessero superare tale quota, il sistema invierebbe l�errore ORA-12592
* la quantit� massima di memoria RAM che Oracle Database Server 10g XE utilizza non pu� eccedere un gigabyte, anche se ne � disponibile una quantit� maggiore. La quantit� di memoria totale utilizzata dal server Oracle viene ricavata come somma della System Global Area (SGA) e della Program Global Area (PGA) aggregata
* il protocollo HTTPS (Secure HTTP) non � supportato nativamente dal listener HTTP presente in Oracle 10g XE, quindi � necessario far uso di un web server, come Apache, che supporti tale protocollo


Limitazioni a parte, Oracle Database Server 10g XE resta, a mio avviso, un buon prodotto utilizzato con successo, ad esempio, da varie universit� sul territorio italiano.
Le alternative che, ad esempio, un datore di lavoro può valutare nel caso in cui volesse forzare la migrazione cercando nel contempo di minimizzare i traumi, sono sostanzialmente due:
Una volta effettuato il download del pacchetto, l'installazione di Oracle Database Server 10g XE si riduce al seguente comando:
#installare un clone pressoché perfetto del sistema a cui l'utente è abituato (ad esempio [http://www.ylmf.org/ Ylmf OS] o [http://www.brlix.com/ BRLix GNU/Linux]);
#fornire un prodotto "sartoriale" costruito attorno alle reali esigenze.


<pre>
Adottando questa seconda impostazione si può ottenere un ambiente di lavoro estremamente ottimizzato; inoltre saranno assenti tutti quegli strumenti superflui (in quanto non strettamente necessari alle attività specifiche per le quali il PC è destinato) che non hanno altro effetto se non quello di disorientare il nuovo utente. L'utilizzatore non avrà alcuna funzione amministrativa, neppure del suo ambiente di lavoro: dovrà unicamente usare ciò che troverà predisposto ed eventualmente suggerire migliorie (funzionali o anche solo visive) all'amministratore. In questo modo si semplifica notevolmente l'ambiente di lavoro, riducendo in modo sostanziale il numero di menu necessari.
# dpkg �i oracle-xe-10.2.0.1-1.0.deb
</pre>
 
L'installazione di Oracle Database Server 10g XE richiede la presenza di alcuni pacchetti che vanno installati a parte, se non presenti con il seguente comando:
 
<pre>
# apt-get install bc libaio1 libxml2 libxml2-dev libxml2-utils python-libxml2
</pre>
 
==Configurazione==
Al termine dell'installazione, bisogna configurare opportunamente Oracle Database Server 10g XE lanciando lo script '''oracle-xe''' con l'opzione �configure�. Tale script si trova nella directory /etc/init.d/ e va eseguito sempre con i privilegi di root.
Lo script in questione richiede interattivamente all'utente di fornire una serie di informazioni per eseguire Oracle Database Server 10g XE tra cui:
 
* il numero di porta (per default la 8080) tramite cui � possibile raggiungere l�interfaccia web per la configurazione di Oracle all�url http://127.0.0.1:8080/apex
* il numero di porta (per default la 1521) su cui si mette in attesa il �listener� di Oracle Server, ossia un demone preposto a ricevere e servire le richieste di connessione al server Oracle, appunto. Se si dispone di un firewall potrebbe essere necessario configurarlo in modo tale da lasciare passare il traffico sulla porta 1521 o, diversamente, � possibile indicare allo script di configurazione di Oracle Server 10g XE di mettere il listener in ascolto su una porta differente
* quando far partire l�istanza di Oracle Database Server 10g XE; si pu� decidere se schedulare la partenza di Oracle al boot del sistema, oppure se eseguirla manualmente di volta in volta (io ho optato per la prima opzione, per comodit�, ma � pur sempre possibile realizzare uno script bash per gestire l'avvio e l'arresto di Oracle in modo manuale).
 
==Impostazione delle variabili d�ambiente di Oracle Server 10g XE==
Al termine dell'installazione di Oracle Server 10g XE � necessario settare le variabili d'ambiente indispensabili per il funzionamento di tool come, ad esempio, SQL*Plus, utilizzato per le classiche operazioni di gestione del database come inserimenti, modifiche, cancellazioni, consultazioni di dati e cos� via.
Per procedere in questo senso, � sufficiente lanciare uno script di configurazione delle variabili d�ambiente di Oracle Database Server 10g XE, disponibile in due distinte versioni dipendentemente dalla shell in uso. I due script si trovano nella directory /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/ e sono:
 
* oracle_env.sh (valido anche per le shell Bourne e Korn)
* oracle_env.csh (valido anche per le shell C e tsh)


Lo script oracle_env.sh, si occupa di impostare una serie di variabili d'ambiente tra cui:
Al contempo si vuole ottenere anche un ambiente esteticamente molto bello, in modo da incuriosire l'utilizzatore e non fargli rimpiangere il sistema operativo abbandonato. Le risorse hardware oggigiorno difficilmente sono infatti un fattore limitante.


* ORACLE_HOME: il path dell�installazione di Oracle 10g XE
Viste le esigenze, si è scelto di basare la costruzione del nostro Desktop Environment sul window manager [http://pekwm.org/ PekWM].
* ORACLE_SID: il nome del database (XE)
* NLS_LANG: il character set, rilevato in base alle impostazioni in uso sul sistema operativo, che verr� utilizzato per la memorizzazione dei dati nel database
* PATH: il percorso che porta alla directory contenente gli eseguibili di Oracle Server 10g XE
* LD_LIBRARY_PATH: il percorso della directory contenente le librerie principali per Oracle Server 10g XE


{{Warningbox|Va ricordato che riavviando il computer, i settaggi impostati con lo script oracle_env.sh vengono persi, perci� � buona norma inserire la stringa:
== Prima di iniziare ==
Prima di buttarsi sul PC a smanettare, è importante avere bene in mente l'obiettivo da perseguire.


/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
Occorre immedesimarsi nell'utilizzatore finale: potrebbe essere utile osservare l'utente all'opera, prendendo appunti su quali siano le applicazioni che usa e su come si muove abitualmente. Sarà inoltre nostro compito trovare delle alternative dalle funzionalità simili, nel caso che i programmi attualmente in uso non esistano per Linux.


all�interno del file .bash_profile; inoltre, per poter mantenere le stesse impostazioni all�apertura di ogni nuova shell durante la sessione corrente, � conveniente aggiungere l'istruzione precedente anche all�interno del file .bashrc.}}
Successivamente, sempre su carta, è importante abbozzare quali potrebbero essere le caratteristiche per rendere funzionale l'interfaccia, e come realizzarle.


Bene, l'installazione e la configurazione di Oracle Database Server 10g XE sono complete! Per assicurarsi che Oracle sia partito correttamente, � possibile lanciare il comando seguente:
== Debian ==
Il primo passo è ovviamente quello di [[Installare Debian|installare il nostro sistema operativo]]. <!--Immaginando un utilizzo per lo più lavorativo, a-->Abbiamo scelto di installare <!--il ramo stabile (-->Debian <!--4.0 "Etch")-->Squeeze. Il consiglio è di creare una partizione /home/ separata e di installare solo un sistema minimale lasciando selezionato unicamente il metapacchetto "Sistema standard".


A questo punto è possibile aggiungere alcuni pacchetti non inclusi in questa installazione:
<pre>
<pre>
# /etc/init.d/oracle-xe status
# aptitude update
 
# aptitude purge vim-tiny
LSNRCTL for Linux: Version 10.2.0.1.0 - Beta on 14-FEB-2007 10:14:01
# aptitude install vim ntp ssh
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
��������
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Beta
Start Date 14-FEB-2007 10:13:44
Uptime 0 days 0 hr. 0 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora
Listener Log File /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log
Listening Endpoints Summary�
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary�
Service �PLSExtProc� has 1 instance(s).
Instance �PLSExtProc�, status UNKNOWN, has 1 handler(s) for this service�
The command completed successfully
</pre>
</pre>


Come si pu� notare dall'output dello script, il listener Oracle ha un'istanza attiva sulla porta 1521, come stabilito in fase di configurazione.
Riavviamo e controlliamo che tutto funzioni regolarmente.


=Apache e PHP=
== Server grafico ==
Il secondo passo consiste nell'installazione e configurazione di Apache e PHP con supporto al DBMS Oracle. &Egrave; possibile installare il web server Apache e il linguaggio di scripting serverside PHP tramite i pacchetti forniti dalla propria distribuzione, oppure ricompilare il tutto da sorgenti. La possibilit� di compilare questi due software da sorgenti consente di scegliere autonomamente le opzioni di compilazione pi� adatte alle proprie necessit� (ad esempio, il supporto per Oracle, oppure per MySQL, per LDAP, per la libreria di compressione zlib e cos� via).
=== Installazione ===
Una volta sicuri che il sistema sia installato e configurato correttamente, possiamo installare il server grafico:
<pre># aptitude install xorg</pre>


==Installazione e configurazione di Apache==
Il sistema, nel caso non riconoscesse la scheda video, sceglierà di utilizzare i generici driver VESA, in modo tale da essere in grado di funzionare sostanzialmente su qualsiasi macchina. Con ogni probabilità però saranno disponibili dei driver migliori. Vista la grande varietà di hardware disponibile, questa non è la sede per ulteriori approfondimenti. Si consiglia unicamente di testare il proprio hardware sul [http://kmuto.jp/debian/hcl/ sito di Kenshi Muto], dove verrà indicato anche il miglior driver libero disponibile.
I comandi seguenti consentono il download, la scompattazione e la compilazione del web server Apache sulla propria Linux box:


Nel caso in cui si fosse a conoscenza del driver specifico della propria scheda video (il comando <code>lspci</code> contenuto nel pacchetto <code>pciutils</code> può tornare utile allo scopo), è possibile attuare un'installazione ancora più minimale:
<pre>
<pre>
$ wget -c http://apache.fis.uniroma2.it/httpd/httpd-2.2.3.tar.gz
# aptitude install x11-xserver-utils xinit xserver-xorg-video-[...]
# tar xzf httpd-2.2.3.tar.gz /usr/local/src/
 
# cd /usr/local/src/httpd-2.2.3/
# ./configure --prefix=/usr/local/apache2/
# make && make install
</pre>
</pre>
dove, al posto di <code>[...]</code> va messa la parte finale del nome del pacchetto contenente il nostro driver.


il parametro '''--prefix''' passato al comando configure richiede il path in cui verr� installato il web server Apache. Dalla documentazione del web server si legge che il percorso di default da indicare � /usr/local/apache2/.
=== Test ===
Le impostazioni del server web Apache risiedono nel file '''httpd.conf''' (che si trova nella directory /usr/local/apache2/conf/ nel caso sia stata effettuata l'installazione da sorgenti); tale file pu� essere modificato, disponendo dei privilegi di root, con un qualsiasi editor di testi.
Proviamo ad avviare il server grafico:
Le direttive da impostare nel file httpd.conf per ottenere un funzionamento minimale del web server Apache sono:
<pre>$ startx</pre>
 
* Listen: consente ad Apache di porsi in ascolto su un determinato indirizzo IP e/o porta
* ServerName: il nome del server, o l'indirizzo IP e il numero di porta che il server utilizza per identificare se stesso
* DocumentRoot: la directory contenente le pagine web delle proprie applicazioni. &Egrave anche possibile indicare un alias, o un link simbolico per puntare ad altre locazioni del filesystem.


Una volta salvate le modifiche apportate al file httpd.conf, si pu� far partire Apache con il comando:
Dovrebbe visualizzarsi una finestra di xterm.


Proviamo a verificare che la risoluzione video sia corretta avviando un programma grafico un po' più impegnativo, ad esempio Iceweasel:
<pre>
<pre>
# /usr/local/apache2/bin/apachectl start
# aptitude install iceweasel-l10n-it
# exit
$ startx
</pre>
</pre>


quindi, puntanto il proprio browser web all'indirizzo specificato anche con la direttiva '''ServerName''' precedentemente citata, si dovrebbe poter visualizzare la pagina di benvenuto di Apache.
Dentro alla finestra di xterm digitiamo dunque
 
<pre>$ iceweasel</pre>
==Installazione e configurazione di PHP==
PHP � un linguaggio di scripting serverside che consente di integrare il codice HTML al fine di realizzare pagine web dinamiche, ossia il cui contenuto varia in base alle azioni intraprese dagli utenti. Poich� lo scopo di questa guida � quello di realizzare un server web in grado di interagire con una base di dati Oracle, � necessario che PHP disponga del supporto per tale DBMS. Ancora una volta, per poter abilitare esclusivamente le funzionalit� richieste di PHP, si � optato per la compilazione dei sorgenti di questo software.
 
<pre>
$ wget -c http://it2.php.net/get/php5.1.6.tar.gz/from/it.php.net/mirror
# tar xzf php-5.1.6.tar.gz /usr/local/src/
# cd /usr/local/src/php5.1.6/
 
# ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/apache2/conf \
--with-oci8=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server \
--enable-sigchild \
--without-mysql
 
# make && make install
</pre>
 
Come si pu� notare dal codice precedente, il comando '''configure''' � seguito da una serie di opzioni da attivare nella successiva fase di compilazione:
 
* --prefix: permette di indicare in quale directory installare PHP
* --with-apxs2: indica che si vuole compilare PHP come un moulo condiviso di Apache
* --with-config-file-path: indica il percorso dei file di configurazione di Apache
* '''--with-oci8''': abilita il supporto per il DBMS Oracle di cui � necessario indicare il path dell'installazione.
* --enable-sigchild: abilita il gestore dei segnali proprio di PHP
* --without-mysql: disabilita il supporto al DBMS MySQL, non necessario, visto che si vuole utilizzare Oracle Database Server
 
Il parametro '''--with-oci8''' richiede di specificare il percorso, sul filesystem locale, dell'installazione di Oracle Database Server, se tale installazione � stata effettuata sullo stesso server fisico di Apache e PHP. Se, invece, web server e db server risiedono su due macchine distinte, come spesso accade, allora sulla macchina che funge da server web deve essere installato l'[http://www.oracle.com/technology/tech/oci/instantclient/index.html Oracle Instant Client].
I passi da seguire per installare tale software sono molto semplici:
 
* Scaricare, dal link sopra indicato, i package '''Basic''' e '''SDK'''
* Scompattare i file scaricati in una directory a piacere (ad es. /usr/local/src/)
 
<pre>
# mkdir /usr/local/src/instantclient
# cd /usr/local/src/instantclient
# unzip instantclient-basic-linux32-10.2.0.1-20050713.zip
# unzip instantclient-sdk-linux32-10.2.0.1-20050713.zip
</pre>
 
* Creare un link simbolico alle librerie libclntsh.so.10.1 e libocci.so.10.1
 
<pre>
ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so
</pre>
 
La scompattazione dei due file precedenti crea una directory, contenente i files dell'Oracle Instant Client. Nel mio caso, tale directory si chiama "instantclient_11/", ma il nome potrebbe differire, quindi '''ATTENZIONE'''.
Il comando configure precedentemente lanciato per PHP va quindi modificato indicando, con la direttiva '''--with-oci8''', il percorso in cui � stato installato l'Oracle Instant Client:
 
<pre>
# ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/apache2/conf \
--with-oci8=instantclient,/usr/local/src/instantclient/instantclient_11/ \
--enable-sigchild \
--without-mysql
</pre>
 
Per concludere l�installazione di PHP � sufficiente inserire il percorso /usr/local/php/lib/php all�interno del file '''php.ini''', il quale deve essere successivamente copiato dalla directory dei sorgenti di PHP nella directory /usr/local/lib e in /usr/local/apache2/conf/ (se Apache � stato compilato da sorgenti).
Se la compilazione di PHP � andata a buon fine, nel file httpd.conf sar� stata aggiunta in automatico la seguente stringa:
 
<pre>
LoadModule php5_module modules/libphp5.so
</pre>
 
Questa riga indica che Apache ha caricato il modulo per il funzionamento delle pagine web contenenti codice PHP (nella versione 5), tuttavia, per far s� che i browser web interpretino correttamente il codice PHP, � necessario modificare nuovamente il file httpd.conf di configurazione del web server Apache aggiungendo le due righe seguenti all'interno della sezione '''<IfModule mime_module>'''
 
<pre>
<IfModule mime_module>
[...]
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
</IfModule>
</pre>
 
Di default, PHP offre il supporto per il DBMS MySQL, mentre nel caso di questa guida esso � stato sostituito con il supporto ad Oracle. Questo richiede di modificare alcune direttive presenti nel file php.ini per rendere PHP aderente alla sintassi utilizzata da Oracle. In particolare, MySQL ed Oracle considerano il carattere apice(�) come delimitatore di stringhe, o di date. Se si deve memorizzare una stringa all�interno di una tabella e questa stringa contiene una o pi� occorrenze del carattere apice, entrambi i DBMS ritorneranno un errore a meno di non eseguiate un escape di tale carattere jolly. Questa operazione si rende, ovviamente, necessaria anche per i dati che gli utenti inseriscono, ad esempio, tramite i form di un sito e che poi andranno inseriti all�interno di un database, ma con una importante differenza: MySQL effettua l�escape del carattere apice tramite il carattere backslash (\),  mentre Oracle utilizza un ulteriore apice.
PHP consente l�escape del carattere apice, se presente nei dati passati tramite GET, POST o persino cookie, per mezzo delle seguenti direttive contenute nel php.ini:
 
<pre>
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ' with '' instead of ').
magic_quotes_sybase = On
</pre>
 
Impostando �magic_quotes_gpc� e �magic_quotes_sybase� a �On� si ottiene l�escape del carattere apice alla maniera di Oracle, mentre se magic_quotes_sybase viene impostato a �Off� si ottiene l�escape alla maniera di MySQL.
 
=PEAR=
PHP mette a disposizione delle funzioni che consentono la comunicazione con una base di dati, ma esse dipendono strettamente dal tipo di DBMS con cui le pagine web scritte in PHP devono interagire. Per questo motivo � necessario servirsi del framework [http://pear.php.net/ PEAR] (PHP Extension and Application Repository), ossia un repository di package con cui � possibile estendere le funzionalit� del linguaggio PHP. In particolare, il [http://pear.php.net/package/DB package DB], fornisce un�API che si frappone tra PHP e il DBMS sottostante, permettendo di slegare un'applicazione web dal DBMS in uso. Il vantaggio � che se dovesse rendersi necessaria una migrazione del database verso un DBMS diverso da quello attuale non vi sar� l'obbligo di modificare tutte le funzioni che PHP utilizza per interagire con la base di dati, ma solo il protocollo do comunicazione utilizzato (oci8 per Oracle, oppure mysql per MySQL, ecc).
 
{{ Warningbox | Attualmente, il package DB � stato sostituito dal [http://pear.php.net/package/MDB2 package MDB2] che si consiglia di utilizzare.}}
 
==Configurazione di PEAR==
Conclusa la configurazione di PHP, � necessario passare a quella del framework PEAR quindi, aggiungendo i pacchetti necessari per la comunicazione con una base di dati gestita tramite Oracle. Le API messe a disposizione da PEAR potranno poi essere sfruttate nelle proprie pagine PHP per slegarsi dal DBMS in uso.
L'aggiunta di un pacchetto in PEAR si esegue con il comando:
 
<pre>
pear install [nome_pacchetto]
</pre>
 
tramite cui si pu� installare un package prelevandolo direttamente dai repository di PEAR.
Di seguito vengono indicati i comandi necessari per installare sia il package DB, sia MDB2:
Per il package DB:
 
<pre>
# ./pear install DB
</pre>
 
Per il nuovo package MDB2, invece:
 
<pre>
# ./pear install MDB2
# ./pear install pear/MDB2#oci8
</pre>


{{box|Nota Bene:|� necessario ricordarsi di includere il file DB.php, oppure MDB2.php, a seconda del pacchetto installato, all'interno delle proprie pagine PHP per poter utilizzare le funzioni messe a disposizione da questo package per l'interazione con una base di dati Oracle.
==  Window manager ==
L'istruzione da utilizzare all'inizio del codice PHP � la seguente:
=== Installazione ===
L'installazione di PekWM è semplicissima: è sufficiente un banale
<pre># aptitude install pekwm</pre>


require_once ('MDB2.php');}}
Ora, avviando startx, dovremmo automaticamente entrare in PekWM. Bisogna ancora configurare tutto; per adesso avremo a disposizione solo un unico menu accessibile tramite un click destro sulla superficie vuota, grazie al quale sono possibili solo alcune azioni elementari:
*aprire finestre di terminale
*lanciare comandi da un prompt
*spostarsi tra le finestre
*riavviare o chiudere PekWM
*poco altro


=Conclusioni=
=== Configurazione ===
Bene, a questo punto disponiamo di un web server con Apache e PHP configurati per comunicare con una base di dati Oracle sottostante e il tutto in salsa open source!
Si tratta sostanzialmente di metter mano nei file di testo contenuti in <code>~/.pekwm/</code>.
<!--
Se non si ha già pronta una configurazione, potrebbe essere una buona idea creare un file '''.fvwm2rc''' attraverso la procedura guidata ("Setup Form"), stamparlo
$ lp ~/.fvwm/.fvwm2rc
studiarlo e poi andare a modificarlo secondo le proprie esigenze.
-->


== Da provare ==
*[http://packages.debian.org/sid/wbar wbar], una dock bar


----
== Riferimenti ==
Autore: [[Utente:Hydra|Hydra]] 04:10, 15 Mar 2008 (CDT)
*[http://it.wikipedia.org/wiki/Interfaccia_grafica Interfacce grafiche]
[[Categoria:Server]][[Categoria:Networking]]
**[http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/HTML/a2280.htm Capitoli relativi] su [http://it.wikipedia.org/wiki/Appunti_di_informatica_libera Appunti di informatica libera]
*PekWM
**[http://www.squadrainformatica.com/?q=node/1141 Guida introduttiva a PekWM]
**[http://linuax.wordpress.com/2009/12/25/un-altro-cugino-della-famiglia-box-wm-pekwm/ Altra guida un po' più approfondita]

Versione attuale delle 18:41, 3 nov 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

L'obiettivo di questa guida è quello di permettere di realizzare un Desktop Environment altamente personalizzato e tagliato su misura attorno alle esigenze dell'utente.

Sono molte infatti le situazioni in cui l'utenza non rinuncia all'utilizzo di sistemi operativi e software proprietari unicamente per il motivo che su un nuovo ambiente si trova del tutto disorientata.

Le alternative che, ad esempio, un datore di lavoro può valutare nel caso in cui volesse forzare la migrazione cercando nel contempo di minimizzare i traumi, sono sostanzialmente due:

  1. installare un clone pressoché perfetto del sistema a cui l'utente è abituato (ad esempio Ylmf OS o BRLix GNU/Linux);
  2. fornire un prodotto "sartoriale" costruito attorno alle reali esigenze.

Adottando questa seconda impostazione si può ottenere un ambiente di lavoro estremamente ottimizzato; inoltre saranno assenti tutti quegli strumenti superflui (in quanto non strettamente necessari alle attività specifiche per le quali il PC è destinato) che non hanno altro effetto se non quello di disorientare il nuovo utente. L'utilizzatore non avrà alcuna funzione amministrativa, neppure del suo ambiente di lavoro: dovrà unicamente usare ciò che troverà predisposto ed eventualmente suggerire migliorie (funzionali o anche solo visive) all'amministratore. In questo modo si semplifica notevolmente l'ambiente di lavoro, riducendo in modo sostanziale il numero di menu necessari.

Al contempo si vuole ottenere anche un ambiente esteticamente molto bello, in modo da incuriosire l'utilizzatore e non fargli rimpiangere il sistema operativo abbandonato. Le risorse hardware oggigiorno difficilmente sono infatti un fattore limitante.

Viste le esigenze, si è scelto di basare la costruzione del nostro Desktop Environment sul window manager PekWM.

Prima di iniziare

Prima di buttarsi sul PC a smanettare, è importante avere bene in mente l'obiettivo da perseguire.

Occorre immedesimarsi nell'utilizzatore finale: potrebbe essere utile osservare l'utente all'opera, prendendo appunti su quali siano le applicazioni che usa e su come si muove abitualmente. Sarà inoltre nostro compito trovare delle alternative dalle funzionalità simili, nel caso che i programmi attualmente in uso non esistano per Linux.

Successivamente, sempre su carta, è importante abbozzare quali potrebbero essere le caratteristiche per rendere funzionale l'interfaccia, e come realizzarle.

Debian

Il primo passo è ovviamente quello di installare il nostro sistema operativo. Abbiamo scelto di installare Debian Squeeze. Il consiglio è di creare una partizione /home/ separata e di installare solo un sistema minimale lasciando selezionato unicamente il metapacchetto "Sistema standard".

A questo punto è possibile aggiungere alcuni pacchetti non inclusi in questa installazione:

# aptitude update
# aptitude purge vim-tiny
# aptitude install vim ntp ssh

Riavviamo e controlliamo che tutto funzioni regolarmente.

Server grafico

Installazione

Una volta sicuri che il sistema sia installato e configurato correttamente, possiamo installare il server grafico:

# aptitude install xorg

Il sistema, nel caso non riconoscesse la scheda video, sceglierà di utilizzare i generici driver VESA, in modo tale da essere in grado di funzionare sostanzialmente su qualsiasi macchina. Con ogni probabilità però saranno disponibili dei driver migliori. Vista la grande varietà di hardware disponibile, questa non è la sede per ulteriori approfondimenti. Si consiglia unicamente di testare il proprio hardware sul sito di Kenshi Muto, dove verrà indicato anche il miglior driver libero disponibile.

Nel caso in cui si fosse a conoscenza del driver specifico della propria scheda video (il comando lspci contenuto nel pacchetto pciutils può tornare utile allo scopo), è possibile attuare un'installazione ancora più minimale:

# aptitude install x11-xserver-utils xinit xserver-xorg-video-[...]

dove, al posto di [...] va messa la parte finale del nome del pacchetto contenente il nostro driver.

Test

Proviamo ad avviare il server grafico:

$ startx

Dovrebbe visualizzarsi una finestra di xterm.

Proviamo a verificare che la risoluzione video sia corretta avviando un programma grafico un po' più impegnativo, ad esempio Iceweasel:

# aptitude install iceweasel-l10n-it
# exit
$ startx

Dentro alla finestra di xterm digitiamo dunque

$ iceweasel

Window manager

Installazione

L'installazione di PekWM è semplicissima: è sufficiente un banale

# aptitude install pekwm

Ora, avviando startx, dovremmo automaticamente entrare in PekWM. Bisogna ancora configurare tutto; per adesso avremo a disposizione solo un unico menu accessibile tramite un click destro sulla superficie vuota, grazie al quale sono possibili solo alcune azioni elementari:

  • aprire finestre di terminale
  • lanciare comandi da un prompt
  • spostarsi tra le finestre
  • riavviare o chiudere PekWM
  • poco altro

Configurazione

Si tratta sostanzialmente di metter mano nei file di testo contenuti in ~/.pekwm/.

Da provare

Riferimenti