我通过遵循编译链接在Ubuntu 14.04上创建s3fs-fuse的二进制文件。在某些系统中,在kubernetes pod上执行挂载操作时出现以下错误
---- ------ ---- ---- -------
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
Run Code Online (Sandbox Code Playgroud)
我看到二进制文件正在使用,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)
Run Code Online (Sandbox Code Playgroud)
因此,从执行二进制文件构建的系统中,我看到了以下内容
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)
Run Code Online (Sandbox Code Playgroud)
因此,二进制libcurl3-gnutls:amd64代替libcurl4-openssl-dev:amd64。我该如何改变这种行为。
请安装libcurl3软件包。
将来,如果您缺少某些文件,则可以使用https://packages.ubuntu.com查找哪个程序包可以提供所需的文件。
例如:https : //packages.ubuntu.com/search?searchon=contents&keywords=libcurl.so.4&mode=filename&suite=xenial&arch=any
| 归档时间: |
|
| 查看次数: |
10352 次 |
| 最近记录: |