Max Ghenis
Max Ghenis

Reputation: 15843

When in conda, tmux and emacs throw "error while loading shared libraries: libtinfo.so.6"

I've installed and updated tmux and emacs via conda in my default environment, and have these versions in conda list:

# packages in environment at /home/maxghenis/miniconda3:
#
# Name                    Version                   Build  Channel
tmux                      2.7                  hc78d2af_1    conda-forge
emacs                     26.1                 h3a2ea38_1    conda-forge

Yet when trying to start either tmux or emacs, I get this error:

error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory

Per error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory I have 5 libtinfo files:

(xenial)maxghenis@localhost:~$ sudo find / -name "libtinfo.so"
/home/maxghenis/miniconda3/pkgs/ncurses-5.9-10/lib/libtinfo.so
/home/maxghenis/miniconda3/pkgs/ncurses-6.1-hf484d3e_0/lib/libtinfo.so
/home/maxghenis/miniconda3/envs/tidycensus/lib/libtinfo.so
/home/maxghenis/miniconda3/lib/libtinfo.so

(xenial)maxghenis@localhost:/lib$ sudo find / -name "libtinfo.so.6"
/lib64/libtinfo.so.6

Upvotes: 10

Views: 11785

Answers (2)

DimG
DimG

Reputation: 1781

Same issue. The following has worked out:

$ pwd
<anaconda_installation_dir>

$ ./bin/tmux
(error)


$ find . -name "libtinfo*"
...
./lib/libtinfo.so  # this is the needed shared lib shipped deployed by  conda, just need it been found
...

$ ln -s `readlink -f ./lib/libtinfo.so` `readlink -f ./lib/libtinfo.so | sed '[email protected][email protected]@'`
$ find . -name "libtinfo*"
...
./lib/libtinfo.so  # original lib
./lib/libtinfo.so.6  # the new one which is a symlink
...

$ ./bin/tmux
(ok)

As to why this may be desired -- my case is working in a sort of administratively "hostile" environment when I don't have access to fast on-demand package deployment (as well as root/sudi as well, of course) but still need screen-like solution.

Upvotes: 2

RalfFriedl
RalfFriedl

Reputation: 1130

You may need a package libncurses6. When you search for the library, you should look for files

find / -name "libtinfo.so*" -ls

The file libtinfo.so is only used when creating an executable, and is typically a symlink to the actual library. It is not needed to run a program. The file "libtinfo.so.6" is also often a symlink to the actual library. On my system, it is

/lib64/libtinfo.so.6 -> libtinfo.so.6.1

As tmux and emacs are system utilities and it's not likely that you want to use different versions of them, why don't you install them in the base system without conda?

Upvotes: 1

Related Questions