¿Cómo puedo hacer que ddclient trabaje con libertades?

8

Uso el servicio DNS dinámico en freedns.afraid.org para mi servidor 12.04. Asumí que los protocolos serían estandarizados y que ddclient simplemente funcionaría, pero aparentemente no. Recibo este mensaje en / var / log / syslog:

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

Intenté usar la versión actualizada de ddclient del PPA alternativo descrito en esta respuesta , pero luego recibí este error:

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

Y cuando intento instalar ese paquete, obtengo esto:

E: Unable to locate package libdigest-sha1-perl

Lo que me lleva a este informe de error , que aparentemente no tiene solución. ¿Cómo proceder?

Rob Fisher
fuente
Parece que el error se corrigió en 3.8.2 , ddclient ahora funciona bien con liberaciones listas para usar.
jesjimher

Respuestas:

11

Hasta ddclient se fija , puede instalar manualmente el módulo antiguo que quiere:

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

Libere la página de clientes de DNS y ddclient --helpproporcione configuraciones de muestra de ddclient. Reinicie ddclient para que los cambios surtan efecto:

sudo service ddclient restart
ændrük
fuente
Prefiero esto a hackear ddclient, gracias.
Rob Fisher el
3

Pude hacer que FreeDNS funcione simplemente editando estas dos líneas en /usr/sbin/ddclient:

Desde:

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

A:

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

Desde:

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

A:

import Digest::SHA (qw/sha1_hex/);
Matrixman
fuente
2

Un comentario en el informe de error sugiere que es "fácil cambiar los programas para usar Digest :: SHA en lugar de Digest :: SHA1".

Entonces, los pasos completos son, primero, porque add-apt-repository no está instalado por defecto:

sudo apt-get install python-software-properties

Entonces, como lo describe izx:

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

Ahora, este repositorio contiene muchos paquetes, pero solo queremos ddclient. Así que cree un archivo de preferencias como `/etc/apt/preferences.d/nathan-prefs y edítelo para que se vea así:

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

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

Ahora instale ddclient:

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

Ahora, conviértete en root y edita / usr / sbin / ddclient. Busque require Digest::SHA1y reemplácelo con require Digest::SHA. Luego busque import Digest::SHA1algunas líneas más tarde y reemplácelo con import Digest::SHA.

Finalmente, abra /etc/ddclient.conf y haga que se vea así (tenga en cuenta el protocolo):

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

Lo principal que no me agrada es piratear un archivo y romper la administración de paquetes de Ubuntu. Una mejor solución sería arreglar el PPA.

Rob Fisher
fuente
-1

Puede obtenerlo de: libdigest-sha1-perl

Es posible que también deba instalar libio-socket-ssl-perl . Revisa tu syslog

usuario211708
fuente
N: No se puede encontrar el paquete libdigest-sha1-perl
Konstigt