Comment puis-je faire en sorte que ddclient fonctionne avec des fichiers libres?

8

J'utilise le service DNS dynamique sur freedns.afraid.org pour mon serveur 12.04. J'avais supposé que les protocoles seraient standardisés et que ddclient fonctionnerait, mais apparemment pas. Je reçois ce message dans / var / log / syslog:

ERROR: Invalid update URL (2): unexpected status ()

J'ai essayé d'utiliser la version mise à jour de ddclient à partir du PPA alternatif décrit dans cette réponse , mais j'ai ensuite rencontré cette erreur:

FATAL:    Error loading the Perl module Digest::SHA1 needed for freedns update.
FATAL:     On Debian, the package libdigest-sha1-perl must be installed.

Et quand j'essaie d'installer ce paquet, j'obtiens ceci:

E: Unable to locate package libdigest-sha1-perl

Ce qui m'amène à ce rapport de bug , qui n'a apparemment pas de solution. La façon de procéder?

Rob Fisher
la source
Il semble que le bogue ait été corrigé dans la version 3.8.2 , ddclient fonctionne désormais correctement avec les libérations prêtes à l'emploi.
jesjimher

Réponses:

11

Jusqu'à ce que ddclient soit corrigé , vous pouvez installer manuellement l'ancien module souhaité :

sudo apt-get install cpanminus
cpanm --sudo Digest::SHA1

Libérez la page des clients DNS et ddclient --helpfournissez des exemples de configurations client. Redémarrez ddclient pour que les modifications prennent effet:

sudo service ddclient restart
ændrük
la source
Je préfère cela au piratage de lui-même, merci.
Rob Fisher
3

J'ai pu faire fonctionner FreeDNS en modifiant simplement ces deux lignes dans /usr/sbin/ddclient:

De:

my $sha1_loaded = eval {require Digest::SHA1};

À:

my $sha1_loaded = eval {require Digest::SHA};

De:

import  Digest::SHA1 (qw/sha1_hex/);

À:

import Digest::SHA (qw/sha1_hex/);
matrixman
la source
2

Un commentaire dans le rapport de bogue suggère qu'il est "facile de changer de programme pour utiliser Digest :: SHA au lieu de Digest :: SHA1".

Donc, les étapes complètes sont, tout d'abord, car add-apt-repository n'est pas installé par défaut:

sudo apt-get install python-software-properties

Ensuite, comme décrit par izx:

sudo apt-add-repository ppa:nathan-renniewaldock/ppa

Maintenant, ce référentiel contient de nombreux packages, mais nous voulons seulement ddclient. Faites donc un fichier de préférences tel que `/etc/apt/preferences.d/nathan-prefs et éditez-le pour qu'il ressemble à ceci:

Package: *
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 400

Package: ddclient
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 500

Installez maintenant ddclient:

sudo apt-get update && sudo apt-get install ddclient

Maintenant, devenez root et éditez / usr / sbin / ddclient. Recherchez require Digest::SHA1et remplacez-le par require Digest::SHA. Recherchez ensuite import Digest::SHA1quelques lignes plus tard et remplacez-le par import Digest::SHA.

Enfin, ouvrez /etc/ddclient.conf et faites-le ressembler à ceci (notez le protocole):

daemon=3600
protocol=freedns
use=if, if=eth0
ssl=yes
use=web, web=myip.dnsomatic.com
server=freedns.afraid.org
login=username
password='password'
mydomain.example.com

La principale chose dont je ne suis pas satisfait est le piratage d'un fichier et la rupture de la gestion des paquets d'Ubuntu. Une meilleure solution serait de réparer le PPA.

Rob Fisher
la source
-1

Vous pouvez l'obtenir à partir de: libdigest-sha1-perl

Vous devrez peut-être également installer libio-socket-ssl-perl . Vérifiez votre syslog

user211708
la source
N: impossible de localiser le paquet libdigest-sha1-perl
Konstigt