libcurl.so.4: невозможно открыть общий объектный файл: нет такого файла или каталога - PullRequest
0 голосов
/ 07 июня 2018

Я создаю двоичный файл s3fs-fuse в Ubuntu 14.04, перейдя по ссылке compilation .В некоторых системах я получаю приведенную ниже ошибку при выполнении операции монтирования на kubernetes pods

      ----     ------                 ----             ----                   -------
  Normal   Scheduled              5h               default-scheduler      Successfully assigned verifypod5 to 10.171.42.29
  Normal   SuccessfulMountVolume  5h               kubelet, 10.171.42.29  MountVolume.SetUp succeeded for volume "default-token-scrsz"
  Warning  FailedMount            5h (x8 over 5h)  kubelet, 10.171.42.29  MountVolume.SetUp failed for volume "pvc-f2d4cacc-6a51-11e8-b133-fa53da29538e" : mount command failed, status: Failure, reason: Error mounting volume: s3fs mount failed: s3fs: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

. Я вижу, что двоичный файл использует libcurl-gnutls.so.4, но мне кажется, что нам нужен openssl.

ldd /usr/local/bin/s3fs
linux-vdso.so.1 =>  (0x00007ffc3d1cb000)
libfuse.so.2 => /lib/x86_64-linux-gnu/libfuse.so.2 (0x00007fb0fd742000)
libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007fb0fd4d5000)
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fb0fd11a000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fb0fccd6000)

Итак, из системы, в которой я создавал бинарный файл, я вижу ниже

    dpkg -l | grep curl
ii  curl                                7.47.0-1ubuntu2.8                          amd64        command line tool for transferring data with URL syntax
ii  libcurl3:amd64                      7.47.0-1ubuntu2.8                          amd64        easy-to-use client-side URL transfer library (OpenSSL flavour)
ii  libcurl3-gnutls:amd64               7.47.0-1ubuntu2.8                          amd64        easy-to-use client-side URL transfer library (GnuTLS flavour)
ii  libcurl4-openssl-dev:amd64          7.47.0-1ubuntu2.8                          amd64        development files and documentation for libcurl (OpenSSL flavour)

Итак, бинарный файл получает libcurl3-gnutls:amd64 вместо libcurl4-openssl-dev:amd64.Как я могу изменить это поведение.

1 Ответ

0 голосов
/ 07 июня 2018

Пожалуйста, установите libcurl3 пакет.

В будущем, если вам не хватает какого-либо файла, вы можете использовать https://packages.ubuntu.com, чтобы найти, какой пакет предоставляет файл, который вам нужен.

Например: https://packages.ubuntu.com/search?searchon=contents&keywords=libcurl.so.4&mode=filename&suite=xenial&arch=any

...