oetiker / znapzend

zfs backup with remote capabilities and mbuffer integration.
www.znapzend.org
GNU General Public License v3.0
608 stars 138 forks source link

Znapzend fails to run after Debian 10 upgrade (perl binaries are mismatched) #431

Closed kroem closed 5 years ago

kroem commented 5 years ago

So I've upgraded my Proxmox box to 6 (debian 10) and now I'm getting a problem when trying to execute Znapzend. I really know nothing about Perl so would appreciate any assistance...

root@cat:~# znapzend list ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xdb80080, needed 0xce00080)

moetiker commented 5 years ago

you have to rebuild the perl libraries....

make clean make install

kroem commented 5 years ago

you have to rebuild the perl libraries....

make clean make install

Hi, thanks, but no difference. Can I remove everything somehow... ?

root@cat:~/znapzend-0.19.1# make clean Making clean in thirdparty make[1]: Entering directory '/root/znapzend-0.19.1/thirdparty' ls -1 | grep -v Makefile | grep -v bin | grep -v CPAN | xargs rm -rf make[1]: Leaving directory '/root/znapzend-0.19.1/thirdparty' Making clean in lib make[1]: Entering directory '/root/znapzend-0.19.1/lib' make[1]: Nothing to be done for 'clean'. make[1]: Leaving directory '/root/znapzend-0.19.1/lib' make[1]: Entering directory '/root/znapzend-0.19.1' make[1]: Nothing to be done for 'clean-am'. make[1]: Leaving directory '/root/znapzend-0.19.1' root@cat:~/znapzend-0.19.1# make install Making install in thirdparty make[1]: Entering directory '/root/znapzend-0.19.1/thirdparty' GEN touch Successfully installed Mojolicious-6.46 Successfully installed Module-Build-0.4224 Successfully installed IO-Pipely-0.005 Successfully installed Mojo-IOLoop-ForkCall-0.17 Successfully installed Scalar-List-Utils-1.45 (downgraded from 1.50) Test::Harness is up to date. (3.42) 5 distributions installed GEN touch make[2]: Entering directory '/root/znapzend-0.19.1/thirdparty' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/root/znapzend-0.19.1/thirdparty' make[1]: Leaving directory '/root/znapzend-0.19.1/thirdparty' Making install in lib make[1]: Entering directory '/root/znapzend-0.19.1/lib' make[2]: Entering directory '/root/znapzend-0.19.1/lib' make[2]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/opt/znapzend-0.19.1/lib' /usr/bin/install -c -m 644 ./ZnapZend.pm '/opt/znapzend-0.19.1/lib/.' /bin/mkdir -p '/opt/znapzend-0.19.1/lib/ZnapZend' /usr/bin/install -c -m 644 ./ZnapZend/ZFS.pm ./ZnapZend/Config.pm ./ZnapZend/Time.pm '/opt/znapzend-0.19.1/lib/ZnapZend' make[2]: Leaving directory '/root/znapzend-0.19.1/lib' make[1]: Leaving directory '/root/znapzend-0.19.1/lib' make[1]: Entering directory '/root/znapzend-0.19.1' GEN man/znapzend.1 GEN man/znapzendzetup.1 GEN man/znapzendztatz.1 make[2]: Entering directory '/root/znapzend-0.19.1' /bin/mkdir -p '/opt/znapzend-0.19.1/bin' /usr/bin/install -c bin/znapzend bin/znapzendzetup bin/znapzendztatz '/opt/znapzend-0.19.1/bin' make install-exec-hook make[3]: Entering directory '/root/znapzend-0.19.1' [ "" = "" ] || cd "/opt/znapzend-0.19.1" && /usr/bin/perl -i -p -e 's{.# PERL5LIB}{use lib qw(); # PERL5LIB}' bin/znapzend bin/znapzendzetup bin/znapzendztatz || true cd "/opt/znapzend-0.19.1" && /usr/bin/perl -i -p -e 's{^use .# LIBDIR}{use lib qw(/opt/znapzend-0.19.1/lib); # LIBDIR}' bin/znapzend bin/znapzendzetup bin/znapzendztatz cd "/opt/znapzend-0.19.1" && /usr/bin/perl -i -p -e 's{^#!.perl.}{#!/usr/bin/perl};' bin/znapzend bin/znapzendzetup bin/znapzendztatz mkdir -p /opt/znapzend-0.19.1/lib [ ! -d /root/znapzend-0.19.1/thirdparty/lib/perl5 ] || cp -fr /root/znapzend-0.19.1/thirdparty/lib/perl5/* /opt/znapzend-0.19.1/lib make[3]: Leaving directory '/root/znapzend-0.19.1' /bin/mkdir -p '/opt/znapzend-0.19.1/share/man/man1' /usr/bin/install -c -m 644 man/znapzend.1 man/znapzendzetup.1 man/znapzendztatz.1 '/opt/znapzend-0.19.1/share/man/man1' make[2]: Leaving directory '/root/znapzend-0.19.1' make[1]: Leaving directory '/root/znapzend-0.19.1' root@cat:~/znapzend-0.19.1# root@cat:~/znapzend-0.19.1# root@cat:~/znapzend-0.19.1# root@cat:~/znapzend-0.19.1# znapzendztatz ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xdb80080, needed 0xce00080) root@cat:~/znapzend-0.19.1#

moetiker commented 5 years ago

and if you run ./bin/znapzendztatz

kroem commented 5 years ago

and if you run ./bin/znapzendztatz

Yey, that worked!

So... seems I have some old package that created these files; root@cat:~# for x in /opt/znapzend-0.19.1/bin/; do ln -s $x /usr/local/bin; done ln: failed to create symbolic link '/usr/local/bin/znapzend': File exists ln: failed to create symbolic link '/usr/local/bin/znapzendzetup': File exists ln: failed to create symbolic link '/usr/local/bin/znapzendztatz': File exists root@cat:~# rm /usr/local/bin/znapzend root@cat:~# for x in /opt/znapzend-0.19.1/bin/*; do ln -s $x /usr/local/bin; done root@cat:~# root@cat:~# root@cat:~# root@cat:~# root@cat:~# znapzendztatz USED LAST SNAPSHOT DATASET -------------XX------------------

Now the service works.

Ehm, now how to clean up my system. Can I remove the entries created in /opt? znapzend will be running from the (in my case) root-folder?

EDIT

Sorry, i misread... /OPT vs /ROOT. Stoopid. Thanks. this works now.