After upgrading from Fedora 29 to 31, neovim (“nvim” command) errors out immediately with:
nvim: symbol lookup error: /usr/lib64/lua/5.1/luv.so: undefined symbol: uv_os_environ
It turns out this method doesn’t exist until libuv 1.31.0, and that my system’s is 1.30.1-1. However I’ve been unable to install a newer version, even after “dnf upgrade --refresh” and “dnf distro-sync”. Docs for the libuv package claims that Fedora 31 (stable?) is at 1.34.1-1.fc31.
dnf repolist
Results include Fedora 31 - x86_64, Fedora 31 - x86_64 - Updates, and Fedora Modular 31 - x86_64 - Updates, so what gives?
Enable Fedora repository, your listing suggests that dnf is only using rpmfusion, visual-studio-code and yam repositories.
then try again: sudo dnf --showduplicates list libuv
If you are still not picking the expected packages, confirm that you have the right repository configurations. You may want to enable the fedora updates and updates-tesing repositories.
Maybe if the problem is only with the module. you can try reset it and reinstall from default stream
dnf [options] module reset <module-name>...
Reset module state so it’s no longer enabled or disabled. Consequently, all installed profiles will be removed and only RPMs from the default stream will be available in the package set.
So you could try:
Reset the module and reinstall the package libuv (checking that dnf is picking up the right version)
Reset the module and reinstall the package neovim (checking that every dependence is installed from the default stream, if they are not maybe you wish reset other modules as also can be depending of the package too)
Edit1: Maybe there is not any module libuv ( I did list all modules and there is not this one) so obviously my point is wrong. what should do that you need delete the old packages/libraries and reinstall them from default stream. But sure you did know it too.
Hi all, thanks for your help. Haven’t been able to solve the issue yet.
Using @vits95’s link, I tried rebuilding the rpm database and importing the Fedora 31 GPG key. This did not help.
I found I had a nodesource repo for Fedora 28, so I disabled and deleted it, then installed/configured nodesource for Fedora 31. Still unable to update libuv.
I specifically enabled fedora, fedora-modular, updates, and updates-modular. “sudo dnf --showduplicates list libuv” returns the same results, with no packages from fedora or updates. The package version installed, 1:1.30.1-1.module_f31+5445+bfe91f26, contains “f31” in the name, though.
I don’t would disable them, and there are 2 packages about neovim
neovim and python3-neovim (maybe this last has some dependence issue i don’t know) you would enable them and try run the commands above checking the output mainly of the first command to check that will go to delete.
[jorge@f31 ~]$ dnf info libuv
Senaste kontroll av utgång av metadata: för 0:03:04 sedan den tor 23 jan 2020 21:50:27.
Tillgängliga paket
Namn : libuv
Epok : 1
Version : 1.34.0
Utgåva : 1.fc31
Arkitektur : i686
Storlek : 153 k
Källa : libuv-1.34.0-1.fc31.src.rpm
Förråd : updates
Sammanf. : Platform layer for node.js
URL : http://libuv.org/
Licens : MIT and BSD and ISC
Beskrivning : libuv is a new platform layer for Node. Its purpose is to
: abstract IOCP on Windows and libev on Unix systems. We intend to
: eventually contain all platform differences in this library.
Namn : libuv
Epok : 1
Version : 1.34.0
Utgåva : 1.fc31
Arkitektur : x86_64
Storlek : 145 k
Källa : libuv-1.34.0-1.fc31.src.rpm
Förråd : updates
Sammanf. : Platform layer for node.js
URL : http://libuv.org/
Licens : MIT and BSD and ISC
Beskrivning : libuv is a new platform layer for Node. Its purpose is to
: abstract IOCP on Windows and libev on Unix systems. We intend to
: eventually contain all platform differences in this library.
Maybe this command deleted them in anyway you have this working that is the important thing at all but i hope you have not problem try enable modular repos again and run a update to see if they are some change and all stay stable
Ah no, I had tried it before executing the quoted command. I re-enabled updates-modular and fedora-modular just now, and now “sudo dnf --showduplicates list libuv” only shows the old 1.30 package. Maybe my modular repos are misconfigured.
I’m very confused, because I followed the links in the repo files, and fedora-modular contains 1.32, and updates-modular contains 1.34. So it must be some filtering? Not sure where that is applied.