There has been some issues with getting the symlinks ~/.guix-profile and
~/.config/guix/current right on a foreign distro for me and some other
users, but Im not sure whether this is a Guix problem, or a
misunderstanding by the users. A good explanation of guix profiles is
here:
https://unix.stackexchange.com/questions/561093/what-is-the-difference-between-guix-profile-and-config-guix-current
and also make sure to read about the guix pull -p option. After that I
think you can fix your problem by fixing the symlinks.
Reg reinstall if you wont just fix the symlinks, deleting /gnu/store and
/var/guix, along with any profiles such as ~/.guix-profile and
~/.config/guix/ folders I think is enough to begin a reinstall (possibly
also /etc/guix/profiles/config.scm or similar if they exist - but not
sure).
Having a reinstall options or similar for guix-install.sh would be nice,
but I dont think it exists (btw. it shouldn't be too hard to check the
bash source for this and see if it exists or not).
Best regards,
David
On 2020-06-28 10:22, Zelphir Kaltstahl wrote:
Hi Guix Users!
I would like to repair or reinstall my Guix package manager
installation, because it seems broken and nothing I tried fixes the
problem.
The problem:
~~~~
xiaolong@xlx200:~/Downloads$ guix pull
Migrating profile generations to
'/var/guix/profiles/per-user/xiaolong'...
guix pull: error: symlink: File exists:
"/var/guix/profiles/per-user/xiaolong/current-guix"
~~~~
It started appearing, when I once ran `guix pull` and `guix package -u`
as `root` user, to update my locales in the root profile.
Now I can only do a `guix pull` as `root` user, no longer as normal
user.
I've tried deleting the symlink, thinking: "Well if the error is, that
a
file exists in that place, it probably wants to write there and refuses
to overwrite. I'll delete it for you then." That results in another
error:
~~~~
xiaolong@xlx200:~/Downloads$ guix pull
Migrating profile generations to
'/var/guix/profiles/per-user/xiaolong'...
Updating channel 'guix' from Git repository at
'https://git.savannah.gnu.org/git/guix.git'...
guix pull: error: Git error: failed open -
'/home/xiaolong/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/.git/FETCH_HEAD'
is locked: Permission denied
~~~~
I can get it back to previous state by running `guix pull` as `root`
user again, but it does not fix the original problem then.
Now I've gone 1 step further in frustration and deleted the whole
`/var/guix/profiles/per-user/xiaolong` folder. OK, now guix does not
know about any installed packages any more and the error becomes:
~~~~
xiaolong@xlx200:~$ guix pull
guile: warning: failed to install locale
Migrating profile generations to
'/var/guix/profiles/per-user/xiaolong'...
Updating channel 'guix' from Git repository at
'https://git.savannah.gnu.org/git/guix.git'...
guix pull: error: Git error: failed open -
'/home/xiaolong/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/.git/FETCH_HEAD'
is locked: Permission denied
~~~~
So I a basically giving up now and want to reinstall. I downloaded the
install script `guix-install.sh` from the website and ran it:
~~~~
xiaolong@xlx200:~/Downloads$ sudo bash guix-install.sh
(... big GUIX logo here ...)
This script installs GNU Guix on your system
https://www.gnu.org/software/guix/
Press return to continue...
[1593338927.330]: Starting installation (So 28. Jun 12:08:47 CEST 2020)
[1593338927.333]: [ PASS ] verification of required commands completed
[1593338927.364]: [ INFO ] init system is: systemd
[1593338927.368]: [ INFO ] system is x86_64-linux
[1593338928.075]: [ PASS ] Release for your system:
guix-binary-1.1.0.x86_64-linux
[1593338928.077]: [ INFO ] Downloading Guix release archive
guix-binary-1.1.0.x86_64 100%[==================================>]
70,14M 4,27MB/s in 21s
guix-binary-1.1.0.x86_64 100%[==================================>]
833 --.-KB/s in 0s
[1593338949.457]: [ PASS ] download completed.
[1593338950.341]: [ PASS ] Signature is valid.
[1593338959.807]: [ PASS ] unpacked archive
[1593338959.808]: [ FAIL ] A previous Guix installation was found.
Refusing to overwrite.
~~~~
"OK OK! I'll uninstall the previous one!"
But how do I do it exactly? Or is there a flag or anything I can give
to
make it overwrite the previous installation?
Regards,
Zelphir