What is the best way to upgrade sqlite3 in Fedora with latestest binary / package X require Y but none of the providers can be installed

I have Fedora 34 Workstation, which ships with sqlite 3.34.

$ sqlite3 --version
3.34.1 2021-01-20 14:10:07 10e20c0b43500cfb9bbc0eaa061c57514f715d87238f4d835880cd846b9ealt1

I have to update to sqlite 3.36.

On the sqlite download page there are precompiled binaries for linux.

What is the best way to update?

I thought just uninstall the fedora-shipped one and put the precompiled binary in path.

However I cannot uninstall sqlite3:

$ sudo dnf remove sqlite
Error: 
 Problem: package rstudio-1.4.1717-1.x86_64 requires sqlite, but none of the providers can be installed
  - conflicting requests
  - problem with installed package rstudio-1.4.1717-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

With --skip-broken it’s the same thing:

$ sudo dnf remove sqlite --skip-broken
Error: 
 Problem: package rstudio-1.4.1717-1.x86_64 requires sqlite, but none of the providers can be installed
  - conflicting requests
  - problem with installed package rstudio-1.4.1717-1.x86_64

EDIT:

I cannot remove RStudio either:

$ sudo dnf remove rstudio-1.4.1717-1.x86_64
All matches were filtered out by exclude filtering for argument: rstudio-1.4.1717-1.x86_64
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!
1 Like

Fedora 35 has 3.36, so you can update to it when it releases (if you can wait that much?). I’ve just upgraded two machines to F35 already and it went very very smoothly, so the upgrade should be quite painless.

https://src.fedoraproject.org/rpms/sqlite

Have you modified your configuration files to exclude any packages? Can you please paste the contents of /etc/dnf/dnf.conf ?

I’d hold off on using this command until we’ve diagnosed why dnf isn’t removing the package first. :slight_smile:

1 Like

Indeed I had and I have forgotten.

The content of the file is as follows:

$ cat /etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
exclude=R-*, rstudio, rstudio-*

Can I just replace the binary in /usr/local with the binary I download from the website without breaking the system?

What would happen if Fedora decides to go from 3.34 to 3.34.1 and I update my system?

Will my 3.36 binary be overridden?

Your exclude in that file prevents doing anything with the packages that are excluded. An exclusion in that location blocks all dnf action including updates, removal, etc. A necessary side effect is that it also blocks doing anything with packages that have that as a dependency or that it depends upon.

If you need to so something with rstudio then you will need to remove it from the dnf.conf file exclusion list.

If an rpm package is installed and you replace the binary with an out-of-tree binary (not from an rpm), the next time an update occurs to that package the new binary will be put into place. It is always better to stick with one source for your packages. RPM Packages from different sources can have problems as well with conflicting dependencies named in the package.

Looking at your needs, I would suggest you remove the excludes line from the dnf.conf file, then do an update. It is possible that by doing so all the issues with the sqlite update will be fixed (although fedora 34 only has sqlite version 3.34.1).

As was said by FranciscoD, fedora 35 is available, and I have had it running on my laptop since it was branched with no issues. It has sqlite version 3.36.0 already there.

1 Like