Closed wineee closed 2 years ago
My guess is that you did a Nix garbage collection, and the libvte
that the Termonad executable is trying to link to is no longer on your system.
Here's the command you can use to check out the libvte library that your cached termonad executable is trying to link to:
$ readelf -d ~/.cache/termonad/termonad-linux-x86_64 | grep vte
0x0000000000000001 (NEEDED) Shared library: [libvte-2.91.so.0]
0x000000000000001d (RUNPATH) Library runpath: [...:/nix/store/1phcdrnbbwgqvwy3yaraxl450hn04g63-vte-0.64.1/lib:...]
If /nix/store/1phcdrnbbwgqvwy3yaraxl450hn04g63-vte-0.64.1/lib
no longer exists on your system, then it makes sense that this cached binary is giving you problems.
The easiest solution is probably to just delete the cached binary and let Termonad rebuild it.
$ rm -rf ~/.cache/termonad/
$ termonad
If /nix/store/1phcdrnbbwgqvwy3yaraxl450hn04g63-vte-0.64.1/lib
does still exist on your system, then I have no idea what could be going on. You'll have to do some more debugging. Potentially with LD_DEBUG
: http://www.bnikolic.co.uk/blog/linux-ld-debug.html
You are right, libvte
was removed by Nix garbage collection.
It worked fine after I reinstalled.
But I don't know why Nix remove a useful dependency,I add termonad
in environment.systemPackages
But I don't know why Nix remove a useful dependency,I add termonad in environment.systemPackages
Termonad uses https://hackage.haskell.org/package/dyre for the recompilation logic.
Here is a little documentation on exactly what is happening: https://hackage.haskell.org/package/termonad-4.2.0.0/docs/Termonad.html#v:defaultMain
Basically, Termonad creates an executable ~/.cache/termonad/termonad-linux-x86_64
that is linked to an old libvte
. Nix doesn't realize that ~/.cache/termonad/termonad-linux-x86_64
needs libvte
to continue to exist, so it is happy to garbage collect the old libvte
library.
There could be some logic added to Termonad to try to rebuild the ~/.cache/termonad/termonad-linux-x86_64
executable if it exists, but it is not able to be run for whatever reason.
I install termonad from nixpkgs, termonad doesn't work after recent upgrade