Назад | Перейти на главную страницу

Ошибка Duplicity 0.7.10 после обновления librsync в Ubuntu 14.04

Я потратил несколько часов, пытаясь настроить Двойственность для автоматического удаленного резервного копирования на Google Диск. На данный момент можно с уверенностью сказать, что я нахожусь в собственном аду зависимости.

При использовании версии Duplicity из моего дистрибутива (0.6.x) я получал сообщение об ошибке:

BackendException: для серверной части Документов Google требуется клиентская библиотека Python для API данных Google (см. http://code.google.com/p/gdata-python-client/).

несмотря на то, что у меня был установлен клиент Google API Python. Итак, я решил попробовать обновить двойственность, но это не помогло:

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). После борьбы с зависимостями для который, Я наконец получил оба librsync и duplicity обновлены до последних стабильных версий.

Итак, когда я решил попробовать свою обновленную версию Duplicity, 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

Получить librsync.h затем

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

работать на меня.

Оба ответа pl.smith и alexw здесь верны, но в комбинации. Я получил идентичную ошибку при попытке обновления с duplicity 0.7.6 до 0.7.14 с помощью pip на Ubuntu 16.04 LTS. Вот что я сделал, чтобы их исправить:

  1. Установите необходимые файлы заголовков librsync (по умолчанию они не устанавливаются):

    sudo apt update
    sudo apt install librsync-dev
    
  2. Создайте файл конфигурации для библиотек librsync в каталоге кэша ld (пропустите этот шаг, если файл уже существует):

    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
    

Я смог решить эту проблему, добавив путь к общему объекту 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

Теперь вы должны перезагрузить кеш ldconfig Ubuntu:

sudo ldconfig