Minimal required libc version

Hello all,
when I run atuin init zsh (v18.2.0) from atuin-v18.2.0-x86_64-unknown-linux-gnu.tar.gz on my (admittedly very old) system, I got:

atuin: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by atuin)
atuin: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by atuin)
atuin: /lib64/libc.so.6: version `GLIBC_2.29' not found (required by atuin)
atuin: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by atuin)

I am not complaining about it not working, it’s my fault :wink: However, is “on libc-based Linux distros minimal required version of libc is 2.29” documented somewhere? I am not sure how useful it will be to document.

Thanks!

You can try to build it yourself. Rust itself supports as old as glibc 2.17.

2 Likes

Thanks @lilydjwg for inspiration. I did manage to compile atuin 18.3.0 on this ancient system (with cargo build --release -j 4, if anybody needs to know):

$ strings /lib64/libc.so.6| grep '^GLIBC_'|grep -v GLIBC_PRIVATE|sort -uV|tail -n1
GLIBC_2.22

Rust rocks. \o/ :slight_smile:

The only problem I’ve seen is that atuin does not like when its DB folder (~/.local/share/atuin) is on a NAS-mounted FS: it times out when opening SQLite connection and when I increased local_timeout to a bigger value than the default 5 seconds, it complained the DB is locked … Solved by moving of ~/.local/share/atuin to a local disk. Not sure if this is of interest, @ellie, as everybody has their home on a local disk?

This is not an atuin issue but rather an SQLite issue. see SQLite Frequently Asked Questions

Long story short, SQLite may or may not work on network shares. For the explanation see the link above.

While it is not uncommon to use mounted home dirs in certain environments, I am not sure how atuin would behave. atuin uses a unique identifier per host that is stored in the atuin directory afaik. So apart from the SQLite issue, there is still the unique identifier to take into consideration as well.

2 Likes

As @tessus said, SQLite doesn’t work on networked filesystems. Especially not NFS - it does not properly implement the locking primitives that SQLite requires, hence the “database is locked” errors.

Glad you got this sorted!

1 Like

Thanks, @tessus and @ellie, for taking time to explain! :pray:

2 Likes