6

所以,我是个白痴,我不小心删除了我的 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 并构建/安装了它,但这也没有创建我需要的库。关于如何解决这个问题的任何想法?

非常感谢您的帮助。

4

2 回答 2

9

我想,是libcurl3-gnutls——试试看—— sudo apt-get install libcurl3-gnutls

这就是我的想法,希望这可以帮助其他人:

第 1 步:在我的机器(Ubuntu 16.04)上查找 libcurl-gnutls.so.4。

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
于 2016-05-03T19:45:11.027 回答
6

Another reason for this issue is that your sistem only has the 64 bit version of the library and the program requires the 32 bit version. In this case you might see an error similar to the following:

error while loading shared libraries: libcurl-gnutls.so.4: wrong ELF class: ELFCLASS64

Installing the 32 bit version will fix it:

apt-get install libcurl3-gnutls:i386
于 2016-09-04T15:43:48.233 回答