在 Ubuntu 14.04 中升级 librsync 后 Duplicity 0.7.10 失败

在 Ubuntu 14.04 中升级 librsync 后 Duplicity 0.7.10 失败

我花了几个小时尝试配置表里不一执行自动远程备份到 Google Drive。此时,我可以肯定地说,我正处于自己的私人依赖地狱中。

使用我的发行版 (0.6.x) 附带的 Duplicity 版本时,我收到一个错误:

BackendException:Google Docs 后端需要 Google Data API Python 客户端库(请参阅http://code.google.com/p/gdata-python-client/)。

尽管我已经安装了 Google API Python 客户端。因此,我决定尝试升级 duplicity,但失败了:

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)。在解决了以下依赖关系后,我最终得到了两者librsyncduplicity更新到它们的最新稳定版本。

因此,当我使用duplicity --version,我现在得到了立即出错:

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

答案1

librsync.h然后得到

sudo apt-get install python-dev  
sudo apt-get install librsync-dev  

为我工作。

答案2

我可以通过将共享对象的路径添加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

答案3

pl.smith 和 alexw 的答案在这里都是正确的,但需要结合起来。我在 Ubuntu 16.04 LTS 上使用 pip 尝试将 duplicity 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
    

相关内容