Closed lebedov closed 5 years ago
I thought libtinfo was supposed to be part of the ncurses package. @jakirkham do you know how what is happening here? I get the same problem on OS X too:
dyld: Library not loaded: @rpath/libtinfo.6.dylib
Referenced from: /Users/aaronmeurer/anaconda3/Emacs.app/Contents/MacOS/Emacs
Reason: image not found
/Users/aaronmeurer/anaconda3/bin/emacs: line 2: 18601 Abort trap: 6 /Users/aaronmeurer/anaconda3/Emacs.app/Contents/MacOS/Emacs "$@"
Ah it requires ABI version 6, but the ncurses package includes version 5. There must be a newer ncurses which is installed on Travis and Circle, and somehow it's building against that.
Thanks. https://github.com/conda-forge/emacs-feedstock/pull/25. It would probably be worth improving the wording about that in the command, if not doing a rerender automatically. CC @CJ-Wright
@isuruf would it be possible to force a re-render as part of the cb3 command?
@lebedov can you check if this works for you now?
I can confirm that the OS X build is fixed.
@asmeurer emacs-26.1-h3a2ea38_1 still doesn't work on Linux (same problem).
Not sure whether if it matters, but I had to manually download it from anaconda.org because it isn't showing up in the output of conda search emacs
as of the present.
Hm. I don't know why it doesn't show up. Do you have conda-forge in your channels list (conda info
)?
Anyway, I don't know how conda handles dependencies for manually downloaded files these days. Can you try installing it into a new test environment, and showing me conda list
?
Yes - conda-forge is in my channel list; here is the output of conda info
:
active environment : base
active env location : /home/lebedov/miniconda3
shell level : 1
user config file : /home/lebedov/.condarc
populated config files : /home/lebedov/.condarc
conda version : 4.5.6
conda-build version : 3.10.9
python version : 3.6.5.final.0
base environment : /home/lebedov/miniconda3 (writable)
channel URLs : file:///home/lebedov/miniconda3/conda-bld/linux-64
file:///home/lebedov/miniconda3/conda-bld/noarch
https://conda.anaconda.org/lebedov/linux-64
https://conda.anaconda.org/lebedov/noarch
https://conda.anaconda.org/pytorch/linux-64
https://conda.anaconda.org/pytorch/noarch
https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/linux-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/pro/linux-64
https://repo.anaconda.com/pkgs/pro/noarch
package cache : /home/lebedov/miniconda3/pkgs
/home/lebedov/.conda/pkgs
envs directories : /home/lebedov/miniconda3/envs
/home/lebedov/.conda/envs
platform : linux-64
user-agent : conda/4.5.6 requests/2.19.1 CPython/3.6.5 Linux/4.15.0-24-generic ubuntu/16.04 glibc/2.23
UID:GID : 1000:1000
netrc file : None
offline mode : False
Creating a new conda environment via conda create -n EMACS emacs
installed the appropriate dependencies needed to enable emacs to run.
Creating a new conda environment via conda create -n EMACS emacs installed the appropriate dependencies needed to enable emacs to run.
I guess that means the pinning isn't actually working (the package should require ncurses to update to 6 to be installed).
No, nevermind. I downloaded the file and checked the info/index.json
and
{
"arch": "x86_64",
"build": "h3a2ea38_1",
"build_number": 1,
"depends": [
"freetype >=2.8.1,<2.9.0a0",
"giflib >=5.1.4,<5.2.0a0",
"gnutls",
"jpeg >=9c,<10a",
"libgcc-ng >=4.9",
"libpng >=1.6.34,<1.7.0a0",
"libtiff >=4.0.9,<5.0a0",
"libxml2 >=2.9.8,<2.10.0a0",
"ncurses >=6.1,<6.2.0a0",
"xorg-libxaw",
"xorg-libxfixes",
"xorg-libxpm",
"zlib >=1.2.11,<1.3.0a0"
],
"license": "GPL-3.0",
"name": "emacs",
"platform": "linux",
"subdir": "linux-64",
"timestamp": 1530915678683,
"version": "26.1"
}
Did installing emacs
in your main environment update ncurses to 6? If it is installed, maybe it is broken somehow (conda install -f ncurses
would fix it).
I do have some other packages such as tmux that depend on ncurses 5.9 in the environment in which I was encountering problems - perhaps that was confusing conda when I tried to install the latest emacs package? (I submitted a request to rebuild tmux against ncurses 6.1.)
I can confirm in a Docker container that
conda create -n test ncurses=5
conda install -n test emacs
installs the old, broken build, but
conda create -n test emacs
installs the latest build (and emacs does work in that build). Does conda auto-pin ncurses since I used it to create the environment?
Ah yes, so try
conda install emacs ncurses=6
and that will force it to install ncurses=6, or fail if it's impossible (or it might uninstall tmux, you might want to try it with --dry-run
first to see what it does).
When I tried installing emacs in my main environment, conda tried to install 26.1-h5d2cb88_0
Running conda install emacs ncurses=6
in my main environment tries to install emacs-26.1-h3a2ea38_1 and uninstall tmux.
Ok so that's the problem. I think this package works fine. We should probably remove the older build from anaconda.org. I wish conda didn't try to install older builds by default.
OK, now when I install emacs, it doesn't install ncurses (but when I create a new environment with it, it does).
When I create a new environment that doesn't contain emacs 26.1-h3a2ea38_1 or ncurses 6.1-0 and try to install emacs, it installs both of the above packages.
OK, I figured out the problem. The defaults
ncurses doesn't have the versioned libtinfo.so.6 (it only has libtinfo.so). CC @msarahan
Can we pin ncurses to the conda-forge channel in the meantime?
Hello everybody, is this issue resolved? I just installed emacs from conda forge, still get the same error:
emacs: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory
@ipstone the issue is with the upstream ncurses
package from Anaconda. The fix for this is to run conda update ncurses
.
CC @conda-forge/core how can we pin ncurses
in this package to the conda-forge one until they fix this upstream?
@asmeurer I installed miniconda on an amazon ami. Installed pandas. Then installed emacs. Tried to run emacs and I get this error. conda update ncurses didn't fix it.
What version of ncurses does it install? If you manually install the package from conda-forge it should fix the issue.
The latest build of ncurses 6.1 (1) in defaults
includes symlinks for the versioned non-wide libraries (e.g. libtinfo.so.6). I should improve compatibility with the conda-forge version.
Was that just released? I think that should fix this issue.
Yes, the new build was added to the repository today.
I tested it in a Linux VM. By default, conda create -n test emacs
installs the conda-forge ncurses, but if I manually install the latest defaults one (6.1=he6710b0_1
) emacs still works.
Issue: emacs 26.1-h5d2cb88_0 depends on libtinfo.so.6, which is not available on Ubuntu 16.04.4:
Environment (
conda list
):Details about
conda
and system (conda info
):