[Debian] Executable suddenly missing

Hi,

this is a bit of a weird question, but seemingly out of nowhere, all the Duplicati binaries are missing. I’m on Debian 12 and update regularly everything. The last backup I was able to run was a week ago, I only noticed it wasn’t running anymore yesterday. No Web UI present anymore as well. Things I tried/checked:

~$ which duplicati-cli
~$ sudo which duplicati-cli
~$ sudo mono Duplicati.CommandLine.exe
Cannot open assembly 'Duplicati.CommandLine.exe': No such file or directory.
~$ mono Duplicati.CommandLine.exe
Cannot open assembly 'Duplicati.CommandLine.exe': No such file or directory.
~$ sudo systemctl status duplicati.service
× duplicati.service - Duplicati web-server
     Loaded: loaded (/etc/systemd/system/duplicati.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Tue 2024-10-15 18:58:44 CEST; 14h ago
   Duration: 1ms
    Process: 283129 ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS (code=exited, status=203/EXEC)
   Main PID: 283129 (code=exited, status=203/EXEC)
        CPU: 465us

Oct 15 18:58:44 my.domain.example (i-server)[283129]: duplicati.service: Failed at step EXEC spawning /usr/bin/duplicati-server: No such file or directory
Oct 15 18:58:44 my.domain.example systemd[1]: Started duplicati.service - Duplicati web-server.
Oct 15 18:58:44 my.domain.example systemd[1]: duplicati.service: Main process exited, code=exited, status=203/EXEC
Oct 15 18:58:44 my.domain.example systemd[1]: duplicati.service: Failed with result 'exit-code'.
~$ ls ~/.config/Duplicati
control_dir_v2  dbconfig.json  Duplicati-server.sqlite  updates
~$ sudo dpkg-query -l | grep duplicati
rc  duplicati                                                   2.0.7.1-1
    all          Backup client for encrypted online backups
~$ sudo apt list --installed | grep duplicati
~$ sudo ls /usr/bin/duplicati*
ls: cannot access '/usr/bin/duplicati*': No such file or directory

Restarting the service also doesn’t help, since the executable isn’t there anymore. As you can see, dpkg thinks Duplicati is still installed. (Although I’m pretty sure I was running the latest version using the web-based updater, not the old 2.0.7 version dpkg is reporting.)

Now, I guess it’s hard to know what happened here, but if anyone has any ideas, I’m happy to go check. It could’ve been an error by clamav although it should’ve reported it. Maybe it was uninstalled by some update/autoremove process.

The bigger question is: can I just reinstall Duplicati with the .deb package again, and will it keep my backup configurations? Since I can’t use the command line to export the configurations. Is it sufficient to copy/backup the ~/.config/Duplicati directory?

Thanks for your help and happy to provide more details.

Welcome to the forum @debinati

As a minor point, I suspect the mono tests are only going to use current directory.
Duplicati probably used to be in /usr/lib/duplicati. What does /var/log/dpkg show?

See man dpkg-query. I think r says something asked to remove duplicati package.

Thanks for the suggestions. It seems the usr folder is also empty:

~$ sudo ls /usr/lib/duplicati*
ls: cannot access '/usr/lib/duplicati*': No such file or directory

But thanks for the dpkg pointer, it seems it was (half?) uninstalled:

~$ grep duplicati /var/log/dpkg.log
~$ grep duplicati /var/log/dpkg.log.1
2024-09-28 08:50:22 status installed duplicati:all 2.0.7.1-1
2024-09-28 08:50:22 remove duplicati:all 2.0.7.1-1 <none>
2024-09-28 08:50:22 status half-configured duplicati:all 2.0.7.1-1
2024-09-28 08:50:22 status half-installed duplicati:all 2.0.7.1-1
2024-09-28 08:50:22 status config-files duplicati:all 2.0.7.1-1

So it seems like an update did actually uninstall it. If the status says half-configured / half-installed, is it safe to simply reinstall it, while keeping my old configuration?

Edit: I assume there’s no easy way to find out why it was removed? I’ll have to make sure future updates don’t do the same again…

Instead of running grep, maybe look at /var/log/dpkg.log with less to see what else happened. Various system logs might give other clues. Time might also. That looks like Saturday morning.

I’m not a dpkg wizard. Maybe someone else can answer detailed questions about its behavior.

You probably already know that apt runs dpkg. The config files are pretty sticky (probably from intentional design), and I think the c in status says that your r was done in a way leaving them.

It wouldn’t hurt to make a backup. They’re in ~/.config/Duplicati where ~ is Duplicati PID user’s.

What do the various dpkg flags like ‘ii’ ‘rc’ mean?

I found that with Google to confirm what rc meant. Maybe web can tell you more about half-*.

Thanks a lot for your pointers! You’re right with the c flag the configuration stayed (it was in the /root/ user’s folder). I was able to reinstall Duplicati from the package and with the -o Dpkg::Options::="--force-confold" option from apt I made extra sure to keep those (from ubuntu - Automatically keep current version of config files when apt-get install - Server Fault). Webserver is back up, configuration is still there, and backup is running - thanks a lot for the quick replies!

I “think” the Duplicati config is more durable. Possibly the only conffile from a .deb viewpoint is

From dpkg --status duplicati

Conffiles:
 /etc/default/duplicati 43a59355d6971b24a74b2475ffd7eafb

or

$ cat /var/lib/dpkg/info/duplicati.conffiles
/etc/default/duplicati
$ 

This sort of makes sense, as Duplicati config is in home directories, so package doesn’t know.

Anyway, I’m glad you got back up.