如何创建lib curl-gnutls.so.4

use*_*114 4 ubuntu curl gnutls

所以,我是个白痴,我不小心在我的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
Run Code Online (Sandbox Code Playgroud)

它是对的!该文件不存在.但我不知道如何创建它.我已经尝试使用apt-get来安装libcurl-gnutls,虽然它说它成功了但它并没有创建库.我也下载了curl并构建/安装了它,但这也没有创建我需要的库.关于如何解决这个问题的任何想法?

非常感谢你的帮助.

Rav*_*ezu 8

我想,它是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
Run Code Online (Sandbox Code Playgroud)

步骤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
Run Code Online (Sandbox Code Playgroud)

所以,它给了我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
Run Code Online (Sandbox Code Playgroud)


Bla*_*ear 5

此问题的另一个原因是您的系统仅具有该库的64位版本,而该程序需要该32位版本。在这种情况下,您可能会看到类似于以下内容的错误:

error while loading shared libraries: libcurl-gnutls.so.4: wrong ELF class: ELFCLASS64
Run Code Online (Sandbox Code Playgroud)

安装32位版本将解决此问题:

apt-get install libcurl3-gnutls:i386
Run Code Online (Sandbox Code Playgroud)