vim / vim-appimage

AppImage for gVim
118 stars 18 forks source link

libcrypt.so.1: version `XCRYPT_2.0' not found (on debian bullseye, ubuntu 22.10, mageia 9) #48

Closed shadowwa closed 1 year ago

shadowwa commented 1 year ago

When using vim appimage (or gvim with a link named vim) I have problem with perlcritic, perltidy and PLS. these programs seems to crash when launched by vim-ale or coc.nvim when launching one of these program from the terminal:

:terminal
shad@abbadon:~$ perltidy --version

I've got an error about `XCRYPT_2.0' not found

The problem does not occur with the system installed vim. The problem occurs on several distribs:

Mageia :

system installed:

lib64xcrypt1-4.4.33-3.mga9 vim-enhanced-9.0.1314-1.mga9

Error message in vim:

/usr/bin/perl: /tmp/.mount_Vim-v9w1hgcd/usr/lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /lib64/libperl.so.5.36

Ubuntu kinetic (22.10):

system installed lib:

ii libcrypt1:amd64 1:4.4.28-2 amd64 libcrypt shared library ii vim 2:9.0.0242-1ubuntu1 amd64 Vi IMproved - enhanced vi editor

Error message in vim:

/usr/bin/perl: /tmp/.mount_vimwpVdR9/usr/lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /usr/bin/perl)

debian bullseye

system installed lib:

ii libcrypt1:amd64 1:4.4.18-4 amd64 libcrypt shared library
ii vim 2:8.2.2434-3+deb11u1 amd64 Vi IMproved - enhanced vi editor

Error message in vim:

/usr/bin/perl: /tmp/.mount_vim.apwcbqgJ/usr/lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /usr/bin/perl)

appimage tested:

the workaround I found is to preload the libcrypt of the system in my ~/.vimrc for exemple, for debian and ubuntu, I've added the line

let $LD_PRELOAD="/lib/x86_64-linux-gnu/libcrypt.so.1.1.0"

It allowed perltidy, perlcritic and PLS to work without visible problems (from terminal or vim-ale/coc.nvim) but I don't know if this preloading will have negative side effect of some sort.

chrisbra commented 1 year ago

I believe the LD_PRELOAD solution you found is the correct solution.