Update is broken due to missing timeshift hook

Hello.

Presently, I’m facing this error:

Error: unable to run hook 00-timeshift-autosnap.hook: could not satisfy dependencies

In addition, I would really love it, if possible, to forever remove and disable Timeshift and all and any automatic snapshots. I don’t want buggy software to do snapshots. I don’t want any rouge programs in the data path of a system upgrade. It’s beyond the pale that someone thought this to be a good idea…

Not to mention the abysmally bad error message that leaves users wondering at to what went wrong.

For the reference: timeshift or any of its friends aren’t installed on my system. I don’t use Btrfs and will never use it (it lost data due to bugs, and being somewhat on the inside of the development of this project, I don’t trust it).

I tried setting SKIP_AUTOSNAP=1, but this has no effect. Both pamac and pacman fail with the same error.

To emphasize the severity of this “feature”: it completely destroyed the system by (re)moving important libraries, modifying symlinks… I.e. it breaks half-way through the package installation action. So, now I have to boot from a rescue disk and reinstall the system…

Here are some things I ended up doing to try to recover the system:

I found the hook that it couldn’t run in /usr/share/libalpm/hooks/00-timeshift-autosnap.hook.

This file looks like this:

[Trigger]
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Creating Timeshift snapshot before upgrade...
Depends = timeshift
When = PreTransaction
Exec = /usr/bin/timeshift-autosnap
AbortOnFail

I commented out # AbortOnFail to allow upgrade to succeed. But since the system was already broken (missing libraries etc.), now I’m trying to launch user programs s.a. browser or text editor, see what libraries are missing, and then either install the library, or reinstall the program.

Timeshift cannot have anything to do with your broken system. Sorry to tell you that, but you have already had a broken system. Check your FS for errors at least and do a full sync.
After that, the following might give you some hints.

sudo pacman -Qk 2>/dev/null | grep -v ' 0 missing files'
2 Likes

uninstall timeshift-autosnap-manjaro

to find which package contains which file:
pacman -F timeshift-autosnap

Fix your system by booting the manjaro ISO and manjaro-chroot into your system and run the update again and finish it.

Make sure to install at least one kernel if this is not done during the update in chroot.

But it appears the system is still able to boot or still running, which should make running the update again possible without having to chroot.

@Yochanan
:ninja: :smile:

I saw the initial post earlier and struggled with the decision whether to respond at all or not.

2 Likes

The hook is not missing. Why do you think it is? :thinking:

❯ sudo pacman -Fyl timeshift-autosnap-manjaro | grep hook
timeshift-autosnap-manjaro usr/share/libalpm/hooks/
timeshift-autosnap-manjaro usr/share/libalpm/hooks/00-timeshift-autosnap.hook

Please edit your topic title with proper grammar so those that volunteer to help here can understand you better.

Hint: broked is not a word. Did you mean, broken? :wink:

Please see:

Either way, if you do not want the automatic Timeshift backups, all you have to do is remove the timeshift-autosnap-manjaro package:

Either:

pamac remove timeshift-autosnap-manjaro

Or:

sudo pacman -R timeshift-autosnap-manjaro

EDIT: It seems @Nachlese and I responded at about the same time without seeing each other’s replies.

:ninja:

2 Likes

Im agree with you about BTRFS (I don’t trust it at all and i evade that dangerous or at least very advanced FS on all cost), but i never had any issue like you with Timeshift before.

When you open Timeshift GUI, you can go in settings and just choose manual snapshot and just uncheck autosnapshots and with Rsync on a external drive with a ext4 partition, it was working flawless for me in the past with my PC & Laptop.

I recommend to close all program’s and not change any files while you creating a system snapshot.

1 Like

i have move on to ‘vrangesync’ as an alternative.
it is faster than ‘rsync’ and i got a report(yes, a complete report!) at the end of every transfer which is a plus!

there is a feature called ‘differential+incremental’ backup that can compete Timeshift.

It was never installed to begin with. Please see my initial post that says:

For the reference: timeshift or any of its friends aren’t installed on my system.

That makes it sound as if I have anything to do with it :slight_smile:

Someone decided to put a configuration file into pacman that’s broken because it assumes that timeshift is installed, even though it isn’t.

Anyways. Now it’s too late to search for missing files.

My remaining questions are: how do I prevent rogue programs from intervening in the package update process? How do I make sure no automatic snapshots ever take place?

The hook is broken, but it’s present. But the error message is poorly written: it doesn’t tell what hook it fails to run, and it doesn’t tell what failed. Because initially I wasn’t able to find the hook, I assumed it didn’t exist.

As I documented, I looked for which package provides this file:

This package is/the result of the query was:

So … where did it come from, if it was never installed?
I certainly don’t know.

That’s a lie. The hook in pacman package doesn’t care if timeshift is installed or not. It will try to run the hook anyways, as evidenced by my initial report. There must be a setting in pacman somewhere which disables this functionality. Uninstalling a package that was never installed in the first place isn’t going to do much.


My guess here about what happened is the following: without my request or consent, during the package update action the files pertaining to timeshift were placed in their respective target locations, however, no record of the package being installed was made in pacman database (perhaps pacman packages have pre-install scripts?). Once this action was taken, pacman behavior was altered: it now believed it needs to run a hook that was impossible to run because the newly copied timeshift executable wasn’t yet on the system path.

In other words, if my guess is correct, and there are pre-install scripts, and that was the result of the pre-install script, that is the immediate source of the error.

Furthermore, I would request that no filesystem-related operations, especially during package install that are not for the benefit of unpacking and copying files in the packages and running scripts that come from the package itself be conditioned on users’ consent (i.e. there shouldn’t be a situation where installer decides to make snapshots on behalf of the user, without user’s consent).

Finally, since there’s a lot of hostility instead of actual information about how to disable the snapshot feature, my guess is that the functionality doesn’t exist: please add it, and your users will rejoice.

Not a lie. Even if it was false information - which it is not - it would be just that.
The word “lie” has a different meaning.

Anyway:

timeshift-autosnap-manjaro

depends on

timeshift

You can have timeshift without it -
but you can’t have timeshift-autosnap-manjaro without timeshift.

See also my previous comment.

6 Likes

False information is literally a lie. That’s what the word means.

You can have timeshift without it

I don’t want to have timeshift ever. Not with other things, not on its own, not in any combination imaginable. That’s the point of my request.

I’m not a native english speaker, but I still (very strongly) disagree.
A lie implies (malicious) intent.

uninstall it then …

3 Likes

:warning: Please maintain a respectful tone.

All those who help here do so in their free time and for free. That alone deserves respect.

If mistakes happen (and where don’t they happen?), that’s no reason to doubt the motives of those who compile the Manjaro packages.
:footprints:

8 Likes

The hook is in timeshift-autosnap-manjaro, not pacman.

$ pacman -F 00-timeshift-autosnap.hook
extra/timeshift-autosnap-manjaro 0.10-1 [installed]
    usr/share/libalpm/hooks/00-timeshift-autosnap.hook

$ ls /usr/share/libalpm/hooks/00-timeshift-autosnap.hook  
/usr/share/libalpm/hooks/00-timeshift-autosnap.hook

$ sudo pacman -R timeshift-autosnap-manjaro 
[sudo] password for dmt: 
checking dependencies...

Packages (1) timeshift-autosnap-manjaro-0.10-1

Total Removed Size:  0.00 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing timeshift-autosnap-manjaro                                                                                      [############################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

$ ls /usr/share/libalpm/hooks/00-timeshift-autosnap.hook
ls: cannot access '/usr/share/libalpm/hooks/00-timeshift-autosnap.hook': No such file or directory

If the file exists (in the right place) then it will be run, that’s how a hook works. If you want to disable a hook then you remove it, in this case that’s done by removing the package that owns it.

The hook aborts if timeshift isn’t installed, but according to you does so in a problematic way.

That may be something that should be looked into, however you probably shouldn’t end up in that state to start with.

Can you understand our problem? That file comes from that package, if that package isn’t installed then that file shouldn’t be there. Perhaps you have an AUR package installed which provides this file (that’s more difficult to check on our end).

So let us see for ourselves.

pacman -Qs timeshift
sudo find -L / -name "00-timeshift-autosnap.hook" 

Perhaps you missed this part:

The hook is 00-timeshift-autosnap.hook and the reason is could not satisfy dependencies, presumably because timeshift isn’t installed but is listed as a dependency in the hook.

A lie is intentional.

5 Likes

Only if it is deliberate. If it is not and you insist on accusing the other person of being a liar, then you are deliberately insulting them.

4 Likes

The first step is to find out which, if any, package owns the /usr/share/libalpm/hooks/00-timeshift-autosnap.hook file:

pacman -Qoq /usr/share/libalpm/hooks/00-timeshift-autosnap.hook

In my case, I get the following result:

scotty65's pacman -Qoq /usr/share/libalpm/hooks/00-timeshift-autosnap.hook
pacman -Qoq /usr/share/libalpm/hooks/00-timeshift-autosnap.hook

timeshift-autosnap-manjaro

If a package name is in the results then, as others have stated, you can just remove the package.

If no package owns the autosnap.hook file, then you should be able to safely remove it:

sudo rm /usr/share/libalpm/hooks/00-timeshift-autosnap.hook

If you want to play it safe, save a copy of the file somewhere else so that it can be restored later if needed.

Also, I just looked at my paclog output:

paclog --grep=timeshift | tail -10
[2025-05-19T09:34:51+1000] [ALPM] running '00-timeshift-autosnap.hook'...
[2025-05-19T09:34:51+1000] [ALPM-SCRIPTLET] ==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
[2025-05-19T09:41:37+1000] [ALPM] running '00-timeshift-autosnap.hook'...
[2025-05-19T09:41:37+1000] [ALPM-SCRIPTLET] ==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
[2025-05-21T00:16:05+1000] [ALPM] running '00-timeshift-autosnap.hook'...
[2025-05-21T00:16:05+1000] [ALPM-SCRIPTLET] ==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
[2025-05-25T16:38:22+1000] [ALPM] running '00-timeshift-autosnap.hook'...
[2025-05-25T16:38:22+1000] [ALPM-SCRIPTLET] ==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
[2025-05-25T23:24:42+1000] [ALPM] running '00-timeshift-autosnap.hook'...
[2025-05-25T23:24:42+1000] [ALPM-SCRIPTLET] ==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.

paclog is found in the pacutils package

So, maybe you also need to check if you have the /etc/timeshift-autosnap.conf file on your system. If so, make sure that the skipRsyncAutosnap line is set to true. This is my file which works without any issue (I do have timeshift installed and run a daily backup via cron):

scotty65's cat /etc/timeshift-autosnap.conf
cat /etc/timeshift-autosnap.conf
#
# /etc/timeshift-autosnap.conf
#

# skipAutosnap defines if timeshift-autosnap execution should be skipped.
# Default value is false.
skipAutosnap=false

# skipRsyncAutosnap defines if timeshift-autosnap execution should be skipped on filesystems other than btrfs.
# Default value is true.
skipRsyncAutosnap=true

# deleteSnapshots defines if old snapshots should be deleted.
# Default value is true.
deleteSnapshots=true

# maxSnapshots defines how much old snapshots script should left.
# Only positive whole numbers can be used.
# Default value is 3.
maxSnapshots=3

# updateGrub defines if grub entries should be auto-generated.
# If grub-btrfs package is not installed grub won't be generated.
# Default value is true.
updateGrub=true

# snapshotDescription defines value used to distinguish snapshots created using timeshift-autosnap
# Default value is "{timeshift-autosnap} {created before upgrade}".
snapshotDescription={timeshift-autosnap} {created before upgrade}
2 Likes

Want to add to the topic. Installed Manjaro just couple weeks ago (was on other distros for some time). I installed KDE flavour with minimal ISO (when you are downloading an ISO you can choose - you want Full system package with a lot of programs out of the box or you want the minimal one with just essentials)

I didn’t have Timeshift or Pacman’s hook for it installed. I installed them by myself, because I thought that they are useful in case of troubles. If you want minimal system - why didn’t you chose one? To install what you need and want later, so, you know, the system was exactly like you want?

Or you installed minimal ISO and somehow Timeshift was still there? Then it’s strange

4 Likes