所以,我是个白痴,我不小心在我的Ubuntu系统上删除了libcurl-gnutls.so.4文件。现在我无法弄清楚如何重新创建它。我得到的实际错误是当我尝试使用git时:
git-remote-https: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
这是对的!该文件不存在。但我不知道如何创建它。我已经尝试使用apt-get来安装libcurl-gnutls,虽然它说它成功了但它并没有创建库。我也下载了curl并构建/安装了它,但这也没有创建我需要的库。关于如何解决这个问题的任何想法?
非常感谢您的帮助。
答案 0 :(得分:7)
我认为,这是libcurl3-gnutls
- 尝试一下 - sudo apt-get install libcurl3-gnutls
。
这就是我想出来的方式,希望这可以帮助其他人:
Step1:在我的机器上查找libcurl-gnutls.so.4(Ubuntu 16.04)。
ravitezu@Neutron:~$ locate libcurl-gnutls.so.4
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.4.0
步骤2:安装时检查提供此文件的软件包。
ravitezu@Neutron:~$ dpkg -S /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
libcurl3-gnutls:amd64: /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
所以,它给了我提供该文件的包名libcurl3-gnutls
。
以下是安装libcurl3-gnutls时将部署的文件:
ravitezu@Neutron:~$ dpkg -c libcurl3-gnutls_7.47.0-1ubuntu2_amd64.deb
drwxr-xr-x root/root 0 2016-02-18 13:48 ./
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/lib/
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/lib/x86_64-linux-gnu/
-rw-r--r-- root/root 444800 2016-02-18 13:48 ./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.4.0
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/share/
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/share/lintian/
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 67 2016-01-27 17:17 ./usr/share/lintian/overrides/libcurl3-gnutls
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/share/doc/
drwxr-xr-x root/root 0 2016-02-18 13:48 ./usr/share/doc/libcurl3-gnutls/
-rw-r--r-- root/root 10954 2016-01-27 17:17 ./usr/share/doc/libcurl3-gnutls/copyright
-rw-r--r-- root/root 1019 2016-02-18 13:48 ./usr/share/doc/libcurl3-gnutls/changelog.Debian.gz
-rw-r--r-- root/root 590 2016-01-27 17:17 ./usr/share/doc/libcurl3-gnutls/NEWS.Debian.gz
lrwxrwxrwx root/root 0 2016-02-18 13:48 ./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 -> libcurl-gnutls.so.4.4.0
lrwxrwxrwx root/root 0 2016-02-18 13:48 ./usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3 -> libcurl-gnutls.so.4
答案 1 :(得分:4)
此问题的另一个原因是您的系统只有64位版本的库,程序需要32位版本。在这种情况下,您可能会看到类似于以下内容的错误:
error while loading shared libraries: libcurl-gnutls.so.4: wrong ELF class: ELFCLASS64
安装32位版本将解决它:
apt-get install libcurl3-gnutls:i386