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

この問題のもう 1 つの理由は、システムには 64 ビット バージョンのライブラリしかなく、プログラムには 32 ビット バージョンが必要であることです。この場合、次のようなエラーが表示されることがあります。

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

32 ビット版をインストールすると、次のように修正されます。

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