Я потратил несколько часов, пытаясь настроить Двойственность для автоматического удаленного резервного копирования на 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. Вот что я сделал, чтобы их исправить:
Установите необходимые файлы заголовков librsync (по умолчанию они не устанавливаются):
sudo apt update
sudo apt install librsync-dev
Создайте файл конфигурации для библиотек librsync в каталоге кэша ld (пропустите этот шаг, если файл уже существует):
sudo touch /etc/ld.so.conf.d/librsync.so.2.conf
Добавьте каталог, содержащий файлы заголовков librsync, в переменную среды LD_LIBRARY_PATH:
sudo <your favorite text editor> /etc/ld.so.conf.d/librsync.so.2.conf
Добавить /usr/local/lib
к строке в этом файле.
Обновите 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