Bagaimana saya bisa mendapatkan ddclient untuk bekerja dengan kebebasan?

8

Saya menggunakan layanan DNS dinamis di freedns.afraid.org untuk server 12.04 saya. Saya berasumsi bahwa protokol akan distandarisasi dan bahwa ddclient hanya akan berfungsi, tetapi ternyata tidak. Saya mendapatkan pesan ini di / var / log / syslog:

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

Saya mencoba menggunakan versi terbaru dari ddclient dari PPA alternatif yang dijelaskan dalam jawaban ini , tetapi kemudian saya menemukan kesalahan ini:

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

Dan ketika saya mencoba menginstal paket itu, saya mendapatkan ini:

E: Unable to locate package libdigest-sha1-perl

Yang mengarahkan saya ke laporan bug ini , yang ternyata tidak memiliki solusi. Bagaimana untuk melanjutkan?

Rob Fisher
sumber
Sepertinya bug diperbaiki di 3.8.2 , ddclient sekarang berfungsi dengan baik dengan bebas di luar kotak.
jesjimher

Jawaban:

11

Sampai ddclient diperbaiki , Anda dapat menginstal modul lama yang diinginkan secara manual:

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

Halaman klien DNS gratis dan ddclient --helpmemberikan contoh konfigurasi ddclient. Mulai ulang ddclient agar perubahan diterapkan:

sudo service ddclient restart
ændrük
sumber
Saya lebih suka ini dari hacking ddclient sendiri, terima kasih.
Rob Fisher
3

Saya bisa membuat FreeDNS bekerja dengan hanya mengedit dua baris ini di /usr/sbin/ddclient:

Dari:

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

Untuk:

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

Dari:

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

Untuk:

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

Sebuah komentar dalam laporan bug menunjukkan bahwa "mudah untuk mengubah program untuk menggunakan Digest :: SHA daripada Digest :: SHA1".

Jadi langkah-langkah lengkapnya adalah, pertama, karena add-apt-repository tidak diinstal secara default:

sudo apt-get install python-software-properties

Kemudian, seperti yang dijelaskan oleh izx:

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

Sekarang, repositori ini mengandung banyak paket, tetapi kami hanya ingin ddclient. Jadi buatlah file preferensi seperti `/etc/apt/preferences.d/nathan-prefs dan edit menjadi seperti ini:

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

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

Sekarang instal ddclient:

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

Sekarang, menjadi root dan edit / usr / sbin / ddclient. Cari require Digest::SHA1dan ganti dengan require Digest::SHA. Kemudian cari import Digest::SHA1beberapa baris kemudian dan ganti dengan import Digest::SHA.

Terakhir, buka /etc/ddclient.conf dan buatlah tampilannya seperti ini (perhatikan protokolnya):

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

Hal utama yang tidak saya sukai adalah meretas file dan merusak manajemen paket Ubuntu. Solusi yang lebih baik adalah memperbaiki PPA.

Rob Fisher
sumber
-1

Anda bisa mendapatkannya dari: libdigest-sha1-perl

Anda mungkin perlu menginstal libio-socket-ssl-perl . Periksa syslog Anda

pengguna211708
sumber
N: Tidak dapat menemukan paket libdigest-sha1-perl
Konstigt