Ĵ安装错误:无法找到“libedit.so”

问题描述 投票:1回答:1

我不能确定这是否是根的Linux发行或为J具体问题。

Background

我试图让j804一个Linux泊坞窗容器内工作。我在这里的操作说明:

https://code.jsoftware.com/wiki/System/Installation/J804/Linux

j64-804是在容器的主目录,而且我以root身份登录。这是我得到的错误:

$ ./j64-804/jconsole.sh
bin/jconsole: error while loading shared libraries: 
libedit.so: cannot open shared object file: No such file or directory

我不能确定如何从这里进行调试。发生了什么事错了,我该如何解决?

Other Possibly Relevant Details

root@b0ed60c2a313:~# find / -name libedit.so*
/opt/conda/pkgs/libedit-3.1.20170329-haf1bffa_1/lib/libedit.so.0
/opt/conda/pkgs/libedit-3.1.20170329-haf1bffa_1/lib/libedit.so.0.0.56
/opt/conda/pkgs/libedit-3.1.20170329-haf1bffa_1/lib/libedit.so
/opt/conda/lib/libedit.so.0
/opt/conda/lib/libedit.so.0.0.56
/opt/conda/lib/libedit.so

而那些迪尔斯是我PATH

linux docker j
1个回答
3
投票

该libedit共享对象没有被JConsole的可执行文件发现 - 有可以解决这个问题的一些方法。

首先,共享对象文件不搜索使用$PATH据我所知:您需要更改/创建$LD_LIBRARY_PATH

例如,多克尔图像里面,运行:

$ export LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"

(你也可以在运行时,容器注入这个环境变量;使用-edocker run选项。)

然后,你必须:

$ wget http://www.jsoftware.com/download/j804/install/j804_linux64.tar.gz
$ tar -xzf j804_linux64.tar.gz
$ ./j64-804/jconsole.sh
    3 + 1 4 1 5
4 7 4 8

或者,你可以修改Dockerfile构建过程中安装libedit-dev的:

# Install all OS dependencies for fully functional notebook server
RUN apt-get update && apt-get install -yq --no-install-recommends \
    build-essential \
    emacs \
    git \
    inkscape \
    jed \
    libsm6 \
    libxext-dev \
    libxrender1 \
    libedit-dev \ # <----- here (or wherever you fancy)
    ...

在JConsole中挑选他们,而不需要修改环境变量来这会将libedit共享对象/usr/lib/x86_64-linux-gnu

如果你有在图像内的root访问权限,还可以运行sudo apt-get install libedit-dev有替代,或使用/usr/lib/x86_64-linux-gnu(虽然你已经有了这个,你跑的图像都必须这样做)的共享对象只是链接到ln -s

© www.soinside.com 2019 - 2024. All rights reserved.