Crashplan 4.5 на Synology Diskstation UnsatisfiedLinkError

506
Barn

Я был запущен портом скороговорки из CrashPlan на моем Synology DiskStation DS213j (ARM CPU). Я недавно обновил ОС DiskStation до DSM 6.0.

В рамках обновления служба CrashPlan обновилась до последней версии во время перезапуска. У меня возникли небольшие проблемы с перезапуском CrashPlan, потому что эта версия поставляется с собственной JRE без ARM, поэтому я указал на Java 8 JRE, которая поставляется с DSM 6.0.

Теперь CrashPlan запускается нормально, но не выполняет резервное копирование. Графический интерфейс говорит: «Начальное резервное копирование не завершено». В логах вижу

ERROR 95988_AUTH-1 .service.backup.BackupController] Exception setting up BackupController!, java.lang.UnsatisfiedLinkError: /volume1/@tmp/jna-3506402/jna7016685188129052391.tmp: /volume1/@tmp/jna-3506402/jna7016685188129052391.tmp: internal error STACKTRACE:: java.lang.UnsatisfiedLinkError: /volume1/@tmp/jna-3506402/jna7016685188129052391.tmp: /volume1/@tmp/jna-3506402/jna7016685188129052391.tmp: internal error at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:761) at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736) at com.sun.jna.Native.<clinit>(Native.java:131) at com.code42.jna.LinuxPlatform.<init>(LinuxPlatform.java:76) at com.code42.jna.PlatformFactory.getLinuxPlatform(PlatformFactory.java:41) at com.code42.jna.inotify.InotifyManager.<clinit>(InotifyManager.java:47) at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.<init>(JNAInotifyFileWatcherDriver.java:22) at com.code42.backup.path.BackupSetsManager.initFileWatcherDriver(BackupSetsManager.java:417) at com.code42.backup.path.BackupSetsManager.setUp(BackupSetsManager.java:153) at com.code42.backup.BackupManager.setUp(BackupManager.java:141) at com.backup42.service.backup.BackupController.setUp(BackupController.java:456) at com.backup42.service.CPService.changeLicense(CPService.java:2809) at com.backup42.service.CPService.authorize(CPService.java:2705) at com.backup42.service.peer.Authorizer.doWork(Authorizer.java:927) at com.code42.utils.AWorker.run(AWorker.java:148) at java.lang.Thread.run(Thread.java:745) 

/volume1/@tmp/jna-3506402/jna7016685188129052391.tmp это бинарный файл ELF, а каталог находится внутри tmpdir JVM CrashPlan.

Я интерпретирую это, поскольку новая версия CrashPlan поставляется с некоторыми родными библиотеками, и они не созданы для процессоров ARM. Я также вижу, что CrashPlan 4.5 требует ядро ​​Linux 2.6.32 или выше, и если его нет, могут быть проблемы с inotifyвызовами. Это видно в стеке выше.

Я чучела? Без собственных библиотек CrashPlan для моей платформы я не вижу способа его запустить. У меня осталось два года подписки на CrashPlan, и запуск ее с моего ПК далеко не так хорош, как запуск с моего NAS по нескольким причинам.

0
Версия ядра Synology (/ proc / version): Linux версия 3.2.40 (root @ build3) (gcc версия 4.9.3 20150311 (предварительная версия) (crosstool-NG 1.20.0)) Barn 8 лет назад 0

1 ответ на вопрос

1
Barn

Replacing the CrashPlan-provided jna.jar with a fresh one downloaded from Maven does the trick. See Martin Kleinman's instructions:

  1. Download: https://maven.java.net/content/repositories/releases/net/java/dev/jna/jna/4.2.2/jna-4.2.2.jar
  2. go to /var/packages/CrashPlan/target/bin and make a backup from jna.jar ( mv jna.jar jna.backup )
  3. rename the downloaded jna-4.2.2.jar to jna.jar 13 copy the jna.jar you downloaded to the /var/packages/CrashPlan/target/bin directory