Commit graph

122 commits

Author SHA1 Message Date
Rutherther
30e435371e
guix-install.sh: Add efraim's signing key.
* etc/guix-install.sh (GPG_SIGNING_KEYS): add "efraim" entry with his key
fingerprint.

Change-Id: Idbe6eb4bf366265fedb1748f62707eb0819003e2
2026-01-19 19:02:32 +01:00
Simon Josefsson
79cf0fb7a3
guix-install.sh: Make /etc/profile.d/zzz-guix.sh usable in set -u shells
* etc/guix-install.sh: Replace $INFOPATH, $MANPATH with ${V:-} variant.

Closes: guix/guix#4534
Change-Id: I82da28d1347b1f37862b903f1721d9bdbb78acd2
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #4553
2026-01-16 20:23:50 +01:00
Rutherther
d078db3272
etc: guix-install.sh: Set XCURSOR_PATH to proper default value.
As can be seen in the Xcursor docs, the default path is
`~/.local/share/icons, ~/.icons, /usr/share/icons, /usr/share/pixmaps`,
zzz-guix.sh is currently missing the first two.

* etc/guix-install.sh (sys_create_init_profile): Add home paths to XCURSOR_PATH.

Change-Id: I4284d7648394c06b83e4eba91882b81c8a35d706
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
Merges: #5231
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2026-01-04 12:46:59 +01:00
Rutherther
bb2263102a
guix-install.sh: Do not set GUILE_LOAD_PATH in zzz-guix.sh.
Channels from the load path will shadow channels used through time-machine or
used through any other guix than the one in ~/.config/guix/current. This is
true for all channels that are in ~/.config/guix/current except guix.  On Guix
System, /run/current-system/profile/share/guile/site/3.0 is usually in
GUILE_LOAD_PATH that typically has only Guix, so no shadowing happens in most
cases.

For using Geiser and other sw, it's possible to configure them to use "guix
repl" that's intended for this use case. This is then makes the guix being
used explicit.

It is expected that this is only a temporary solution. After a proper
solutions is found, it will be reverted.

Workaround #4819.
Reverts: 78390634d7.

Change-Id: I36b921a758618f382af9097003415f902b27c44b
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:54:11 +01:00
Noé Lopez
3dadea4b6d
guix-install.sh: Install AppArmor profile.
* etc/guix-install.sh (sys_maybe_setup_apparmor): New function.
(main_install): Call it.
(sys_delete_apparmor_profiles): New function.
(main_uninstall): Call it.

Fixes #4210.
Fixes <https://issues.guix.gnu.org/71226>.

Change-Id: Ice4bf4d91a1ae438fc5654dec327f53ae9a7b888
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-22 22:48:59 +01:00
Thiago Jung Bauermann
09acdd3142
etc: guix-install.sh: Set XDG_DATA_DIRS.
This allows better integration of packages installed by Guix with the
foreign distro. E.g.:

1. .desktop files from applications installed by Guix can be found by
the user's desktop environment.

2. Fonts installed in ~/.guix-profile/share/fonts can be found by GUI
applications without having to install the fontconfig package, as the
the "Application Setup" section of the manual recommends.

* etc/guix-install.sh (sys_create_init_profile): Add $GUIX_PROFILE/share
to XDG_DATA_DIRS.

Change-Id: Iba74b0782ffbad64d64cc1c5889b04012963a3e0
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-20 13:37:08 +01:00
npatra
669a6c8e99
guix-install.sh: Check for gpg keys only if downloading tarball from ftp.
* etc/guix-install.sh (main_install): Call chk_gpg_keyring only if
GUIX_BINARY_FILE_NAME is not set.

Change-Id: Ia0a7449c8798ca7d61a0f1f1e793f2bafd521c5b
Signed-off-by: npatra <nilesh@riseup.net>
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-15 21:53:27 +01:00
Nilesh Patra
1fea6b359f
guix-install.sh: Fetch gpg keys from codeberg and public keyservers.
Instead of fetching from no longer responsive gnu.org, fetch from
Codeberg.org, falling back to public keyservers in case codeberg
is down or unresponsive.

* etc/guix-install.sh
(GPG_SIGNING_KEY): Change gnu.org user ids to codeberg usernames.
(PUBLIC_KEYSERVERS): Add variable.
(chk_gpg_keyring): Use codeberg for fetching gpgs and fallback to public
keyservers.

Change-Id: Iddcd31239e2f3460d920194d62443ff00be7c957
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
2025-12-15 21:53:26 +01:00
Ludovic Courtès
aa12beb750
guix-install.sh: Add the “kvm” GID to /etc/subgid.
* etc/guix-install.sh (SYSTEMD_REQUIRE): New variable.
(sys_create_build_user): Populate /etc/subgid.

Change-Id: I989c3ff682453d8d65e313c89fb751a20aa48bb8
2025-10-16 15:14:37 +02:00
Cayetano Santos
5f04a1d709
etc: guix-install.sh: Update GNU_URL.
* etc/guix-install.sh (GNU_URL): Update to generic mirror URL.

Change-Id: I7197691d2ed7b125a1fbc6ca774be7a34b81c121
Signed-off-by: Gabriel Wicki <gabriel@erlikon.ch>
2025-10-01 18:42:24 +02:00
Martin Schitter
5b218cd2b9
etc: guix-install.sh: Accept riscv64 as supported architecture.
Although the installer script will not find any officially released
binary-tar-packages for riscv64 on the guix ftp mirrors until now
we should at least support the installation of custom packed
binary bundles for this platform.

Changes to be committed:
	modified:   etc/guix-install.sh

Change-Id: I84c82388c7771d793b108b99e03d040bad9f1154
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-23 11:13:22 +02:00
Maxim Cournoyer
10482f731e
Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3
Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d
Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Ivan Popovych
e28156c212
etc: guix-install.sh: Remove dependency on "which".
* etc/guix-install.sh: Remove dependency on "which".

Change-Id: I2f93ade98f92ab28b4657fa213b9164a148437e6
Signed-off-by: jgart <jgart@dismail.de>
2025-06-21 12:57:30 -04:00
Ivan Popovych
90ef2f48b1
guix-install.sh: Set shellcheck shell to bash.
* etc/guix-install.sh: Set shellcheck shell to bash.

Change-Id: Ief28167f0e2b83c254026174e62959a32c34e29a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-20 17:59:03 +02:00
Ivan Popovych
93e84595ec
guix-install.sh: Fix init profile not being removed.
* etc/guix-install.sh (sys_delete_init_profile): Fix init profile not
being removed.

Change-Id: I95b10ef85d363ac1b7c821e0ae91ca3e69c490ca
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-20 17:59:03 +02:00
Ludovic Courtès
a9239a769c
guix-install.sh: Support the unprivileged daemon where possible.
* etc/guix-install.sh (create_account): New function.
(sys_create_build_user): Use it.  When ‘guix-daemon.service’ contains
“User=guix-daemon” only create the ‘guix-daemon’ user and group.
(sys_delete_build_user): Delete the ‘guix-daemon’ user and group.
(can_install_unprivileged_daemon): New function.
(sys_create_store): When installing the unprivileged daemon, change
ownership of /gnu and /var/guix, and create /var/log/guix.
(sys_authorize_build_farms): When the ‘guix-daemon’ account exists,
change ownership of /etc/guix.

Change-Id: I73e573f1cc5c0cb3794aaaa6b576616b66e0c5e9
2025-03-26 17:57:45 +01:00
Maxim Cournoyer
99bf56fd50
guix-install.sh: Convert sysv-init to SYSV_INIT_REQUIRE to match variable name.
See <https://lists.gnu.org/archive/html/bug-guix/2024-06/msg00145.html>.
Thanks to Nyi Nyi Zaw for the patch.

* etc/guix-install.sh (add_init_sys_require): Adjust value of INIT_SYS so that
it matches the potential extra required arguments array name.

Reported-by: Nyi Nyi Zaw
Reported-by: Diana Belle <garbados@gmail.com>
Change-Id: Ic41de6fba7ef37dff479728aebefaa8cb148315e
2025-02-28 13:36:44 +09:00
Liam Hupfer
bff76fe66a
guix-install.sh: Check for existing installation before downloading.
Previously, the check came after guix_get_bin.  There’s no need to fetch
the rather large release archive if there’s an existing installation, so
check first.  Refactor the check into a function similar to other
preflight checks.

* etc/guix-install.sh: Check for existing installation before
downloading.

Change-Id: I5506fb1cacdc88bd6355e8dfa1f690acf7886c1f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Liam Hupfer
201db94628
guix-install.sh: Add msg helpers and use stderr consistently.
Add helpers to avoid repeated manual concatenation.

_err and _msg "$ERR are used interchangeably with their only difference
being output stream; convert all errors to use _err.

* etc/guix-install.sh: Add msg helpers and consolidate errors to stderr.

Change-Id: I06e97ccc50d108ed9e279ae80c6b2386d7b8c36b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Liam Hupfer
754a5ab02f
guix-install.sh: Appease shellcheck.
* etc/guix-install.sh: Appease shellcheck.

Change-Id: I24f0d13bb254c08d4fe45f5aa3b74bbc6a9a9d88
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Liam Hupfer
50844e9737
guix-install.sh: Add to MANPATH.
Guix and Guix-provided software also have man pages.  If the user
doesn’t install man-db via Guix, they should still be able to read
Guix-provided man pages.

* etc/guix-install.sh (sys_create_init_profile): Add to MANPATH.

Change-Id: Ibceb354012d23d24deeb39b1ec02790873396a6b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Liam Hupfer
f9789e9bc6
guix-install.sh: Improve Guix profile sourcing.
Make both profiles use GUIX_PROFILE and reorder some code so each
profile is handled in one contiguous block.  The user’s profile now
takes precedence over the ‘guix pull’ profile on INFOPATH.  If the user
already has an info reader in their Guix profile, don’t add a duplicate
entry to INFOPATH.  If the user doesn’t have an imperative
~/.guix-profile (i.e. they manage software with Guix Home and ‘guix
shell’), don’t add an unnecessary entry to INFOPATH.  Clean up after
ourselves by unsetting the temporary GUIX_PROFILE variable, which only
needs to be set when sourcing.

* etc/guix-install.sh (sys_create_init_profile): Improve Guix profile
sourcing.

Change-Id: Ibceb354012d23d24deeb39b1ec02790873396a6b
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Liam Hupfer
f726d616f8
guix-install.sh: Remove system-level Guix Home initialization.
Guix Home handles its own profile initialization in ~/.profile and
documents shell setup accordingly.  It does more than what is done here,
including running an on-first-login script to start a user Shepherd
instance.  In general, changes and improvements to Guix Home
initialization are unlikely to propagate to the foreign distro install
script, since many Guix contributors only use Guix via Guix System and
Guix Home does not depend on system-level initialization anyway.

Avoid partially initializing Guix Home in /etc/profile.d to keep search
path variables free of redundant entries.  Instead, leave a comment
directing users to the relevant manual section.

* etc/guix-install.sh (sys_create_init_profile): Remove system-level
Guix Home initialization.

Change-Id: Ib78aa0382268a789298d4980ee394d99a602a5ca
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00
Denis 'GNUtoo' Carikli
8e946568ea
guix-install.sh: uninstall: Also remove shell completion symlinks.
Since symlinks to shell completion files are installed, it is useful to remove
them during the uninstallation, especially when they point to files that are
removed by 'guix-install.sh --uninstall'.

* etc/guix-install.sh (sys_delete_shell_completion): Create.
  (sys_create_shell_completion): hardcode files being installed.
  (sys_customize_bashrc): call sys_delete_shell_completion.

Change-Id: I70008bb55e7e1604f0c485c798460e160af7c9e5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-01-27 14:42:41 +01:00
David Boilleau
e62dc1ebd0
guix-install.sh: Run the uninstall even if already partially done
Removing users, groups or Systemd units fails if they are already absent,
causing the uninstall script to exit. The goal here is to make the uninstall
always run entirely, whatever parts are already done.

* etc/guix-install.sh (sys_delete_build_user): Test if users and groups exist
before deleting them.
(sys_delete_guix_daemon): Test if /etc/systemd/system/guix-daemon.service file
exists before removing the matching Systemd unit.

Change-Id: Ibffb1f1b39de675542fb8057af21ecaea1b53d4c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-14 15:41:22 +01:00
David Boilleau
8edd081164
guix-install.sh: Replace ROOT_HOME with ~root
The `ROOT_HOME` variable is natively absent from some systems, however the form
`~root`, which is used by the install functions in this same file, works.

* etc/guix-install.sh (sys_delete_store, sys_delete_guix_daemon)
(sys_delete_user_profiles): Replace `ROOT_HOME` with `~root`.

Change-Id: Ia867e271ac4c5557d9708235fee028bccce68342
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-14 15:41:21 +01:00
David Boilleau
e02b3b0a66
guix-install.sh: Test if gnu-store.mount exists before removing the unit
The file /etc/systemd/system/gnu-store.mount has permissions 664, since the
`install_unit()` function installed it so. So the test prior to removing the
matching Systemd unit should not be wether this file is executable, otherwise
it will always fail. The relevant test is on the file existence.

* etc/guix-install.sh (sys_delete_guix_daemon): Test if gnu-store.mount file
exists rather than if it is executable.

Change-Id: Ic7cc186618b0b92fccf49a3b27805756a9126b89
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-11-14 15:41:19 +01:00
Richard Sent
40c6f70839
guix-install.sh: Add unique requirement for sysv init system
This improves the installer's ability to detect that all requirements are
present regardless of init system. It also avoids performing the requirement
check twice (printing excessively to the console) and provides a framework for
adding new init system specific requirements if it's needed in the future.

* etc/guix-install.sh (add_init_sys_require): Create.
(SYSV_INIT_REQUIRE): Create.
(main_install): Reorder installer steps so all requirements are checked in one
pass.

Change-Id: Ic541c1b90499d504642b7ab4ae595501b1a37b0d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-04 12:08:34 +02:00
Tomas Volf
887d031382
guix-install.sh: Relax check for OpenRC.
On my virtual private servers running Alpine, the install script failed to
identify the init system.  The virtual server is LXC based, and OpenRC
identifies itself like this:

    # openrc --version
    openrc (OpenRC [LXC]) 0.52.1

The regular expression failed to match it.  After relaxing the check (by
removing the trailing `)' requirement) the installation went fine and I got
functional Guix installation.

* etc/guix-install.sh (chk_init_sys): Drop trailing \) from the regular
expression.

Change-Id: I5f951226341e631fb34cc6c26cfbb87656dab77a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-02 12:05:09 +02:00
Trevor Arjeski
1262e8b122
guix-install.sh: Add ~/.guix-profile/share/info to INFOPATH.
Adding ~/.guix-profile/share/info to the INFOPATH env var so that when a user
does `guix install [package]` that package's info pages can be found.

* etc/guix-install.sh (sys_create_init_profile): Add
$GUIX_PROFILE/share/info to INFOPATH in ‘/etc/profile.d/zzz-guix.sh’.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I8958261c388ddee5659f0f1ce1c0c9813dc0f052
2024-06-02 12:05:09 +02:00
Tomas Volf
08bb2dbb13
guix-install.sh: Fix setting GUIX_LOCPATH.
After installing Guix home on my new foreign system, the locale did not
work and GDM did not even let me to log in.  After some digging around using
tty3 and tty4, I realized the GUIX_LOCPATH is not being set properly.

I had nothing installed in the ~/.guix-profile (the symlink did not even
exist) and I had glibc-locales installed in ~/.guix-home, yet GUIX_LOCPATH
contained "$HOME/.guix-profile/lib/locale:".

I believe when the code was modified from the original "home or profile" to
the current "home and profile" the || was used by accident instead of &&.

I also remove the trailing :, since it is taken care of by the ${...:+:}.

* etc/guix-install.sh (sys_create_init_profile):

Change-Id: I8a3287fe809af58aee2edc924154eecf91fa1eb8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-29 22:56:44 +02:00
Tomas Volf
d7bf731573
guix-install.sh: Add default value for XCURSOR_PATH.
This improves compatibility with (at least) Gnome based systems.  On my new
Ubuntu 22.04 install the mouse cursor was broken (after I installed Guix)
until I set this.

* etc/guix-install.sh (sys_create_init_profile): Set default value for
XCURSOR_PATH.

Change-Id: I489f0307d99e4d8d82671f291c78b90c7b6dae4a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-29 22:56:05 +02:00
Janneke Nieuwenhuizen
78390634d7
guix-install.sh: Make Guix modules available too.
* etc/guix-install.sh (GUILE_LOAD_PATH): Prepend directory to current Guix
modules.
(GUILE_LOAD_COMPILED_PATH): Likewise to compiled modules.

Change-Id: I0b2722a38b1f8ebab32142cbc372a23cadfb0620
2024-04-07 16:26:28 +02:00
Ludovic Courtès
dd476cfb76
guix-install.sh: Add ‘--uninstall’ flag.
* etc/guix-install.sh (REQUIRE): Add groupdel and userdel.
(chk_term): Handle ‘WAR’.
(sys_delete_store, sys_delete_build_user, sys_delete_guix_daemon)
(sys_delete_init_profile, sys_delete_user_profiles): New functions.
(main): Rename to…
(main_install): … this.
(main_uninstall): New function.
(main): Dispatch between these two.
* doc/guix.texi (Installation): Refer to “Binary Installation” instead
of repeating it.
(Binary Installation): Document uninstallation.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I55b7c10823773bced2e268273e8ce828cb3bd98d
2024-04-05 18:21:23 +02:00
Christopher Baines
ac19e038b4
Switch order of the default substitute servers.
The aim here is to improve the user experience.  There's anecdotal evidence
that the network performance for bordeaux is better compared to ci at least
for some users, and I don't know of any issues with rate limiting or access
restriction for bordeaux compared to ci.  It also has IPv6 support.

Additionally, bordeaux generally had more substitutes than ci, particularly
for aarch64-linux and armhf-linux.  This change will offer a very slight
speedup for those substitutes that only bordeaux has.

Bordeaux has been a default substitute server for nearly 3 years now and I
think this change is overdue.  I'm also hopeful that we'll be able to build on
the testing regarding mirrors for bordeaux, and that'll allow potentially
improving the hosting setup (through providing more redundancy) and further
improving substitute fetching for users who currently have issues with
substitute access.

* config-daemon.ac: Switch substitute urls order.
* doc/guix.texi: Ditto.
* etc/guix-install.sh: Ditto.
* gnu/installer/newt/network.scm (wait-service-online): Ditto.
* guix/store.scm (%default-substitute-urls): Ditto.

Change-Id: I4f6d93ae1fc8b03d80b47b18b5749a51f1fde17b
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-04-03 17:18:38 +01:00
Tobias Geerinckx-Rice
7419b187d1
guix-install.sh: Fix incomplete installation.
‘false || return’ returns false, and
‘set -e’ aborts the script.  This leaves
Guix half installed with visual indication of error.

* etc/guix-install.sh (sys_customize_bashrc, sys_maybe_setup_selinux):
Explicitly return 0.
2023-07-16 02:00:07 +02:00
Tobias Geerinckx-Rice
c89e0b4d20
guix-install.sh: Install SELinux policy only if tools are present.
* etc/guix-install.sh (sys_maybe_setup_selinux): Silently return if
the ‘semodule’ or ‘restorecon’ commands are missing.
2023-07-16 02:00:07 +02:00
Tobias Geerinckx-Rice
93243a6ca4
guix-install.sh: Remove any old systemd units first.
Don't clobber /dev/null permissions if units are masked.

* etc/guix-install.sh (sys_enable_guix_daemon): Factor out unit
installation.  Unconditionally remove any old units.  Install and enable
gnu-store.mount after guix-daemon.service.
2023-07-09 02:00:09 +02:00
Tobias Geerinckx-Rice
024f78aba2
guix-install.sh: Don't patch guix-daemon.service.
* etc/guix-install.sh (sys_enable_guix_daemon):
Remove obsolete sed invocations.
2023-07-09 02:00:09 +02:00
Tobias Geerinckx-Rice
67790e7f2f
guix-install.sh: Unconditionally install gnu-store.mount.
* etc/guix-install.sh (sys_enable_guix_daemon):
Remove obsolete conditional.
2023-07-09 02:00:08 +02:00
Tobias Geerinckx-Rice
ff23e34f56
guix-install.sh: Don't extract the binary ‘.’.
* etc/guix-install.sh (sys_create_store): Strip the first tar
file name component.
2023-07-05 22:28:56 +02:00
Ludovic Courtès
4166b583fb
guix-install.sh: Install SELinux policy and relabel file systems if needed.
Fixes <https://issues.guix.gnu.org/62487>.

* etc/guix-install.sh (sys_maybe_setup_selinux): New function.
(main): Use it.
2023-05-25 12:51:15 +02:00
Maxim Cournoyer
e29571afc6
guix-install.sh: Fix GUIX_ALLOW_OVERWRITE condition.
Before this change, the "Overwriting existing installation!" would be
displayed erroneously.

* etc/guix-install.sh (sys_create_store): Fix overwrite conditional.
2023-04-24 12:51:41 -04:00
Andrew Tropin
02033bfc05
guix-install.sh: Source both profiles, default user's and home.
* etc/guix-install.sh (sys_create_init_profile): Source both profiles, default
user's and home.
2023-04-09 11:06:54 +04:00
Maxim Cournoyer
23d56ba150
guix-install.sh: Add GUIX_ALLOW_OVERWRITE environment variable.
The need for this use case appeared when attempting to install Guix on a truly
minimal image made with Buildroot, which lacked enough GNU components that I
had to extract a guix pack to /gnu before attempting installation, which would
then refuse to proceed because of the existing /gnu.

* etc/guix-install.sh: Document environment variables.
(sys_create_store) [GUIX_ALLOW_OVERWRITE]: Skip pre-existing installation
checks and output a warning.  Extract the tarball directly to /.
2023-02-17 02:55:43 +01:00
Maxim Cournoyer
7ce9b7e706
guix-install.sh: Directly exit in case of errors in chk_require.
* etc/guix-install.sh (chk_require): Directly exit in case of errors in
chk_require, instead of relying on 'set -e'.
2022-12-16 00:14:30 -05:00
Maxim Cournoyer
1febafb4af
guix-install.sh: Add missing "useradd" command.
* etc/guix-install.sh: (REQUIRE): Add missing "useradd" command.
2022-12-16 00:14:30 -05:00
Tobias Geerinckx-Rice
6cf6f42334
guix-install.sh: Gracefully fail on | bash.
* etc/guix-install.sh (welcome): Print an error message and a hint if
the first read fails.
2022-12-11 01:00:00 +01:00