dlopen: libcrypt.so.1: 无法打开共享对象文件: 没有这样的文件或目录

T_T*_*ure 28 python archlinux docker-compose

我使用EndeavourOS并于 2022 年 2 月 17 日更新了我的系统

sudo pacman -Syu
Run Code Online (Sandbox Code Playgroud)

从那时起,当我运行时docker-compose,我收到此错误消息:

[4221] 加载 Python lib '/tmp/_MEIgGJQGW/libpython3.7m.so.1.0' 时出错:dlopen:libcrypt.so.1:无法打开共享对象文件:没有这样的文件或目录

一些论坛帖子建议重新安装 docker-compose,我照做了。我尝试了以下解决方案,但都没有成功:

Python3.7:加载共享库时出错:libpython3.7m.so.1.0

我该如何解决这个问题?

小智 63

libxcrypt-compat从 pacman(官方存储库)安装


小智 16

今天我也发生了同样的事情,这就是我修复它的方法(Arcolinux 5.16.10-arch1-1)

删除了 docker-compose

$ sudo rm -r /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

使用 pip 重新安装它(不适用于curl方法)

$ sudo pip install docker-compose
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这会安装旧(v1)版本的“docker-compose”,而当前正在开发的版本是 v2。此外,手动删除二进制文件绝对不是从任何基于 Linux 的系统中删除软件的推荐方法。 (3认同)
  • @MaksBabarowski:谢谢!我之前安装过V1,所以暂时适合。Docker 在他们的文档中建议通过手动删除二进制文件来卸载。 (2认同)

小智 15

我使用 Arch Linux,它对我有用:

 # cd /usr/lib
 # sudo ln ./libcrypt.so libcrypt.so.1
 # docker-compose -v

 docker-compose version 1.29.2, build 5becea4c
Run Code Online (Sandbox Code Playgroud)


小智 3

这里的根本问题是您使用 docker-compose 而不是 docker compose,这是两个不同的二进制文件。docker-compose 也称为 V1,自 2022 年 4 月 26 日起已弃用。从那时起,除了高严重性安全补丁之外,它不再接收更新或补丁。

因此,要解决您的问题,请使用docker compose而不是docker-compose. 如果您比较docker compose versiondocker-compose version,您会发现它使用较新的 docker compose 并且运行没有问题。