Crashplan, Code42's backup utility, was recently upgraded to version 10.0.0 on Linux and as soon as I upgraded it, it stopped working.
I use Crashplan for some backups and recently, the GUI app said there was an upgrade available. It looked like it automatically downloaded the newer version, upgraded itself, and then it shut down. When I opened it again (the GUI), it would sit there for a minute or two and then complain it couldn't connect to the local service. I tried restarting the service manually but it kept crashing.
I tried upgrading manually but was still spitting out the same error.
Finally I uninstalled and reinstalled it, which seemed to finally allow the service to run and the app seemed to be able to connect to it but then the login was failing with a "Unable to sign in. Unknown error." message.
Digging into the logs, I found that it seems to be missing a native library:
Native library (linux-x86-64/libuaw.so) not found in resource path (lib/com.backup42.desktop.jar:lang)
Unfortunately, I couldn't find anything about this library anywhere, which led me to think it's a proprietary library, meaning they released this new version without it. Great job! :P
Asking Code42 for help only resulted in a generic response saying my version of Linux (Linux Mint) is not supported.
It took me some time to find a solution and since the problem recently happened again when it automatically upgraded from 10.0.0 to 10.2.0, I decided to document it here so I don't have to search for it again.
Apparently Code42's Crashplan doesn't bother to detect other Linux distributions other than Red Hat Enterprise and Ubuntu, even if it's a distribution based on one of those, like CentOS or Linux Mint. It should install a specific library file depending on the detected operating system. Maybe I'm missing something here but I'd say that logic dictates if it needs to detect the OS in order to install the right file, if it can't detect the OS, the installation should fail, or maybe ask the user to manually select which distro they want to be considered.
I've been meaning to switch to Kopia for a while now, so maybe this is the final push I need to finally move away from Crashplan, which is a shame. I used to love the service back in the "Crashplan for Home" days.
Until then, here's how to fix this.
Download the tarball containing the installation files and decompress it - it should create a directory named "code42-install". Then open a shell in that directory and follow these guidelines:
# Extract the installation files so we can access the missing file. $ gzip -dc CrashPlanSmb_10.2.0.cpi | cpio -i # Stop the Crashplan service $ sudo /usr/local/crashplan/bin/service.sh stop # Copy the missing library file. The actual file path depends on your Linux version. For me it's ubuntu20 but you may need to replace it depending on which Linux version your system is based on. Look inside the nlib directory to see what other distributions are supported. $ sudo cp nlib/ubuntu20/libuaw.so /usr/local/crashplan/nlib $ sudo chmod u+x /usr/local/crashplan/nlib/libuaw.so # Restart the Crashplan service $ sudo /usr/local/crashplan/bin/service.sh start
That's it. Maybe my next article will be on how to do backups with Kopia...