Compare commits
6 Commits
b671ebe5a0
...
8617019d87
Author | SHA1 | Date |
---|---|---|
biotti | 8617019d87 | |
biotti | d8111e050a | |
biotti | 124d59d4cd | |
biotti | ca1b256c1d | |
biotti | 629b8289fb | |
biotti | f0046f7228 |
16
chezmoi.org
16
chezmoi.org
|
@ -1,9 +1,9 @@
|
||||||
* Chezmoi
|
* Chezmoi
|
||||||
|
|
||||||
E' uno strumento che negli ultimi tempi è argomento di molti articoli e/o video.
|
Uno strumento che negli ultimi tempi è argomento di molti articoli e/o video.
|
||||||
|
|
||||||
Si tratta di uno strumento scritto in GO e che quindi, oltre ad offrire il vantaggio di non avere
|
Si tratta di uno software scritto in GO e che quindi, oltre ad offrire il vantaggio di non avere
|
||||||
dipendenze esterne, è effettivamente multipiattaforma potendo funzionare sui canonici Linux/MacOS,
|
dipendenze esterne, è effettivamente multi-piattaforma potendo funzionare sui canonici Linux/MacOS,
|
||||||
ma anche su Windows.
|
ma anche su Windows.
|
||||||
|
|
||||||
* La filosofia
|
* La filosofia
|
||||||
|
@ -19,9 +19,9 @@
|
||||||
Il comando può essere scomposto andando ad utilizzare soltanto la parte relativa al download e
|
Il comando può essere scomposto andando ad utilizzare soltanto la parte relativa al download e
|
||||||
all'installazione del programma.
|
all'installazione del programma.
|
||||||
|
|
||||||
L'installazion può avvenire con diversi metodi. Il metodo che funziona sempre è quello di usare
|
L'installazione può avvenire con diversi metodi. Il metodo che funziona sempre è quello di usare
|
||||||
lo script presente su Github. Qui sarà mostrato lo script per Linux basato su "sh", ma è possibile
|
lo script presente su Github. Qui sarà mostrato lo script per Linux basato su "sh", ma è possibile
|
||||||
usare anche lo script basato su "poeershell": vedere la documentazione.
|
usare anche lo script basato su "powershell" (vedere la documentazione).
|
||||||
|
|
||||||
** Prima installazione con repository da creare
|
** Prima installazione con repository da creare
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
|
|
||||||
Per aggiungere un nuovo dotfile alla gestione si usa il comando ~chezmoi add <path/to/file>~
|
Per aggiungere un nuovo dotfile alla gestione si usa il comando ~chezmoi add <path/to/file>~
|
||||||
|
|
||||||
Assmendo di avere i dotfiles già presenti nella nostra home e volendoli aggiungere alla gestione
|
Assumendo di avere i dotfiles già presenti nella nostra home e volendoli aggiungere alla gestione
|
||||||
possiamo fare:
|
possiamo fare:
|
||||||
|
|
||||||
** Emacs
|
** Emacs
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
chezmoi cd # apre una shell posizionandosi nella directory del repository
|
chezmoi cd # apre una shell posizionandosi nella directory del repository
|
||||||
git add . # aggingiamo il tutto allo sage
|
git add . # aggiungiamo il tutto allo stage
|
||||||
git commit -m "Aggiunto Emacs"
|
git commit -m "Aggiunto Emacs"
|
||||||
exit # esce dalla shell creata da chezmoi
|
exit # esce dalla shell creata da chezmoi
|
||||||
#+end_example
|
#+end_example
|
||||||
|
@ -137,6 +137,6 @@
|
||||||
|
|
||||||
** Git
|
** Git
|
||||||
|
|
||||||
Nel repository di esempio si è usato il meccanimso dei template per configurare l'utente di Git
|
Nel repository di esempio si è usato il meccanismo dei template per configurare l'utente di Git
|
||||||
(in .gitconfig) in base all'hostname.
|
(in .gitconfig) in base all'hostname.
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
~/.vimrc: vim/.vimrc
|
~/.vimrc: vim/.vimrc
|
||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
Nell'esmpio ho creato i collegamenti per VIM e Emacs. Ho preferito mantenere
|
Nell'esempio ho creato i collegamenti per VIM e Emacs. Ho preferito mantenere
|
||||||
nel repository i nomi dei files e delle directory che iniziano con il
|
nel repository i nomi dei files e delle directory che iniziano con il
|
||||||
punto, ma non è strettamente necessario.
|
punto, ma non è strettamente necessario.
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
|
|
||||||
** Il risultato finale
|
** Il risultato finale
|
||||||
|
|
||||||
Il risultato finale del contenuto di ~install.conf.yaml~ dovrebbe quindi essre:
|
Il risultato finale del contenuto di ~install.conf.yaml~ dovrebbe quindi essere:
|
||||||
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
- defaults:
|
- defaults:
|
||||||
|
@ -166,7 +166,7 @@
|
||||||
|
|
||||||
*CAVEAT*
|
*CAVEAT*
|
||||||
|
|
||||||
Dotbot NON crea i link simbolici se il target già esiste come file o directroy normale.
|
Dotbot NON crea i link simbolici se il target già esiste come file o directory normale.
|
||||||
Eventuali link simbolici esistenti sono sostituiti in presenza della direttiva ~relink: true~
|
Eventuali link simbolici esistenti sono sostituiti in presenza della direttiva ~relink: true~
|
||||||
|
|
||||||
* Informazioni aggiuntive
|
* Informazioni aggiuntive
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
La sua specializzazione è gestire i link simbolici e per
|
La sua specializzazione è gestire i link simbolici e per
|
||||||
questo è perfettamente adatto allo scopo di gestire i
|
questo è perfettamente adatto allo scopo di gestire i
|
||||||
dotfiles in un repository git, files che poi saranno
|
dotfiles in un repository git, files che poi saranno
|
||||||
aggancciati come link simbolici nelle directory standard.
|
agganciati come link simbolici nelle directory standard.
|
||||||
|
|
||||||
* I "package"
|
* I "package"
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
~stow bash~ crea i limk simbolici del package "bash". Mantenendo le impostazioni
|
~stow bash~ crea i limk simbolici del package "bash". Mantenendo le impostazioni
|
||||||
predefinite e assumendo di aver eseguito il comando posizionati nella directory
|
predefinite e assumendo di aver eseguito il comando posizionati nella directory
|
||||||
$HOME/.dotfiles Stow creerà un link simbolico di nome ".bash_alias" nella $HOME
|
$HOME/.dotfiles Stow creerà un link simbolico di nome ".bash_alias" nella $HOME
|
||||||
che andrà a puntare a ~$HOME/.dotfiles/bash/.bas_alias~
|
che andrà a puntare a ~$HOME/.dotfiles/bash/.bash_alias~
|
||||||
|
|
||||||
E' possibile indicare più package: ~stow bash htop~ creerà i link simbolici per
|
E' possibile indicare più package: ~stow bash htop~ creerà i link simbolici per
|
||||||
i package "bash" e "htop".
|
i package "bash" e "htop".
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
|
|
||||||
* Configurazioni separate per macchine separate
|
* Configurazioni separate per macchine separate
|
||||||
|
|
||||||
E' un funzionalità non gestità direttamente da Stow.
|
E' un funzionalità non gestita direttamente da Stow.
|
||||||
Tuttavia, con un po' di manualità si possono creare package specifici sfruttando
|
Tuttavia, con un po' di manualità si possono creare package specifici sfruttando
|
||||||
il fatto che Stow non funziona con dei "sotto-package" e utilizzando in modo
|
il fatto che Stow non funziona con dei "sotto-package" e utilizzando in modo
|
||||||
corretto i parametri ~-d~ e ~-t~
|
corretto i parametri ~-d~ e ~-t~
|
||||||
|
|
12
homerepo.org
12
homerepo.org
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
La forma più comune con cui questo metodo viene messo in pratica consiste
|
La forma più comune con cui questo metodo viene messo in pratica consiste
|
||||||
nella creazione di un repository Git di tipo "bare" nella ~$HOME~ e poi
|
nella creazione di un repository Git di tipo "bare" nella ~$HOME~ e poi
|
||||||
utlizzarlo con le opzioni standard di Git.
|
utilizzarlo con le opzioni standard di Git.
|
||||||
|
|
||||||
Git consente infatti di indicare, tramite appositi parametri, sia la
|
Git consente infatti di indicare, tramite appositi parametri, sia la
|
||||||
directory con i files da tracciare, sia la directory con i suoi dati.
|
directory con i files da tracciare, sia la directory con i suoi dati.
|
||||||
|
@ -27,17 +27,17 @@
|
||||||
Se si vuole creare un nuovo repository il comando da dare è:
|
Se si vuole creare un nuovo repository il comando da dare è:
|
||||||
~git init --bare .dotfiles~
|
~git init --bare .dotfiles~
|
||||||
|
|
||||||
Se invece si vuole clonare un repository remoto il comendo da dare è:
|
Se invece si vuole clonare un repository remoto il comando da dare è:
|
||||||
~git clone --bare <url>~ dove con ~<url>~ si indica l'indirizzo da
|
~git clone --bare <url>~ dove con ~<url>~ si indica l'indirizzo da
|
||||||
cui clonare con l'accesso http/https o con l'accesso ssh.
|
cui clonare con l'accesso http/https o con l'accesso ssh.
|
||||||
|
|
||||||
** Definizione dell'alias
|
** Definizione dell'alias
|
||||||
|
|
||||||
Per rendere più semplice l'operatività si utilizza un alias.
|
Per rendere più semplice l'operatività si utilizza un alias.
|
||||||
Si può scegliere un qualisi nome per l'alias.
|
Si può scegliere un qualsiasi nome per l'alias.
|
||||||
|
|
||||||
L'alias va reso disponibile ad ogni login, qui si aggiunge al
|
L'alias va reso disponibile ad ogni login, qui si aggiunge al
|
||||||
~.bashrc~. Per aggiungerlo si può modiificare il file con un editor
|
~.bashrc~. Per aggiungerlo si può modificare il file con un editor
|
||||||
o accodarlo con i comandi di shell.
|
o accodarlo con i comandi di shell.
|
||||||
|
|
||||||
Per aggiungere l'alias accodandolo:
|
Per aggiungere l'alias accodandolo:
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
|
|
||||||
Alcuni esempi
|
Alcuni esempi
|
||||||
|
|
||||||
*** Aggiuntere un nuovo file all'area di stage
|
*** Aggiungere un nuovo file all'area di stage
|
||||||
|
|
||||||
~dotfiles add /path/to/file~
|
~dotfiles add /path/to/file~
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
questo funziona soltanto se il numero di macchine è limitato e si lavora con
|
questo funziona soltanto se il numero di macchine è limitato e si lavora con
|
||||||
molta diligenza.
|
molta diligenza.
|
||||||
|
|
||||||
Non è semplice avere dei diff tra le versioni proprio perchè si usa un
|
Non è semplice avere dei diff tra le versioni proprio perché si usa un
|
||||||
repository bare.
|
repository bare.
|
||||||
|
|
||||||
~dotfiles reset --hard~ potrebbe causare un infarto.
|
~dotfiles reset --hard~ potrebbe causare un infarto.
|
||||||
|
|
|
@ -412,7 +412,7 @@
|
||||||
possibile un unico file di configurazione che possa andare bene sia su Windows che su Linux e mettere
|
possibile un unico file di configurazione che possa andare bene sia su Windows che su Linux e mettere
|
||||||
questi files di configurazione in un repository Git in modo da poterlo facilmente scaricare da
|
questi files di configurazione in un repository Git in modo da poterlo facilmente scaricare da
|
||||||
più macchine sfruttando tutti i vantaggi di un VCS. A corollario di questo un qualche sistema che
|
più macchine sfruttando tutti i vantaggi di un VCS. A corollario di questo un qualche sistema che
|
||||||
mi consenta un qualche automatismo nel bootstrap della configurazione.
|
mi consenta una forma di automatismo nel bootstrap della configurazione.
|
||||||
|
|
||||||
Fino a quando non ho cominciato ad accarezzare l'idea di parlare dei dotfiles quello che avevo
|
Fino a quando non ho cominciato ad accarezzare l'idea di parlare dei dotfiles quello che avevo
|
||||||
mi è sempre stato più che sufficiente. Cercando però documentazione per approfondire ho trovato che
|
mi è sempre stato più che sufficiente. Cercando però documentazione per approfondire ho trovato che
|
||||||
|
@ -422,6 +422,11 @@
|
||||||
Nell'ambito dei dotfiles c'è una certa effervescenza sia negli articoli di blog che spiegano i vari
|
Nell'ambito dei dotfiles c'è una certa effervescenza sia negli articoli di blog che spiegano i vari
|
||||||
approcci, sia negli strumenti di gestione che presentano con una certa frequenza nuovi elementi.
|
approcci, sia negli strumenti di gestione che presentano con una certa frequenza nuovi elementi.
|
||||||
|
|
||||||
|
Infine, come spesso succede, non esiste un metodo unico che soddisfi tutti. Una volta presa coscienza
|
||||||
|
di cosa si vuole fare sarà necesario investire un po' di tempo sperimentando vari metodi e strumenti,
|
||||||
|
anche esotici, per poi scegliere quello che più troviamo adatto oppure, perché no, creare un ambiente
|
||||||
|
fatto su misura.
|
||||||
|
|
||||||
* Footnotes
|
* Footnotes
|
||||||
|
|
||||||
[fn:1]https://it.wikipedia.org/wiki/Rob_Pike
|
[fn:1]https://it.wikipedia.org/wiki/Rob_Pike
|
||||||
|
|
Binary file not shown.
6
yadm.org
6
yadm.org
|
@ -83,7 +83,7 @@
|
||||||
E' possibile posizionare uno script di nome ~bootstrap~ (deve chiamarsi così) in
|
E' possibile posizionare uno script di nome ~bootstrap~ (deve chiamarsi così) in
|
||||||
~$HOME/.config/yadm~.
|
~$HOME/.config/yadm~.
|
||||||
|
|
||||||
Questo file, che deve essere posizionato manualmente e deve essere eseguuibile,
|
Questo file, che deve essere posizionato manualmente e deve essere eseguibile,
|
||||||
sarà richiamato ed eseguito con il comando
|
sarà richiamato ed eseguito con il comando
|
||||||
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
|
@ -102,12 +102,12 @@
|
||||||
|
|
||||||
* Encryption
|
* Encryption
|
||||||
|
|
||||||
Se vi fidate, consente la memorizzazione nel repository di informazioni crittate. L'esempio tipico
|
Se vi fidate, consente la memorizzazione nel repository di informazioni crittografate. L'esempio tipico
|
||||||
è quello relativo alla gestione delle chiavi SSH.
|
è quello relativo alla gestione delle chiavi SSH.
|
||||||
|
|
||||||
* Hooks
|
* Hooks
|
||||||
|
|
||||||
Per ogni comando di yadm è possible fornire degli script da eseguire prima e/o dopo l'esecuzione del
|
Per ogni comando di yadm è possibile fornire degli script da eseguire prima e/o dopo l'esecuzione del
|
||||||
comando stesso.
|
comando stesso.
|
||||||
|
|
||||||
Gli hook sono gestiti con attenzione al risultato dell'esecuzione dello script. Se, ad esempio,
|
Gli hook sono gestiti con attenzione al risultato dell'esecuzione dello script. Se, ad esempio,
|
||||||
|
|
Loading…
Reference in New Issue