web-dev-qa-db-ja.com

Ubuntu 14.04でlibrsyncをアップグレードした後、重複0.7.10が失敗する

Googleドライブへの自動リモートバックアップを実行するように Duplicity を構成するのに数時間を費やしました。この時点で、私は私自身の私的な依存関係地獄にいると言っても過言ではありません。

ディストリビューションに付属しているバージョンのDuplicity(0.6.x)を使用すると、次のエラーが発生しました。

BackendException:GoogleドキュメントバックエンドにはGoogleデータAPIが必要ですPythonクライアントライブラリ( http://code.google.com/p/gdata-python-client/ を参照)。

google API Python Clientがインストールされているにもかかわらず、重複をアップグレードしようと決心しましたが、次の問題で失敗しました。

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c duplicity/_librsyncmodule.c -o build/temp.linux-x86_64-2.7/duplicity/_librsyncmodule.o
duplicity/_librsyncmodule.c:26:22: fatal error: librsync.h: No such file or directory
 #include <librsync.h>
                      ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

そこで、librsyncも最新の安定バージョン(2.0)にアップグレードすることにしました。 thatの依存関係に苦労した後、私はついにlibrsyncduplicityの両方を最新の安定したバージョンに更新しました。

したがって、アップグレードしたバージョンのDuplicityにduplicity --versionを使用してスピンを与えると、すぐにthisエラーが発生します。

Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 71, in <module>
    from duplicity import collections
  File "/usr/local/lib/python2.7/dist-packages/duplicity/collections.py", line 32, in <module>
    from duplicity import path
  File "/usr/local/lib/python2.7/dist-packages/duplicity/path.py", line 43, in <module>
    from duplicity import librsync
  File "/usr/local/lib/python2.7/dist-packages/duplicity/librsync.py", line 30, in <module>
    from . import _librsync
ImportError: librsync.so.2: cannot open shared object file: No such file or directory
2
alexw

取得するため librsync.hその後

Sudo apt-get install python-dev  
Sudo apt-get install librsync-dev  

私のために働く。

4
pl.smith

ここでは、pl.smithとalexwの両方の答えが正しいですが、組み合わせています。 Ubuntu 16.04LTSでpipを使用して重複0.7.6から0.7.14にアップグレードしようとすると同じエラーが発生しました。これらを修正するために私がしたことは次のとおりです。

  1. 必要なlibrsyncヘッダーファイルをインストールします(これらはデフォルトではインストールされません):

    Sudo apt update
    Sudo apt install librsync-dev
    
  2. Ldキャッシュディレクトリにlibrsyncライブラリの設定ファイルを作成します(ファイルがすでに存在する場合は、この手順をスキップしてください)。

    Sudo touch /etc/ld.so.conf.d/librsync.so.2.conf
    
  3. Librsyncヘッダーファイルを含むディレクトリをLD_LIBRARY_PATH環境変数に追加します。

    Sudo <your favorite text editor> /etc/ld.so.conf.d/librsync.so.2.conf
    

    追加 /usr/local/libこのファイルの行に。

  4. ldconfigキャッシュを更新します。

    Sudo ldconfig
    
1
SeniorSmoke

共有オブジェクトのパスを追加することでこれを解決することができましたlibrsync.so.2からLD_LIBRARY_PATH。 Ubuntuでは、これはldconfigを使用して行う必要があります。

Sudo nano /etc/ld.so.conf.d/librsync.so.2.conf

librsync.so.2.conf

/usr/local/lib

ここで、Ubuntuのldconfigキャッシュをリロードする必要があります。

Sudo ldconfig

1
alexw