user@blasterhome$ ~/Archive by category 'Guide'

| Se ci tieni a me, abbonati al feed

Chroot: una breve introduzione

22 novembre 2009 | Comments | Postato in Arch, Gentoo, Guide, Linux

In questi giorni ho deciso di cominciare una guida più o meno completa ad un comando che purtroppo, nel mondo degli smanettoni “non avanzati”, è poco conosciuto; si tratta di chroot.

Infatti, tra un impegno ed un altro, mi sono accorto sul forum di Arch Linux, e non solo, di dover fornire spiegazioni riguardo questa utility, che non è, d’altronde, ricca di documentazione e spiegata come vorrei (e come vorrebbero). :P

Innanzi tutto, una breve introduzione: chroot serve per entrare in una data directory provvista di filesystem Unix e, all’interno di questa, bash, per sfruttarla alla stregua di una vera e propria directory radice, allo scopo di eseguire programmi o riparare, come mi è successo spesse volte, problemi vari. Nello specifico, mi sono trovato a spiegare chroot nell’ambito della risoluzione di problemi legata a sistemi che, in circostanze varie, non eseguono correttamente la procedura di boot, per cui non ci si può loggare all’interno del sistema per riparare i danni.

Chroot quindi, oltre che una utility per scopi più o meno noti, può servire da trucchetto d’emergenza per riparare al fatto di aver fatto una razzata; spesso si sente dire “Linux va formattato solo in caso di problemi gravissimi”. Ebbene, questo è falso, perchè in caso di problemi gravissimi abbiamo il nostro chroot pronto a darci una mano in qualsiasi circostanza :D

Ma vediamone per bene il funzionamento: innanzi tutto, abbiamo bisogno, come ho detto su, di una subdirectory con un filesystem Unix e la bash installata; nel caso in cui dovessimo riparare dei danni, la nostra partizione target può diventare facilmente una subdirectory del sistema operativo che stiamo utilizzando tramite una semplice operazione di montaggio. Creiamo quindi il punto di aggancio:

sudo mkdir /media/target

E montiamo, finalmente, il nostro pseudo-filesystem, o la partizione bersaglio dei cambiamenti che vogliamo effettuare, legandolo in questo modo alla nostra root reale.

mount /dev/sdaX /media/target

A questo punto, se vogliamo solo modificare dei file senza compiere operazioni che interessino i dispositivi o i dati presenti in /proc, possiamo anche saltare il montaggiodi altre parti del nostro sistema base nel sistema bersaglio. Però, c’è un però.

Però, se vogliamo compiere operazioni come un aggiornamento, che interessa ovviamente alcuni dati di /dev e alcuni dati di /proc, conviene rendere disponibili queste informazioni al sistema ospite; come fare? Tramite altri due comandi di montaggio, il primo che riguardi la directory /dev, e l’altro che interessi /proc: in questa maniera rendiamo leggibili le informazioni riguardo l’hardware della macchina al sistema ospite, che potrà, in parecchi casi, averne bisogno. Per esempio per una ricompilazione del kernel. Per esempio.

Ordunque, andiamo a montare /dev con alcune opzioni che non so minimamente cosa significhino, ma dato che sono scritte sul Gentoo Handbook e le ho usate moltissime volte le prendo per buone :mrgreen:

sudo mount -o bind /dev /media/target/dev

E andiamo poi a montare uno pseudo-proc, almeno da quanto ho capito per via della sintassi di comando leggermente più articolata.

sudo mount -t proc none /media/target/proc

A questo punto, siamo pronti. Possiamo tuffarci nel sistema ospite, ed iniziare riparazioni, modifiche, aggiornamenti, installazioni e quant’altro:

sudo chroot /media/target

Come vediamo, il PS1 è cambiato, e rappresenta il .bashrc che abbiamo impostato per l’utente root sulla directory target, nella quale adesso siamo loggati come root e possiamo effettuare ogni tipo di modifica.

Per uscire dalla nuova directory radice, ovviamente, basta un semplice comando exit ;)

In questo modo, si possono far eseguire programmi in una sandbox a prova di bomba, in quanto non condivide nulla, a parte qualche informazione, con la macchina ospitante. Godetevi il vostro chroot, e cominciate a usarlo massivamente per i compiti più disparati. Posso veramente dire: chroot, mai più senza :mrgreen:

Mettiamo il turbo al nostro Firefox, con un piccolo trucco.

19 maggio 2009 | Comments | Postato in Guide, How-To, Informatica, Linux, Windoze

Sul forum di ArchLinux ci si stava giustappunto lamentando della lentezza e della pesantezza che assume Firefox dopo un certo tempo, rendendo il suo utilizzo decisamente meno proficuo. Qualcuno però ha linkato una soluzione che, testata, si è dimostrata assolutamente efficace per quello che riguarda le prestazioni sia di boot che di utilizzo del nostro browser preferito. Apertura più veloce, e reattività esponenziale saranno le caratteristiche del Firefox 3 che possediamo, dopo l’applicazione di questa piccola accortezza al suo database.

Tutti sappiamo (ssiiiii…) che Firefox, dalla versione 3.0, utilizza sqlite per memorizzare i siti visitati e tante altre comode informazioni, che ad ogni avvio vengono ovviamente ricaricate, all’occorrenza. Per applicare perciò questo tocco di classe al nostro browser, dobbiamo installare SQlite (grazie a MaxFact per il consiglio su cosa installare):

sudo apt-get install sqlite3 iprint

e spostarci nella directory relativa al nostro profilo di Firefox:

cd .mozilla/firefox/*.default

Adesso, arriva il trucco vero e proprio. Utilizzando SQlite, possiamo ottimizzare il database riordinando le tabelle e non avere più quella pletora pietosa che causa tanta lentezza e netti cali di prestazioni, sia su Linux che su altri sistemi operativi.

Per Linux…

for i in *.sqlite; do echo "VACUUM;" | sqlite3 $i ; done

E per Windows.

for %i in (*.sqlite) do @echo VACUUM; | sqlite3 %i

Per OSX non so come si faccia, ma essendo un sistema Unix-like, provvisto di bash, mi viene il sospetto che il comando sia lo stesso che in Linux. (Confermata la mia ipotesi corretta, grazie Dreamquest!)

Tutto ciò ovviamente è preferibile farlo con Firefox chiuso ;)

Adesso avviate Firefox e… magia :)

Compilare GNOME Do da BZR su Debian e derivate

Come ormai avete avuto tutti modo di leggere, mi sono letteralmente innamorato di questo piccolo gioiellino che viene comunemente chiamato GNOME Do.

Ho deciso quindi di dare qualche linea guida sulla compilazione in ambiente Debian et similia, quindi il procedimento che andrò a descrivere è ovviamente valido anche per Ubuntu, e tutte le sue derivate.

Innanzi tutto, installiamo un po’ di dipendenze necessarie alla compilazione. Questo serve necessariamente o la compilazione si pianta, e basta. Quindi, apriamo un terminale e diamo un bel…

sudo aptitude install automake bzr mono-gmcs libmono-cairo2.0-cil gtk-sharp2 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libgnome-vfs2.0-cil libgtk2.0-dev libtool intltool gnome-sharp2 ca-certificates bazaar gnome-keyring-sharp-cli gnome-desktop-sharp2 libgconf2-dev monodevelop-nunit

Beh, con questo installeremo tutto ciò che serve. Adesso, provvediamo a clonare l’ultima revisione dal Bazaar di Canonical dove è ospitata: ci basta un

bzr branch lp:do

Dopodichè, finito il checkout, troveremo nella nostra directory Home una cartella “do”. Andiamo lì dentro, quatti quatti.

cd do

E, senza indugio, provvediamo a configurare i sorgenti per essere compilati e, successivamente, installati.

./autogen.sh --prefix=/usr && ./configure --prefix=/usr

Dunque, godiamoci il terminale che ci sputa scritte a raffica, dopodichè quando smette,

make

Questo compilerà il sorgente. Ultimo, ma non per importanza, il comando per l’installazione.

sudo make install

Il quale provvederà ad installare il programma nel nostro sistema.

Una scintillante icona apparirà in Applicazioni → Accessori, e noi potremo goderci l’ultima revisione di GNOME Do correttamente compilata da BZR.

Gwibber, client per microblogging e non solo

Avevo tempo fa parlato di Twitter, servizio che permette di dire in 140 caratteri ciò che si vuole, incarnando ciò che viene definito microblogging.

Ebbene, l’altro ieri, preso dalla mania di avventurarmi sempre di più in questo panorama sconfinato, ho aperto un account Identi.ca. Mi sono poi accorto che non esistono estensioni per Firefox o programmi decenti da usare come client per Linux, così mi sono dedicato a qualche minuto di ricerca per trovare un’applicazione recondita che facesse al caso mio.

E l’ho trovata, eccome se l’ho trovata! More »

KDE 4 SVN per Arch Linux. Dieci minuti?

Da qualche settimana ormai è iniziata l’estate, e sul mio hard disk ha trovato spazio anche KDE 4, ovviamente compilato da SVN.

Siccome non penso di voler mai sprecare un secondo del mio tempo a compilare sorgenti SVN di KDE, mi affido quotidianamente ad un repository altamente nocivo per Arch che ho scoperto solo di recente.

Vediamo quindi come installare KDE 4 sulla nostra Arch Linux, impacchettato quotidianamente; consiglio la lettura della procedura nel suo insieme, per evitare sorprese :D

Aggiungiamo in cima al nostro pacman.conf le seguenti righe:

[kde]
Server = http://pkg.markconstable.com/kde/i686/

Per Arch 64 basta sostituire “i686″ con “x86_64″.

Adesso, occhio: desumo dal nome dei pacchetti che si sovrascrivano a KDE 3, quindi, cari utenti Arch che avete KDE 3.5, in caso non vi piaccia KDE 4 dovrete reinstallare successivamente la versione di Arch. Per gli utenti Gnome invece non sono indicati particolari problemi. More »

2.6.25

18 aprile 2008 | Comments | Postato in Giochi Estremi, Guide, How-To, Kernel, Linux

Eccolo quì, il nostro bel 2.6.25, arrivato finalmente a compimento dopo parecchie alpha, beta, RC e chi più ne ha più ne metta.

Come l’ho compilato? Ma semplice. Su Debian, seguendo la guida scritta tempo fa, valida per ogni versione del kernel finchè morte non li separi (kernel e kernel-package); per impacchettare un kernel per Arch Linux invece si può usare il mio PKGBUILD con file annessi reperibile quì.

Spacchettando tutto in una directory a caso, basterà entrare nella directory e dare makepkg. Facile no? :D

Aggiornata ancora la guida alla ricompilazione del kernel

5 aprile 2008 | Comments | Postato in Guide, How-To, Informatica, Kernel, Linux

Vista la mia aperta mentalità nei confronti delle opinioni altrui, ho deciso di inserire i suggerimenti di LuNa e scimmia come statici nella mia guida alla ricompilazione del kernel debian-way.

LuNa ha suggerito che l’opzione modules_image non serve a nulla, se non si includono moduli esterni non presenti nella mainline; allo stesso modo è stato fondamentale l’intervento del mio amico scimmia il quale ha pensato bene di ricordarmi di includere una parte che menzionasse make oldconfig. L’ho fatto, inserendo anche la mia opinione personale sul comando che, seppur fondamentale in caso di ri-compilazione, nel caso della prima compilazione di un vanilla non credo meriti tutta quell’importanza che invece ha nel primo caso.

Ho dato anche qualche ritocchino per chi volesse cimentarsi nella compilazione seguendo però la via grafica (non tramite kernelcheck) di xconfig e gconfig. Io stesso ho perso una ventina di minuti prima di capire che mi mancavano le qt-dev :D

Beh, che dire… leggete, imparate, ricompilate e fatemi sapere che la guida è utile!

Compilare il kernel “alla Debian”.

Aggiornamento (9 lug 2008): Aggiunta piccola postilla su come fixare gli headers del kernel. Grazie a telperion.

Aggiornamento (5 apr 2008): Effettivamente, come riportato da scimmia, per chi ricompila è meglio aggiungere make oldconfig.

Aggiornamento (4 apr 2008): Aggiornata la guida con alcuni piccoli consigli di LuNa

Questa è una piccola chicca che mancava nel panorama delle varie guide che propongo; non mi soffermerò a lungo nel descrivere i comandi perchè si suppone che se una persona ricompila il kernel, sia un pochino addentrata nel mondo linux e quindi sappia quello che sta facendo.

Innanzi tutto bisogna scaricare gli ultimi sorgenti del kernel Linux che andremo a compilare, e siccome io voglio fare sempre il super figo di turno che ha l’ultimo kernel disponibile sulla piazza iper aggiornato e mega alleggerito, andremo a scegliere l’ultima relase disponibile. Nella guida utilizzerò sudo anzichè su, perchè nella mia box utilizzo sudo, che ritengo migliore.

Prima però di scaricare, spostare, linkare, compilare e chi più ne ha più ne metta, installiamo le dipendenze necessarie:

sudo apt-get install build-essential kernel-package libncurses-dev linux-kernel-headers

Scaricheremo così tutto quello che ci serve per la compilazione. Se vogliamo configurare il kernel tramite xconfig o gconfig, abbiamo bisogno rispettivamente delle librerie di sviluppo QT o GTK, a seconda del caso. More »

Aggiornata la guida sulla compilazione SVN di GTK-Engines e soci

Stamattina mi sono ritagliato un attimo del mio tempo, ed invece di fare altro, dopo aver ricompilato il compositor, ho aggiornato la famosissima guida alla compilazione di GTk-Engines e Gnome-Themes da SVN con la terza parte, partorita ieri dalla mia mente malata: adesso la suddetta guida comprende anche la compilazione di Gnome-Themes-Extras, che porterà una ventata di bellezza sui vostri desktop, infatti contiene:

  1. Dropline Neu (il mio iconset preferito)
  2. Gion (altro iconset)
  3. Foxtrot (ancora iconset!!!)
  4. Darklooks (tema GTK clearlooks-based ma… scuro!)

Reputo che la compilazione degli Extras sia una parte fondamentale della guida, infatti c’è il mio iconset preferito, che credo piacerà a molti.

Ho anche in cantiere uno script per la compilazione di tutto ciò (veramente l’ho già scritto e testato :D ), che renderò pubblico a breve.

Stay tuned! 

Il compositor di Metacity? C’È!!!

Cominciavo effettivamente a domandarmi se XFCE sarebbe stato o no seguito da Gnome nella scelta di integrare un compositor nel Window Manager… ebbene: l’hanno fatto!

Oddio, non vorrei usare però paroloni troppo affrettati. Si tratta di un branch unstable dell’SVN di Gnome che comunque può essere tranquillamente compilato sulla nostra nostra Linux-Box senza fare danni. Ma partiamo dall’inizio:

Un bel giorno arriva un tizio e dice di aver fatto delle belle cosine con la libreria tizio-caio bellissima e fighissima, che fornisce un effetto super-figo a Nautilus, così se ne esce su Gnome-Look con il suo mockup che rappresenta Nautilus con sfondo trasparente.

L’idea di avere uno Gnome così frulla così in testa a tutti quanti (non ditemi che non siete mai andati a guardare due volte quel mockup), e c’è chi decide, forse per quel mockup, forse per puro genio creativo, di mettere in pratica una cosa simile: avere ombre seducenti e trasparenze reali direttamente in Gnome, senza dover sporcarsi le mani con Compiz o altre schifezze. More »