Immagine
 Ti accorgi che è Natale quando nevica... anche in treno.... di vittorio
 
"
La vita è più interessante... insomma, che le definizioni che si danno della vita.

Giovanni Lindo Ferretti
"
 
  Home| Chi Sono| Contatti| |La Ricetta
 
Di seguito tutti gli interventi pubblicati sul sito, in ordine cronologico.

Di vittorio (del 01/10/2009 @ 19:36:24, in Network, linkato 240 volte)

La Blue Net di IPCop serve ad interfacciare una connettività wifi che si ntende mantenere separata dalla rete locale LAN (Green Net). Questo per consentire una maggiore sicurezza, dal momento che gli endpoint che si collegano ad IPCop tramite wifi non vedranno la rete locale a meno di aprire le porte desiderate per i protocolli TCP ed UDP.

IPCop però non supporta nativamente il bridging delle schede di rete e non risulta agevole simulare il comportamento tipico dei router adsl comunemente in commercio nei negozi al giorno d'oggi. Non c'è modo infatti, tramite interfaccia grafica, di consentire il pieno accesso alla Green Net da parte dei computer che si collegano per mezzo della wifi (vedi ad esempio il trafico ICMP).

Mi è capitato di recente di installare una versione di IPCop con supporto wifi per mezzo dell'addon WLAN-AP e di dover simulare proprio il tipico comportamento dell'Access Point, dove la rete cablata è condivisa con quella senza fili.

Per abilitare tutto il traffico ho inserito alcune righe nel file /etc/rc.d/rc.firewall.local che è il file contenente i comandi da impartire al sistema operativo durante il boot per personalizzare le regole di firewalling senza interferire con la distribuzione:

/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p icmp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p tcp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p udp -j ACCEPT

Queste righe sono state inserite nella sezione start (ovviamente). In linea di principio, per abiitare un protocollo è sufficiente impartire il comando secondo a forma:

/sbin/iptables -A CUSTOMFORWARD -i 'blue device' -o 'green device' -p 'protocollo' -j ACCEPT

Per comodità, di seguito è riportato un esempio di rc.firewall.local che svolge questa attività:

#!/bin/sh
# Used for private firewall rules
# See how we were called.
case "$1" in
start)
## add your 'start' rules here
#morzello blue vs green
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p icmp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p tcp -j ACCEPT
/sbin/iptables -A CUSTOMFORWARD -i ath0 -o eth0 -p udp -j ACCEPT
;;
stop)
## add your 'stop' rules here
;;
reload)
$0 stop
$0 start
## add your 'reload' rules here
;;
*)
echo "Usage: $0 {start|stop|reload}"
;;
esac

Spero che questo articolo possa essere utile a chi deve ottenere questo risultato.

Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 25/09/2009 @ 01:54:33, in Sistemi, linkato 467 volte)
In questo articolo viene proposto un modo facile e veloce di creare un DC (Domain Controller) per ambienti Windows utilizzando Samba.
Va detto che la soluzione è dimensionata per la piccola e media impresa, dove il numero di utenti generalmente non supera le cento unità.
Facile e veloce perché impiega un solo server e non prevede ridondanza.
Per l'articolo ho scelto di utilizzare CentOS ma dovrebbe funzionare anche con Fedora.

Prerequisiti
La soluzione prevede il deployment all'interno di una rete locale (LAN); si presuppone dunque che i servizi di DNS (per la risoluzione dei nomi) e DHCP (per l'assegnazione automatica degli indirizzi IP) funzionino a dovere.
La lista della spesa Per far girare "il tutto" è necessario installare sulla macchina alcuni pacchetti fondamentali di samba. Per verificare i pacchetti già installati è sufficiente usare yum:

[root@myserver ~]# yum list *samba*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.fastbull.org
* updates: centos.fastbull.org
* addons: centos.fastbull.org
* extras: centos.kiewel-online.ch
base | 1.1 kB 00:00
updates | 951 B 00:00
addons | 951 B 00:00
extras | 1.1 kB 00:00
Installed Packages samba.i386 3.0.33-3.7.el5_3.1 installed
samba-client.i386 3.0.33-3.7.el5_3.1 installed
samba-common.i386 3.0.33-3.7.el5_3.1 installed
system-config-samba.noarch 1.2.41-3.el5 installed
Available Packages
samba-swat.i386 3.0.33-3.7.el5_3.1 updates
sblim-cmpi-samba.i386 0.5.2-31.el5_2.1 base
sblim-cmpi-samba-devel.i386 1-31.el5_2.1 base
sblim-cmpi-samba-test.i386 1-31.el5_2.1 base

Nel nostro caso samba è già installato. Nel caso in cui fosse necessario installare il software possiamo sempre utilizzare yum:

yum install samba 

I pacchetti fondamentali sono:

samba.i386 
samba-common.i386
system-config-samba.noarch

Degli altri possiamo anche farne a meno.

Personalizzare il servizio
Nel nostro caso, Samba dovrà funzionare come DC, per questo motivo è necessario editare il file /etc/samba/smb.conf indicando le corrette impostazioni. Di seguito un esempio di configurazione possibile:

[global]
workgroup = MORZELLO
server string = Samba Server Version %v
passdb backend = tdbsam
add user script = /usr/sbin/useradd "%u" -n -g users
delete user script = /usr/sbin/userdel "%u"
add group script = /usr/sbin/groupadd "%g"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/userdel "%u" "%g"
add machine script =
/usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome
-s /bin/false "%u"
logon script = %u.bat
logon path =
domain logons = Yes
domain master = Yes
wins support = Yes
username map = /etc/samba/smbusers
[homes]
comment = Home Directories
read only = No
browseable = No

Il file di configurazione contiene solo ed esclusivamente i dati strettamente necessari per far funzionare il servizio come PDC (Primary Domain Controller).
Probabilmente il lettore vorrà successivamente attivare altre voci come ad esempio le stampanti di rete e le cartelle di rete.
Queste informazioni non sono strettamente necessarie e per questo motivo non sono trattate in questa sede.
Per dare un senso al nostro operato cerchiamo di capire il significato delle voci principali che compongono il nostro file di configurazione:
  • workgroup: indica il nome del nostro dominio;
  • passdb backend: indica come samba gestirà le utenze windows. specificando tdbsam samba autenticherà gli utenti e le macchine appartenenti al dominio mediante il proprio database, senza utilizzare servizi esterni come ad esempio LDAP oppure un altro DC;
  • *script: sono le voci che indicano quali script eseguire per gestire gli utenti ed i gruppi;
  • logon path: è il percorso della cartella che contiene informazioni di netlogon di Windows. Nell’esempio si è deciso di non fornire questo servizio;
  • domain logons: indica se il server agirà come DC oppure no;
  • domain master: indica se il server agirà come PDC oppure no.
Per capire se la nostra configurazione è valida o meno possiamo usare il comando testparm:

[root@myserver ~]# testparm -s 
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
[global]
workgroup = MORZELLO
server string = Samba Server Version %v
passdb backend = tdbsam
username map = /etc/samba/smbusers
add user script = /usr/sbin/useradd "%u" -n -g users
delete user script = /usr/sbin/userdel "%u"
add group script = /usr/sbin/groupadd "%g"
delete group script = /usr/sbin/groupdel "%g"
delete user from group script = /usr/sbin/userdel "%u" "%g"
add machine script =
/usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome
-s /bin/false "%u"
logon script = %u.bat
logon path =
domain logons = Yes
domain master = Yes
wins support = Yes
[homes]
comment = Home Directories
read only = No
browseable = No

È fondamentale che la voce server role sia quella corretta.

L’utenza amministrativa
Per poter gestire il dominio è necessario aggiungere nel database di samba l’utente amministratore:

[root@myserver samba]# smbpasswd -a root
New SMB password:
Retype new SMB password:
tdbsam_open: Converting version 0 database to version 3.
...
Added user root.

Gli utenti di dominio
Gli utenti samba sono in realtà utenti linux e bisogna dare una regola per convertire correttamente gli utenti tra linux e windows. Per fare questo personalizziamo il file /etc/samba/smbusers:

# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest

Nel nostro caso ci limitiamo a dire che l’utente administrator equivale a root e che l’utente guest equivale a nobody. Aggiungiamo anche i gruppi di utenti windows che non esistono ancora in linux:

# Map Windows Domain Groups to UNIX groups
net groupmap add rid=514 ntgroup="Domain Guests" unixgroup="nobody" type=d
net groupmap add rid=513 ntgroup="Domain Users" unixgroup="users" type=d
net groupmap add rid=512 ntgroup="Domain Admins" unixgroup="root" type=d

Si possono aggiungere anche altri gruppi di utenti, quelli specificati in alto sono quelli “canonici”. Per verificare che i gruppi siano stati creati possiamo usare il comando wbinfo:

[root@myserver samba]# wbinfo -g
domain users
domain admins
domain guests

Aggiungendo gli utenti di dominio ricordiamo sempre che questi sono anche utenti Linux. È probabile però che non tutti gli utenti dovranno avere accesso al server come utenti locali. Per inibire l'accesso alla console del server specificheremo una shell non valida. Su CentOS possiamo creare un utente con queste caratteristiche usando il comando adduser:

[root@myserver samba]# adduser -m -s /sbin/nologin testuser
[root@myserver samba]# passwd testuser
[root@myserver samba]# smbpasswd -a testuser

Con precedenti comandi abbiamo creato un utente, assegnato una password per linux ed una per samba.
Un metodo alternativo per creare gli utenti è quello di accodare direttamente gli utenti nel file /etc/passwd senza assegnare la password all’utente.
A pensarci bene non è necessario assegnare una password ad un utente che non può fare il logon. Se invece l’utente deve comunque avere l’accesso al server è sufficiente omettere il parametro “–s”.
Comunque sia per abilitare l’utente al dominio è necessario inserirlo nel database di samba con il comando smbpasswd.
Da notare che la password per linux può essere diversa da quella specificata in samba. Eseguire il servizio all’avvio In CentOS i servizi possono essere gestiti facilmente mediante il comando chkconfig.
Le righe seguenti assicurano l’avvio del servizio all’accensione del nostro server:

chkconfig smb on 

Ultimi ritocchi: iptables e selinux
Samba necessita di alcune porte tcp ed udp per poter funzionare correttamente. Queste porte sono chiude per default da iptables. Di seguito le righe da inserire nel file /etc/sysconfig/iptables:

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Le righe devono essere inserite nel file prima delle ultime due stringhe:

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Per quanto concerne selinux invece bisogna consentire a samba l’uso dei comandi necessari per svolgere alcuni task:

# Se si intende usare useradd/groupadd è necessario eseguire:
setsebool -P samba_domain_controller on
#
# Se si vuole condividere la home degli utenti eseguire:
setsebool -P samba_enable_home_dirs on

Per condividere una cartella di rete bisogna assegnare alla stessa l’etichetta "samba-share_t". Evitate le cartelle di sistema perché queste probabilmente hanno una etichetta diversa già applicata. Per verificare i dettagli di una cartella relativa a selinux è possibile usare il comando ls specificando il paramentr “–Z”:

ls -ldZ /percorso_completo 

Aggiungere una workstation al dominio
La procedura di Join è totalmente trasparente in windows.
Per aggiungere una macchina al dominio possiamo cliccare con il tasto destro del mouse su “Gestione Risorse” quindi selezionare il percorso :“Proprietà->Nome Computer->Cambia”. Specificare MORZELLO nella casella “dominio” e procedere al logon di root con la password indicata in samba (mediante il comando smbpasswd).



Alla prossima.
Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 15/09/2009 @ 03:46:04, in Sistemi, linkato 353 volte)

Gli utenti di Linux sanno bene che non si dovrebbe mai utilizzare l'utenza amministrativa (root) per uso quotidiano. L'uso dovrebbe essere limitato alla manutenzione ordinaria (aggiornamenti) e straordinaria (installazione di programmi e nuovi componenti hardwere) del computer.

Questa regola è ancor più valida per gli utenti Windows dove, a parer mio, l'abuso dell'utenza amministrativa è più marcata.

In Linux, per accedere all'utenza di root dopo aver fatto il logon è possibile usare il comando "su" mentre in Windows si può utilizzare il comando "runas". Nonostante i due comandi siano essenzialmente simili, il loro utilizzo nella pratica non è il medesimo.

Mi sono reso conto negli anni che in Windows non è sempre agevole sostituirsi all'Amministratore per eseguire singoli comandi.

Per eseguire un comando come altro utente è sufficiente cliccare sull'icona con il tasto destro. Se tutto è eseguito correttamente nell'elenco comparirà l'opzione "Esegui come..." oppure "Run as...". Nelle versioni precedenti del sistema operativo potrebbe essere necessario premere contemporaneamente il tasto [SHITF].

Quando però è necessario eseguire diversi comandi le cose si complicano.

Su Windows 2000 è possibile eseguire una shell visuale "Esplora Risorse" come altro utente mentre in Windows XP no. Nella migliore delle ipotesi, l'utente resta invariato e nelle peggiori si rischia di dover reinstallare il sistema operativo.

A questo punto ho pensato ad un piccolo vbscript che possa risolvere il problema agevolmente.

Supponiamo di voler installare una stampante oppure editare un file di testo presente in c:\windows\system32.

Cliccando con il tasto destro sull'icona non compare l'opzione "Esegui come..." perché non si tratta di un programma.

L'idea è quella di creare una voce nel menu contestuale con la quale eseguire gli applicativi in base all'estensione dei file.

Per prima cosa è necessario creare un file vbs in windows. Nel nostro esempio il file sarà creato con il nome c:\windows\morzello_runas.vbs

option explicit

dim WshShell
dim strLogin
dim strParams
dim objArgs
dim I
Const TITLE="Morzello RunAs 1.1"
Set objArgs = WScript.Arguments

For I = 0 to objArgs.Count - 1
strparams= strParams & " " & objArgs(I)
Next

'eliminiamo il primo carattere perchè non fa parte del parametro.
If Len(strParams)>1 Then strparams=Right(strparams,Len(strparams)-1)

strLogin=InputBox ("Inserire il 'Login' dell'utente con cui si vuole eseguire il comando:",TITLE, "Administrator")

If strLogin="" Then wscript.quit (1)

Set WshShell = WScript.CreateObject( "WScript.Shell" )
wscript.echo "%comspec% /C runas /env /utente:" & strLogin & " ""start " & strParams & """"
WshShell.Run "%comspec% /C runas /env /utente:" & strLogin & " ""start " & strParams & """" ,1,false

Lo script si limita a chiedere login e password dell'utente desiderato, quindi carica il file cone le credenziali desiderate.

Per rendere utile questo script è possibile inserire una opzione aggiuntiva alla shell simile a quella già presente. Questa opzione la chiameremo per comodità "Morzello Run As".

Di seguito riporto il contenuto del file "morzello_runas.reg" da aggiungere al file di registro:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\Morzello Run As]

[HKEY_CLASSES_ROOT\*\shell\Morzello Run As\command]
@="cscript c:\\windows\\morzello_runas.vbs %1"

Per aggiungere il comando al registro di sistema è sufficiente fare doppio click sul file con credenziali amministrative.

A questo punto è possibile ad esempio cliccare con il tasto destro su un file txt ed eseguirlo come altro utente. Utile ad esempio per editare il file di host.

I sorgenti di questo articolo sono disponibili qui

Alla prossima.

Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 08/07/2009 @ 10:50:04, in Sistemi, linkato 532 volte)
Sono lontani i tempi in cui VNC era considerato un trojan. Oggi quasi tutte le distribuzioni hanno una versione di questo demone per amministrare da remoto un computer in ambiente visuale.

Nonostante l'installazione sia alquanto banale, la messa a punto dello strumento può risultare problematica, specie la prima volta.

Di seguito riporto una breve guida che veste bene per le distribuzioni derivate da Red Hat come ad esempio CentOS e Fedora.

Diamo per scontato che il gestore delle finestre X Window sia correttamente installato e funzionante; non è necessario che sia attualmente in uso. È possibile trovare server che non hanno testiera e monitor ma che comunque offrono una interfaccia visuale con VNC.

Procediamo verificando in primo luogo l'esistenza del demone

yum list vnc-server

In caso procediamo con l'installazione

yum install vnc-server

Consiglio vivamente di eseguire il demone con un utente non amministrativo, anzi, per dirla tutta, la cosa migliore è creare un utente ad-hoc che non appartenga al gruppo utenti "users". Questo ci consentirà di definire policy specifiche per questo servizio

groupadd vnc
useradd -g vnc vnc
passwd vnc

Con il comando precedente abbiamo definito un nuovo gruppo, un nuovo utente ed una password per l'utente stesso.

Ora passiamo alla personalizzazione del servizio. Su Red Hat è sufficiente editare personalizzare il file "/etc/sysconfig/vncservers". Di seguito un esempio funzionante per la nostra dimostrazione

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# .

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

VNCSERVERS="2:vnc"
VNCSERVERARGS[2]="-geometry 1024x768"

Le righe che interessano sono le ultime due dove vengono definite le variabili necessarie al demone per "girare".

VNCSERVERS definisce la porta e l'utente di ogni singola sessione. È possibile infatti eseguire diverse sessioni utente ovviamente ognuna su porte differenti.

vncserver si mette in ascolto a partire dalla porta TCP 5900. Impostando il primo parametro a "2" chiediamo al demone di aprire una sessione sulla porta 5902.

Più sessioni possono essere specificate nella stessa variabile. Ad esempio

VNCSERVERS="1:utente1 2:utente2 3:utente3"

VNCSERVERARGS[X] (dove "X" indica il numero di porta) definisce i parametri da passare al demone per ogni sessione. Nel caso di più sessioni sarà necessario specificare più parametri:

VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 800x600 -depth 16"
VNCSERVERARGS[3]="-geometry 1024x768 -localhost"

Per un dettaglio maggiore sui parametri supportati consultare la documentazione ufficiale (man Xvnc).

Poiché il servizio partirà con l'utenza vnc è necessario personalizzare l'ambiente di questo utente. In particolare è necessario impostare una password che vncserver chiederà al momento del log-on

su vnc
vncpasswd

Dopo aver impostato la password, che può essere diversa da quella specificata per l'utente, facciamo partire il servizio (sempre come utente vnc)

vncserver

Se tutto è andato a buon fine dovremmo avere una sessione attiva sulla porta 5902

vncviewer remotehost:5902:2

Dove remotehost è il nome della macchina e 5902 la porta tcp.

All'avvio del servizio verrà creato un file, una sorta di autoexec.bat contenente i comandi da eseguire per gestire l'ambiente visuale.
Nel nostro esempio questo file sarà "/home/vnc/.vnc/xstartup" ed avrà un aspetto del tutto simile a questo

xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Questo script si occupa tra le altre cose di definire quale gestore grafico utilizzare nella sessione. Nell'esempio riportato in alto, è stato specificato twm, un gestore molto leggero ed essenziale



Chi volesse cambiare gestore può tranquillamente editare il file sostituendo l'ultima riga. Di seguito un esempio che mostra impiego di KDE

startkde &

Ed ecco una immagine dell'ambiente grafico in esecuzione



Per far partire il servizio all'avvio del sistema operativo possiamo utilizzare chkconfig (con credenziali amministrative)

chkconfig vncserver on

Concludiamo la procedura assicurandoci che il traffico di rete sia abilitato sulla macchina istruendo correttamente iptables. Di seguito le righe da aggiungere al file "/etc/sysconfig/iptables"

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT

Bisogna fare attenzione ad inserire la riga precedente nella esatta posizione, prima cioè delle seguenti righe

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Altrimenti le regole di iptables non avranno l'effetto desiderato.


VNC e sessioni sicure
VNC non fa uso di crittografia a meno di non andare su prodotti commerciali la cui licenza è a pagamento. Questo significa che con un semplice sniffer è possibile rubare la password di accesso.

Una soluzione percorribile "out of the box" prevede l'uso di ssh (il comando utilizzato in Linux per ottenere una shell sicura).

L'idea è quella di far transitare il traffico in un tunnel ssh aperto su entrambi gli host (client e server) secondo il seguente schema:

client --> SSH --| network |-- SSH <-- server

Nel nostro esempio le terminazioni del tunnel verranno create direttamente sui due host in modo da rendere sicura la comunicazione su tutta la rete.

Chiediamo ad ssh di collegarsi al server VNC sulla porta 5902. Chiediamo inoltre ad ssh di mettersi in ascolto su un'altra porta, la 55902 e di fare in modo che il traffico criptato su quest'ultima finisca in chiaro sulla 5902 (forwarding)

ssh -f -L 55902:localhost:5902 remotehost

Il parametro -f istruisce il comando a liberare il prompt agendo come un comune demone.
Il paramtro -L si occupa invece del forwarding trasferendo i byte dalla porta 55902 del client sulla porta 5902 del server.

Per accedere al servizio possiamo eseguire vncviewer localmente

vncviewer localhost:55902:2

Per rendere le cose un tantino più semplici è possibile avvalersi del paramtro sleep con il quale specificare un tempo massimo di attesa (ad esempio 60 secondi) entro il quale creare una connessione. Questo garantisce che non restino appese sessioni inutili.

ssh -f -L 55902:localhost:5902 remotehost sleep 60; vncviewer localhost:55902:2

Nel caso ci fossero problemi è necessario verificare i parametri di ssh ed eventualmente di OpenSSL. Per maggiori informazioni prendere visione della miniguida riportata alla fine dell'articolo.


Sessioni sicure con Windows
Quanto detto in precedenza vale anche per i client Windows dato che ssh esiste anche per cygwin.

Volendo è possibile utilizzare PuTTY creando una sessione e specificando i parametri Source port (55902) e Destination (remotehost:5902) sotto Category -> SSH -> Tunnels e cliccando su "Add".

Di seguito un esempio che replica quanto fatto in precedenza



Per il momento è tutto. Spero come al solito di non avervi annoiato.
Alla prossima.

Per saperne di più
VNC Mini-FAQ
Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 07/05/2009 @ 01:18:07, in Programmazione, linkato 132 volte)
Le espressioni regolari (regular expressions) per chi non è esperto, possono essere veramente frustranti da gestire.

Devo ammettere che anche io ho qualche problema a volte, specie se si tratta di implementare RE con linguaggi che non uso molto frequentemente.

Esiste però un modo per "testare" le RE online. Di seguito propongo alcuni siti da me utilizzati, suddivisi per linguaggio di programmazione:

Java (ed altri linguaggi come ad esempio Javascript e Apex):
http://www.fileformat.info/tool/regex.htm (mediante java.util.regex)

Python:
http://re-try.appspot.com/

Bash (sed e grep):
http://www.linuxjournal.com/content/bash-regular-expressions (codice sorgente)

PHP e Perl:
http://regex.larsolavtorvik.com/

Spero che questo elenco sia utile anche se non di certo esaustivo.

Se avete altre segnalazioni da fare siete i benvenuti.

Alla prossima.
Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 25/04/2009 @ 13:58:57, in Sistemi, linkato 604 volte)

Qualche giorno fa è nata la necessità di espandere un ReadyNas Duo della Netgear dotato di disco da 500GB. L'intenzione era quella di sostituire il disco esistente con due dischi da 1TB. Il risultato è stato la perdita di tutti i dati (vedi post).

A questo punto ho deciso di fare a modo mio resettando il NAS non prima di aver fatto un backup del disco esistente da 500gb.

Per fare questo mi sono collegato in remoto al NAS ed ho impartito i comandi:

tar cvpzf /myshare/nas_pre_dsk_upg.tgz --exclude=/shareX --exclude=/shareY --exclude=/proc --exclude=/lost+found --exclude=/c  --exclude=/tmp --exclude=/sys --exclude=/home /

Nel comando precendete le cartelle shareX e shareY sono condivisioni di rete.

Come vedremo in seguito questo backup non è strettamente necessario ma io ho sempre l'abitudine di salvare i files che mi servono in caso di necessità. Il comando prececedente serve sostanzialmente a preservare i files del NAS ad esclusione delle condivisioni (che possono essere tranquillamente copiate da un computer remoto). tar è utile perchè sul NAS oggetto di aggiornamento sono presenti diverse add-on per le quali non ho voglia di procedere alla reinstallazione tramite frontview.

Fatto il backup sostituisco il drive da 500GB con due dischi da 1TB e provvedo a resettare il NAS riportandolo alle impostazioni di fabbrica.
Segue la creazione di un nuovo RAID e l'installazione dell'unica add-on necessaria: ToggleSSH disponibile qui.

Sono riuscito a fare il ripristino del backup eseguendo sul NAS i comandi:

cd /
tar xzvf /nas_pre_dsk_upg.tgz

Il restore è andato liscio come l'olio.

Come dicevo prima, il ripristino dei rimanenti files può essere portato a termine mediante l'uso delle condivisioni di rete ma io ho deciso di ripristinare i files usando il disco da 500GB originale tramite porta USB ed un comune convertitore SATA/USB.

Chi volesse impiegare il metodo descritto di seguito ma non ha un convertitore può:

- usare un case esterno;
- clonare il disco di orinine usando dd su un HD esterno di capacità uguale o maggiore di quello sorgente;
- utilizzare una distribuzione live di linux che supporti LVM (ad esempio il disco di ripristino che accompagna fedora) ed un altro computer.

Ho diciso di pubblicare questo metodo perchè potrebbe sorgere la necessità di recuperare i dati da un volume non più utile.

Nel mio caso ad esempio, l'espansione del RAID portato a termine dal ReadyNAS Duo non è andato a buon fine, di conseguenza tutti i dati presenti nel vecchio RAID sono stati cancellati nel nuovo.

Potrebbe inoltre capitare di dover recuperare i dati da un NAS defunto.

I comandi che seguono sono utili anche per chi non possiede un ReadyNas Duo ma vuole recuperare file presenti in partizioni LVM di linux.

Chi volesse cimentarsi nel ripristino tramite altro computer (cioè smontando il disco dal NAS e montandolo su un altro PC dotato di Linux  con supporto LVM) avrà una vita più comoda perchè non bisogna considerare alcuni aspetti come ad esempio la duplicazione dei Volume Group (VG).

Riprendendo il filo del discorso, dopo aver resettato il NAS è possibile collegare tramite porta usb il vecchio disco esterno; il NAS provvederà in piena autonomia a montare le partizioni trovate nella directory /USB.

Il comando mount dovrebbe produrre un output del tutto simile al seguente:

mount

/dev/hdc1 on / type ext2 (rw,noatime)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /ramfs type ramfs (rw)
tmpfs on /USB type tmpfs (rw,size=16k)
/dev/c/c on /c type ext2 (rw,noatime,acl,user_xattr,usrquota,grpquota)
/c/home on /home/ftp/homes type bind (rw,bind)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /USB/USB_HDD_1_1 type ext3 (rw,noatime,acl)
/USB/USB_HDD_1_1 on /home/ftp/USB_HDD_1_1 type none (rw,bind)

Viene montata solo la partizione ext3 (USB_HDD_1_1) contenente tutti i files del NAS ad esclusione di quelli presenti nelle condivisioni di rete. Se non avere fatto il backup descritto in precedenza tramite tar, potete tranquillamente copiare i file presenti in /USB/USB_HDD_1_1 avendo l'accortezza di utilizzare il parametro -p (che preserva gli attributi dei files copiati).

Quello che però a noi interessa adesso è il recupero dei dati presenti nel LVM del disco che il NAS non ha montato. Quindi procediamo a verificare la tabella delle partizioni presenti sul disco:

fdisk -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         255     2048000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             255         287      256000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             287       60800   486064152    5  Extended
/dev/sda5             287       60800   486064151+  8e  Linux LVM

Con fdisk sappiamo che il disco presenta una partizione ext3 (già mondata su USB_HDD_1_1) una partizione di swap (non usata) ed una LVM (che contiene i dati a noi necessari).

Per visualizzare con maggior dettaglio le informazioni legate a LVM è possibile usare il comando pvscan:

pvscan

  PV /dev/md2    VG c   lvm2 [929.03 GB / 0    free]
  Total: 2 [1.36 TB] / in use: 2 [1.36 TB] / in no VG: 0 [0   ]

Non ci sono tracce della partizione /dev/sda5. Questo perchè la scansione delle partizioni LVM da parte del ReadyNAS Duo è stata disabilitata. Basta dare una occhiata al file di configurazione presente in /etc/lvm/lvm.conf per capire che è stato attivato un filtro che evita la scansione di partizioni presenti su porta USB:

filter = [ "a|^/dev/hd[cegikmoq][5-9]$|", "a|^/dev/hd[cegikmoq]1[0-5]$|", "a|^/dev/md[2-9]$|", "r|.*|" ]

Per risolvere il problema suppongo sia sufficiente commentare il filtro ma per essere più precisi è sufficiente apportare le dovute modifiche sostituendo la riga precedente con questa:

filter = [ "a|^/dev/sd[abcegikmoq][5-9]$|","a|^/dev/hd[cegikmoq][5-9]$|", "a|^/dev/hd[cegikmoq]1[0-5]$|", "a|^/dev/md[2-9]$|", "r|.*|" ]

Dopo aver modificato il file, l'output del comando pvscan è diverso:

pvscan

  PV /dev/sda5   VG c   lvm2 [463.53 GB / 0    free]
  PV /dev/md2    VG c   lvm2 [929.03 GB / 0    free]
  Total: 2 [1.36 TB] / in use: 2 [1.36 TB] / in no VG: 0 [0   ]

Adesso siamo in grado di vedere due VG invece che uno ma c'è un problema: entrambi hanno lo stesso nome: "c". Questo vuol dire che non è possibile montare il volume senza mettere mano ai VG.

Per avere un maggior dettaglio sui VG presenti è possibile fare un controllo con vgdisplay:

vgdisplay

  --- Volume group ---
  VG Name               c
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               463.53 GB
  PE Size               32.00 MB
  Total PE              14833
  Alloc PE / Size       14833 / 463.53 GB
  Free  PE / Size       0 / 0
  VG UUID               q9L5G9-7Uuv-mg9m-9aqK-cOML-QziN-KzizYv

  --- Volume group ---
  VG Name               c
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               929.03 GB
  PE Size               32.00 MB
  Total PE              29729
  Alloc PE / Size       29729 / 929.03 GB
  Free  PE / Size       0 / 0
  VG UUID               fOsBiY-2J8W-d2tC-K0Xe-lRtz-ZRuZ-20IkVB


Montare il volume presente in /dev/sda5 comporta il riconoscimento del relativo VG. Per poter maneggiare il VG è necessario rinominarlo e per rinominarlo è necessario portarlo offline.

Il primo problema è quello di portare offline il VG perchè in caso di duplicazione dei nomi LVM darà la priorità agli array creati sul NAS e questo vanifica il tentativo. Ad esempio, eseguendo il comando vgchange il risultato sarà simile al seguente:

vgchange -a n c

WARNING: Duplicate VG name c: fOsBiY-2J8W-d2tC-K0Xe-lRtz-ZRuZ-20IkVB (created here) takes precedence over q9L5G9-7Uuv-mg9m-9aqK-cOML-QziN-KzizYv
  Can't deactivate volume group "c" with 1 open logical volume(s)
  Can't deactivate volume group "c" with 1 open logical volume(s)

Il comando precente tenta di portare offline il VG c ma poichè la precendeza viene data al volume con UUID fOsBiY-2J8W-d2tC-K0Xe-lRtz-ZRuZ-20IkVB il comando fallisce perchè attualmente il volume è usato dal sistema operativo (vedi comando mount eseguito in precedenza).

La cosa più veloce da fare è quella di smontare la partizione /c in modo da poter portare temporaneamente offline entrambi i VG:

/etc/init.d/frontview stop
/etc/init.d/samba stop
/etc/init.d/nis stop
/etc/init.d/proftpd stop

I comandi riportati in alto servono a fermare temporaneamente quei servizi che potrebbero utilizzare la partizione /c inibendo di fatto la possibilità di smondare la partizione /dev/c/c.

Adesso proseguiamo con lo smontaggio:

umount /c/home
umount /dev/c/c

Se lo smontaggio non dovesse funzionare è possibile verificare quali processi fanno uso della partizione tramite il comando fuser:

fuser -m /dev/c/c

Per ogni processo individuato da fuser è necessario procedere con:

kill -9 pid

dove pid è il numero segnalato da fuser. Prima di procedere accertarsi di non escludere un programma essenziale (come ad esempio la shell bash alla quale siamo collegati per impartire i comandi). A volte l'unità non viene smontata perchè il prompt attuale è in "/c" (o magari nella cartella home dell'utente anche essa montata sotto "/c").

Fatto questo possiamo finalmente portare offile tutti i VG:

vgchange -a n

Se tutto è andato liscio è possibile ora rinominare il VG del vecchio disco specificando il corretto uuid che contraddistingue il gruppo:

vgrename q9L5G9-7Uuv-mg9m-9aqK-cOML-QziN-KzizYv d

Anche questo comando non dovrebbe creare problemi e con vgchange possiamo riportare i VG online:

vgchange -a y

Prima di riavviare il NAS facciamo una verifica finale sul lavoro con vgdisplay:

vgdisplay

  --- Volume group ---
  VG Name               d
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               463.53 GB
  PE Size               32.00 MB
  Total PE              14833
  Alloc PE / Size       14833 / 463.53 GB
  Free  PE / Size       0 / 0
  VG UUID               q9L5G9-7Uuv-mg9m-9aqK-cOML-QziN-KzizYv

  --- Volume group ---
  VG Name               c
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               929.03 GB
  PE Size               32.00 MB
  Total PE              29729
  Alloc PE / Size       29729 / 929.03 GB
  Free  PE / Size       0 / 0
  VG UUID               fOsBiY-2J8W-d2tC-K0Xe-lRtz-ZRuZ-20IkVB

Finalmente i gruppi hanno nomi differenti ed la loro gestione diventa possibile.

Dopo aver riavviato il NAS è possibile finalmente montare la partizione:

pvscan
mount /dev/d/c /USB/USB_HDD_1_1/c

Per ripristinare i files possiamo procedere con:

cd /USB/USB_HDD_1_1/c
cp -Rpv . /c/

Spero che questa piccola guida possa tornare utile a chi ha problemi di recupero dati da partizioni LVM. A volte le cose non sono complicate come sembrano.

Alla prossima.

Articolo (p)Link Commenti Commenti (6)  Storico Storico  Stampa Stampa
 
Di vittorio (del 20/03/2009 @ 02:48:20, in Network, linkato 456 volte)
Ieri sera ero davanti al mio PC e mi accingevo a programmare un piccolo frontend web per gestire alcune periferiche di casa dal mio nuovo E51.
Per visualizzare il risultato ho prima utilizzato il mio cellulare, poi ho installato il Nokia SDK usando l'emulatore.
L'SDK (Software Development Kit) però deve essere configurato ed occupa diverso spazio su disco (installando anche diversi driver). Direi che per visualizzare un paio di pagine web per prova è un po' esagerato.
A questo punto mi sono detto: "Perchè non usare mozzilla fingendo di navigare da un telefonino?". Più facile a farsi che a dirsi.

Cos'è lo "User Agent"
Quando navighiamo sul web, il nostro browser (Mozzilla, Internet Explorer, Safari,...) invia al server alcune informazioni come ad esempio: nome del browser, versione in uso, sistema operativo, estensione dei files accettati ed altro ancora.
Quello che segue è un esempio di come queste informazioni vengano inviate quando si desidera visualizzare una pagina web on-line.

GET http://www.google.it/ HTTP/1.1
Host: www.google.it
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
Accept: text/html,application
/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Cookie: PREF=ID=xxxxxxxxxxxxxxx...

Nell'esempio precedente, il browser ha richiesto la home page di Google inserendo nella richiesta alcune informazioni tra cui la variabile "user agent" che identifica il browser in uso ed il sistema operativo.
In questo modo il server può formattare il contenuto della pagina web in base alle possibilità del browser.

Quella che segue ad esempio è la variabile user-agent inviata da un dispositivo portatile:

GET /example.xhtml HTTP/1.1
...
x-wap-profile: "http://nds1.nds.nokia.com/uaprof/N6230r200.xml"
User-Agent: Nokia6230/2.0 (03.14) Profile/MIDP-2.0 Configuration/CLDC-1.1
...

Altri esempi di questo tipo possono essere reperiti visitanto il link: http://www.developershome.com/wap/wcss/wcss_tutorial.asp?page=toDiffUserAgents2

Usare Mozilla per modificare lo User Agent
Per risolvere il mio piccolo problema è bastato utilizzare un plug-in di mozilla utile inqueste occasioni.
L'Add-On si chiama User Agent Switcher e può essere libeamente scaricato dal sito: https://addons.mozilla.org/en-US/firefox/addon/59.

Usarlo e semplicissimo; dopo l'installazione comparirà un'apposita voce sotto il menù strumenti con cui è possibile usare gli user agent più famosi e costruirne di nuovi.

Altri modi di usare lo User Agent
Volete navigare sul sito di nintendo dal PC fingendo di essere una console Wii? Provate con questo UA

Opera/9.00 (Nintendo Wii; U; ; 1038-58; Wii Shop Channel/1.0; en)

Se Invece volete simulare il Wii Connect provate quest'altro:

WiiConnect24/2.0.3.1

Per maggiori informazioni in merito provate questo link.

User Agent e Google
Anche con Google potrebbe essere utile modificare lo user agent.
Io ad esempio ho creato un "finto" user agent dal nome "pippo" per escludere ma mia navigazione dai report statistici di Google Analytics. Con una semplice regola ho istruito  il sito in modo tale da ignorare le richieste provenienti dai browser di tipo "pippo". In questo modo sono certo di non influenzare la reportistica.
Di seguito un esempio di come impostare una regola di eccezione simile in Google Analytics:



Per definire regole di questo tipo bisogna seguire il percorso:

Impostazioni Analytics > Impostazioni profilo > Modifica filtro

Come potete vedere lo UA può essere utile in tante occasioni, basta avere un po' di fantasia.
Credo aver detto tutto anche se magari non ho detto nulla.
Alla prossima.
Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 08/03/2009 @ 22:03:09, in Mobile, linkato 484 volte)

Venerdì la mia azienda mi ha dotato di un nuovo Nokia E51 in sostituzione del vecchio cellulare in uso.
Il primo impatto non è stato proprio entusiasmante perchè, se posso esprimere un parere: "è veramente brutto esteticamente."

Invece dal punto di vista delle funzionalità devo dire che mi è piaciuto molto ma veniamo al dunque: per quale motivo scrivere un articolo sull'E51 quando si tratta di un telefono che è sul mercato da ormai diversi mesi?

Scrivo queste poche righe perchè la configurazione del dispositivo secondo i miei gusti non è stata proprio banale.

Configurazione della rete Wi-Fi
Di certo la connettività senza fili è la funzione che più mi è piaciuta del telefono perchè consente di interagire con Internet e con la rete domestica.
Il mio AP (Access Point) applica un filtro ai MAC Address (indirizzi fisici di rete) dei client collegati al fine di evitare la connessione da parte di dispositivi non autorizzati.
Per aggiungere alla lista il MAC dell'E51 in realtà basta dare una occhiata al vano che contiene la batteria ma se come me non avete voglia di togliere e rimettere la batteria (cosa che spesso comporta la perdita dell'orario) potete digitare questo codice sul cellulare proprio come se fosse un numero di telefono:

*#62209526#

Vedrete comparire sullo schermo l'indirizzo fisico della scheda di rete.

In modo analogo è possibile prendere visione dell'indirizzo fisico relativo al dispositivo bluetooth:

*#2820#

Sincronizzare i dati con MyFunanbol
Per chi non lo sapesse, Funambol è un applicativo middleware, basato su standanrd SyncML, in grado di sincronizzare in un unico punto i contatti, gli appuntamenti e le email.
Funambol è destinato ad un uso aziendale mentre io ho bisogno di mantenere aggiornate solo rubrica ed agenda. Per questo motivo mi sono dotato di un account presso MyFunambol, un portale che espone gratuitamente le funzionalità di Funambol a singoli utenti.
Così quando inserisco nella rubrica del mio cellulare un nuovo numero telefonico, a cascata MyFunambol pensa ad aggiornare il mio PDA, Outlook ed altri dispositivi mobili.
Facendo riferimento alla documentazione fornita da MyFunambol però non sono riuscito a sincronizzare il cellulare:

  1. Go to Menu and choose Tools
  2. Select Sync (on some devices this option is under Menu, Settings and then Connectivity)
  3. Press Options, then New sync profile
  4. Set Sync profile name: Funambol and press OK
  5. Select Applications 
  6. Select Contacts
  7. Set Include in sync: Yes
  8. Set Remote database: card
  9. Press Back
  10. Select Calendar
  11. Set Include in sync: Yes
  12. Set Remote database: cal
  13. Press Back twice
  14. Select Connection settings
  15. Set Server Version: 1.2
  16. Set Data bearer: Internet
  17. Set Access point: enter a working internet connection (if you don't have one, contact your mobile provider)
  18. Set Host addresshttp://my.funambol.com/sync
  19. Set Port: 80
  20. Set User name:
  21. Set Password:
  22. Press Back to save the changes

Seguendo le istruzioni riportate in alto tutto quello che ho ottenuto è stato un bel messaggio di errore:

Errore di sistema!

Non avendo una descrizione specifica per il problema ho iniziato a fare alcune prove variando diversi parametri. Alla fine mi sono reso conto che basta impostare il campo server version a 1.1 invece di 1.2.

VoIP con VoipBuster
l'E51 è in grado di sfruttare il protocollo VoIP per fare telefonate e questo consente di risparmiare non poco sulla bolletta telefonica.
Nello specifico, la mia necessità è stata quella di impostare i parametri corretti al fine di poter telefonare per mezzo del gestore VoipBuster.
Poichè sul sito del gestore non sono riuscito a trovare una configurazione compatibile con il mio modello, ho dovuto fare diversi tentativi prima di riuscire.
Per prima cosa è necessario navigare il menù fino alla posizione riportata in basso:

Strumenti->Impostazioni->Connessione->Impostaz.SIP->Opzioni->Nuovo profilo SIP.

Nel nuovo profilo indicare i seguenti parametri:

Nome profilo: VoipBuster
Profilo servizio: IEFT
Punto acc. predef.:
Nome utente pubblico: sip:nomeutente@voipbuster.com
Usa compressione: No
Registrazione: Su richiesta
Usa protezione: No
+Server di registrazione:
--Indir. server registr.:sip:sip.voipbuster.com
--Area: voipbuster.com
--Nome utente: nomeutente
--Password: password
--Tipo di trasporto: UDP
--Porta: 5060

Per il momento è tutto. In questi giorni proverò il navigatore satellitare e le mappe Nokia. In caso di problemi scriverò qualche riga in merito.

Alla prossima.

Articolo (p)Link Commenti Commenti (0)  Storico Storico  Stampa Stampa
 
Di vittorio (del 19/12/2008 @ 01:40:27, in Network, linkato 288 volte)
Oggi mi sono messo alla ricerca di una rappresentazione grafica di Internet. Ho visitato diversi siti e su advice.cio.com ne ho trovata una veramente carina.

La mia curiosità nasce dalla lettura di un articolo in cui si dice che Google è a favore della Net Neutrality.

Penso che come in tutte le cose, la discriminazione sia assolutamente da evitare.

E voi cosa ne pensate?
Articolo (p)Link Commenti Commenti (2)  Storico Storico  Stampa Stampa
 
Di vittorio (del 11/12/2008 @ 01:33:39, in Sistemi, linkato 571 volte)
In questi giorni, a seguito del passaggio a FC10 ho avuto qualche problema con gli aggiornamenti. Da una veloce ricerca su Internet mi sono accorto che si tratta di un problema sentito da molti.

Nel mio caso ho riscontrato due problemi; entrambi a seguito di un comune aggiornamento (update):

yum update

Il comando non è andato a buon fine per il seguente motivo:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.

Questo vuol dire che la precedente transazione è rimasta appesa senza finire il proprio lavoro.

Come indicato nel messaggio stesso è consigliabile usare il comando yum-complete-transaction.

Questo comando non è installato di default nel sistema operativo ma fa parte del pacchetto di utility per yum. Quindi bisogna eventualmente procedere con l'installazione:

yum install yum-utils

Una volta eseguito il comando la transazione è stata agevolmente completata:

# yum-complete-transaction
Loaded plugins: refresh-packagekit
There are 1 outstanding transactions to complete. Finishing the most recent one
The remaining transaction had 84 elements left to run
Nothing in the unfinished transaction to cleanup.
Cleaning up completed transaction file

Un secondo problema si è presentato sempre a seguito di un aggiornamento:

pacchetto-xxx-yyy-2.26-2.fc10.noarch from installed has depsolving problems

I problemi di dipendenze tra pacchetti sono comuni solo per le versioni di development (sviluppo) di Fedora, non di certo per la produzione.
Purtroppo non sono stato in grado di risolvere il problema se non escludendo il/i pacchetto/i incriminato/i dall'aggiornamento, in attesa che il Team di Fedora ponga rimedio.
Per escludere dall'aggiornamento un pacchetto che soffre di questo problema è sufficiente specificare l'opzione --skip-broken nella riga di comando:

yum --skip-broken update

Ovviamente alla fine dell'aggiornamento yum elenca i problemi di dipendenza riscontrati:

Skipped (dependency problems):
PackageKit.i386 0:0.3.11-4.fc10 PackageKit-glib.i386 0:0.3.11-4.fc10
PackageKit-udev-helper.i386 0:0.3.11-4.fc10 PackageKit-yum.i386 0:0.3.11-4.fc10
PackageKit-yum-plugin.i386 0:0.3.11-4.fc10

E con questo è tutto.

Alla prossima.
Articolo (p)Link Commenti Commenti (1)  Storico Storico  Stampa Stampa
 
Pagine: 1 2 3 4 5 6
Ci sono 3 persone collegate


Cerca per parola chiave





< settembre 2010 >
L
M
M
G
V
S
D
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
             


Titolo
Calabria (29)
Italia (1)
Sistemi (2)

Le fotografie più cliccate

Titolo
Quale tra questi termini associ alla "Sicurezza Informatica"?

 Firewall
 AntiVirus
 Antispam
 Password

Titolo

Human Calendar

Fedora Project:

Questo sito è segnalato da:
BlogItalia.it - La directory italiana dei blog

Add to Technorati Favorites

Internet Map

Play chess online

Play chess online



09/09/2010 @ 10.06.46
script eseguito in 234 ms