updated the post
This commit is contained in:
parent
3171031eea
commit
4cc82bf954
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue