no more iminix-rebuild
This commit is contained in:
parent
541b1c61c2
commit
da1245432e
18
NEWS
18
NEWS
@ -115,3 +115,21 @@ the value of profile.gateway.wan. For the pppoe case this is now only
|
|||||||
very slightly more verbose, and it allows using the gateway profile
|
very slightly more verbose, and it allows using the gateway profile
|
||||||
with other kinds of upstream.
|
with other kinds of upstream.
|
||||||
|
|
||||||
|
2024-8-16
|
||||||
|
|
||||||
|
As part of implementing log shipping, the default directory for system
|
||||||
|
logs has beenchanged from /run/uncaught-logs to /run/log
|
||||||
|
|
||||||
|
2024-10-09
|
||||||
|
|
||||||
|
liminix-rebuild is being deprecated. From hereon in, the preferred way
|
||||||
|
to do an incremental update on an installed device with a writable
|
||||||
|
filesystem is to build the systemConfiguration output
|
||||||
|
|
||||||
|
nix-build -I liminix-config=hosts/myhost.nix --argstr deviceName turris-omnia -A outputs.systemConfiguration
|
||||||
|
|
||||||
|
and then run the generated `install.sh` script
|
||||||
|
|
||||||
|
result/install.sh root@192.168.8.1
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,17 +161,32 @@ any profile to add it to ``$PATH``
|
|||||||
Rebuilding the system
|
Rebuilding the system
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
:command:`liminix-rebuild` is the Liminix analogue of :command:`nixos-rebuild`, although its operation is a bit different because it expects to run on a build machine and then copy to the host device. Run it with the same ``liminix-config`` and ``device`` parameters as you would run :command:`nix-build`, and it will build any new/changed packages and then copy them to the device using SSH. For example:
|
Liminix has a mechanism for in-place updates of a running system which
|
||||||
|
is analogous to :command:`nixos-rebuild`, but its operation is a
|
||||||
|
bit different because it expects to run on a build machine and then
|
||||||
|
copy to the host device. To use this, build the `outputs.systemConfiguration`
|
||||||
|
target and then run the :command:`result/install.sh` script it generates.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
liminix-rebuild root@the-device -I liminix-config=./examples/rotuer.nix --arg device "import ./devices/gl-ar750"
|
nix-build -I liminix-config=./my-configuration.nix \
|
||||||
|
--arg device "import ./devices/mydevice" \
|
||||||
|
-A outputs.systemConfiguration
|
||||||
|
./result/install.sh root@the-device
|
||||||
|
|
||||||
This will
|
The install script uses min-copy-closure to copy new or changed
|
||||||
|
packages to the device, then (perhaps) reboots it. The reboot
|
||||||
|
behaviour can be affected by flags:
|
||||||
|
|
||||||
|
* `--no-reboot` will cause it not to reboot at all, if you would
|
||||||
|
rather do that yourself. Note that none of the newly-installed or
|
||||||
|
updated services will be running until you do.
|
||||||
|
|
||||||
|
* `--fast` causes it tn not do a full reboot, but instead to restart
|
||||||
|
only the services that have been changed. This will restart all of
|
||||||
|
the services that have updated store paths (and anything that
|
||||||
|
depends on them), but will not affect services that haven't changed.
|
||||||
|
|
||||||
* build anything that needs building
|
|
||||||
* copy new or changed packages to the device
|
|
||||||
* reboot the device
|
|
||||||
|
|
||||||
It doesn't delete old packages automatically: to do that run
|
It doesn't delete old packages automatically: to do that run
|
||||||
:command:`min-collect-garbage`, which will delete any packages not in
|
:command:`min-collect-garbage`, which will delete any packages not in
|
||||||
|
@ -15,7 +15,7 @@ Liminix uses the Nix language to provide congruent configuration
|
|||||||
management. This means that to change anything about the way in
|
management. This means that to change anything about the way in
|
||||||
which a Liminix system works, you make that change in
|
which a Liminix system works, you make that change in
|
||||||
your :file:`configuration.nix` (or one of the other files it references),
|
your :file:`configuration.nix` (or one of the other files it references),
|
||||||
and rerun :command:`nix-build` or :command:`liminix-rebuild` to action
|
and rerun :command:`nix-build` to action
|
||||||
the change. It is not possible (at least, without shenanigans) to make
|
the change. It is not possible (at least, without shenanigans) to make
|
||||||
changes by logging into the device and running imperative commands
|
changes by logging into the device and running imperative commands
|
||||||
whose effects may later be overridden: :file:`configuration.nix`
|
whose effects may later be overridden: :file:`configuration.nix`
|
||||||
|
@ -293,14 +293,17 @@ the hostname) and then run
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
nix-shell --run "liminix-rebuild root@address-of-the-device -I liminix-config=./my-router.nix --arg device "import ./devices/gl-ar750""
|
nix-build -I liminix-config=./my-router.nix \
|
||||||
|
--arg device "import ./devices/gl-ar750" \
|
||||||
|
-A outputs.systemConfiguration && \
|
||||||
|
result/install.sh root@address-of-the-device
|
||||||
|
|
||||||
(This requires the device to be network-accessible from your build
|
(This requires the device to be network-accessible from your build
|
||||||
machine, which for a test/demo system might involve a second network
|
machine, which for a test/demo system might involve a second network
|
||||||
device in your build system - USB ethernet adapters are cheap - or
|
device in your build system - USB ethernet adapters are cheap - or
|
||||||
a bit of messing around unplugging cables.)
|
a bit of messing around unplugging cables.)
|
||||||
|
|
||||||
For more information about :code:`liminix-rebuild`, see the manual section :ref:`Rebuilding the system`.
|
For more information about in-place-updates, see the manual section :ref:`Rebuilding the system`.
|
||||||
|
|
||||||
|
|
||||||
Final thoughts
|
Final thoughts
|
||||||
|
Loading…
Reference in New Issue
Block a user