Utilizzare dnsmasq per lo sviluppo in locale su OSX

In questa guida vedremo come installare dnsmasq su OSX, configurarlo per rispondere a tutte le richieste a .dev con 127.0.0.1 e configurare OSX per inviare tutte le richieste con .dev a dnsmasq.

1. Installare dnsmasq.
Per questo passo potete procedere un po’ come volete, io ho scelto di usare Homebrew che secondo me funziona molto bene. Per l’installazione di Homebrew potete guardare qui.
Aprite una shell e digitate brew install dnsmasq.

2. Avviare dnsmasq.
Al completamento della procedura facciamolo partire:

# Copio il file d'esempio di configurazione in /usr/local/etc/
cp $(brew list dnsmasq | grep /dnsmasq.conf.example$) /usr/local/etc/dnsmasq.conf
# Copio il file con la configurazione del demone in /Library/LaunchDaemons/.
sudo cp $(brew list dnsmasq | grep /homebrew.mxcl.dnsmasq.plist$) /Library/LaunchDaemons/
# Mi assicuro che abbia i permessi corretti
chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
# Faccio partire dnsmasq al login con launchctl.
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

3. Configiurare dnsmasq.
A questo punto andiamo a cambiarne la configurazione; con un editor di testo (io consiglio Sublime Text) apriamo il file /usr/local/etc/dnsmasq.conf e dopo averlo svuotato ci incolliamo le seguenti riga:

address=/.dev/127.0.0.1
address=/.dev/::1

Salviamo e chiudiamo; oppure direttamente da shell

sudo echo "address=/.dev/127.0.0.1" > /usr/local/etc/dnsmasq.conf
sudo echo "address=/.dev/::1" >> /usr/local/etc/dnsmasq.conf

Ora riavviamo dnsmasq:

sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

4. Configiurare OSX.
Verificare l'esistenza della cartella
/etc/resolver se non esiste la potete creare con questo comando:

sudo mkdir -p /etc/resolver

Creiamo un file al suo interno col nome dev

sudo touch /etc/resolver/dev

Apriamo questo file e incolliamoci dentro le seguenti riga:

nameserver 127.0.0.1
nameserver ::1

oppure direttamente da shell

sudo echo "nameserver 127.0.0.1" > /etc/resolver/dev
sudo echo "nameserver ::1" >> /etc/resolver/dev

5. Proviamo il tutto

ping -c 1 ciccio.cappuccio.dev

dovremmo ottenere qualcosa del tipo
PING ciccio.cappuccio.dev (127.0.0.1): 56 data bytes

Da ora in poi tutti i domini .dev risponderanno all’indirizzo locale 127.0.0.1 senza dover aggiungerli al file hosts.

Lion via USB

A link che vi proporrò di seguito potrete trovare una facile guida per poter creare una penna usb per l’installazione di lion sui vostri computer di casa.

Gli unici prerequisiti sono:

  • Una pen drive da almeno 8GB
  • L’installazione di Lion acquistata da uno dei vostri computer;

Link: Macity

Installare mercurial (hg) su una atv 2

1) Hardware necessario: atv 2 (black) con jailbreak (cercate su google per una guida al jailbreak o su ispazio.net), un computer per accedere in ssh all atv;

2) Accendete la atv, procuratevi l’ip di quest’ultima dal menu di impostazioni > generali > network (ad esempio il mio è 192.168.1.111 durante il tutorial userò sempre questo come riferimento);

3) Dal computer aprite una shell e digitate: ssh root@192.168.1.111; vi sarà richiesta la password inserite: alpine (sempre che non abbiate cambiato la password di default);

4) Digitate: apt-get install python in questa maniera installere l’interprete pyton sulla vostra atv;

5) Digitate: wget http://www.syshalt.net/pub/iphone/gcc-iphone/fake-libgcc_1.0_iphoneos-arm.deb per fare il download del fake libgcc;

6) Digitate: dpkg –i fake-libgcc_1.0_iphoneos-arm.deb per installare il fake libgcc;

7) Digitate: apt-get install iphone-gcc per installare iphone-gcc;

8) Digitate: wget http://www.syshalt.net/iphone/gcc-iphone/sdk-2.0-headers.tar.gz per fare il download degli headers dell’sdk;

9) Digitate: tar -xvzf sdk-2.0-headers.tar.gz per decomprimere gli headers;

10) Digitate: cd include-2.0-sdk-ready-for-iphone per cambiare directory;

11) Digitate: cp –r * /usr/include per copiare tutti i file contenuti in questa cartella nella cartella /usr/include;

12) Digitate: cd .. per ritornare nella cartella precedente;

13) Digitate: wget http://www.syshalt.net/iphone/gcc-iphone/gcc_files.tar.gz per fare il download dei file per gcc;

14) Digitate: tar -xvzf gcc_files.tar.gz per decomprimerli;

15) Digitate: cd gcc_filesper spostarvi nella directory con i file decompressi;

16) Digitate: cp –r * /usr/lib per copiare tutti i file nella directory in /usr/lib;

17) Digitate: apt-get install ldid per firmare l’applicazione in casi come ldid –S ;

18) Digitate: apt-get install make per installare make;

19) Digitate: wget http://selenic.com/hg/archive/733af5d9f6b2.tar.gz

20) Digitate: tar -xvzf 733af5d9f6b2.tar.gz

21) Digitate cd Mercurial-733af5d9f6b2

22) Digitate make install

23) riceverete un’errore: make[1]: Entering directory `/private/var/root/Mercurial/doc'
python gendoc.py > hg.1.gendoc.txt.tmp
mv hg.1.gendoc.txt.tmp hg.1.gendoc.txt
touch hg.1.txt
python runrst hgmanpage --halt warning \
--strip-elements-with-class htmlonly hg.1.txt hg.1
abort: couldn't generate documentation: docutils module is missing
make[1]: *** [hg.1] Error 255
make[1]: Leaving directory `/private/var/root/Mercurial/doc'
make: *** [doc] Error 2

Non preoccupatevi vi dice semplicemente che non è stato possibile installare la documentazione relativa poiché manca docutils; non vi dovete preoccupare la documentazione è consultabile anche online;

Si ringrazia mzsergiu per la sua guida sull’ìnstallazione del compilatore gcc su iphone all’indirizzo: http://blog.syshalt.net/index.php/2010/09/12/compile-c-applications-with-gcc-on-ios-4-iphone/