updated the post

This commit is contained in:
Yann Esposito (Yogsototh) 2021-10-30 12:36:54 +02:00
parent 3171031eea
commit 4cc82bf954
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646

View file

@ -147,17 +147,16 @@ else
fi fi
#+end_src #+end_src
This is ok
** Bootstrapping ** Bootstrapping
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: boostraping :CUSTOM_ID: boostraping
:END: :END:
Bootstrapping this system is always a nice problem to think about. Bootstrapping this system is always a nice problem to think about.
Once everything is set things are smooths, but to install the system I need It is smooth when everything is set but to bootstrap it I need binaries
binaries installed by the system... So... How to handle the dependency installed by this system...
cycle correctly? So...
How to handle the dependency cycle correctly?
To minimize the pain, I removed more and more bootstrapping dependencies. To minimize the pain, I removed more and more bootstrapping dependencies.
Now my almost single dependence for bootstrapping my environment is =nix=. Now my almost single dependence for bootstrapping my environment is =nix=.
@ -187,11 +186,18 @@ The following should work.
There is a risk that step 3 fail because I pin most of my packages in There is a risk that step 3 fail because I pin most of my packages in
home-manager configuration, and it will try to install =yadm=. This can home-manager configuration, and it will try to install =yadm=. This can
conflict with the =yadm= installed in the current =nix-shell=. conflict with the =yadm= installed in the current =nix-shell=.
So sometime I need to 1st, remove the line installing =yadm= in my So sometime I need to:
home-manager configuration first, then run =home-manager sync= then get out
of the =nix-shell=, add =yadm= back in the =home-manager= config, then run 1. Remove the line installing =yadm= in my home-manager configuration first
=home-manager sync= again, but this time out of the =nix-shell=. 2. run =home-manager sync=
And finally I can run my =~/bin/sync-env.sh= command. 3. get out of the =nix-shell=,
4. add =yadm= back in the =home-manager= config
5. run =home-manager sync= again, but this time out of the =nix-shell=.
6. Finally I can run my =~/bin/sync-env.sh= command.
So this post will probably be useful as a personal note in the future.
Because bootstrapping is generally not trivial.
I will probably update this post if something is missing.
[fn:fish] I use fish for interactive shell. I use ~zsh~ for quick dirty [fn:fish] I use fish for interactive shell. I use ~zsh~ for quick dirty
scripts (a lot better than bash), and I switch to [[https://hackage.haskell.org/package/turtle][turtle]] if I need to be scripts (a lot better than bash), and I switch to [[https://hackage.haskell.org/package/turtle][turtle]] if I need to be