gpt4 book ai didi

linux - J 安装错误 : Cannot Find "libedit.so"

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:46 29 4
gpt4 key购买 nike

我不确定这根本是 Linux 问题还是 J 特定问题。

背景

我正在尝试让 j804 在 linux docker 容器中工作。我正在按照此处的说明进行操作:

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

我不确定如何从这里进行调试。出了什么问题,我该如何解决?

其他可能相关的细节

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 上。

最佳答案

jconsole 可执行文件未找到 libedit 共享对象 - 有几种方法可以解决此问题。

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

例如,在该 Docker 镜像中,运行:

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

(您也可以在运行容器时注入(inject)此环境变量;使用 -e 选项来运行 docker 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)
...

这会将 libedit 共享对象放在 /usr/lib/x86_64-linux-gnu 中,jconsole 无需修改环境变量即可在其中获取它们。

如果您在镜像中有 root 访问权限,您也可以在那里运行 sudo apt-get install libedit-dev,或者只是将共享对象链接到 /usr/lib/x86_64 -linux-gnu 使用 ln -s(尽管每次运行图像时都必须这样做)。

关于linux - J 安装错误 : Cannot Find "libedit.so",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500054/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com