Closed kinleyd closed 4 years ago
Thanks for submitting this. God knows home many spelling mistakes are in this repo LOL
There were a number of packages reported as not found at time of creating a restore point. What does it mean? The packages are installed, so pacback didn't find older versions in the older packages folder (the \cache\pkg folder in Arch)?
Yes basically, but its a little more complicated than that. So let's say you install the package tree
from core. All 'official' packages, meaning packages in the core, extra, and community repos, must be packaged using the official formatting guides defined here. This is basically the universal standard for compiling a package into a .pkg.tar.zst
.
You create a package using the something called a 'PKGBUILD' file and a utility called makepkg
which uses the information in the PKGBUILD file to generate a .pkg.tar.zst
. When you install tree
, pacman downloads the tree-1.8.0-2-x86_64.pkg.tar.zst
package and places it in /var/cache/pacman/pkg/
. 99% of the time pacback will find any package you have installed from the standard repos because of this standard. (1% of time they get removed by accident or something)
Packages you install from the AUR are way more hit or miss though. If you look at the bottom of the page you'll see this warning. 'AUR packages are user produced content. Any use of the provided files is at your own risk.' This is very true and there is tons of garbage on the AUR and a lot of times, packagers(like myself) make mistakes or don't follow standards.
Personally I am extremely careful to follow the guidelines and make sure my packages follow the standard convention. When you install pacback using yay, yay downloads the 'PKGBUILD' from the AUR then builds the package using makepkg
in your user cache, (/home/kinleyd/.cache/yay/pacback), then installs it with pacman -U
. This means for every package version I release, there is a one to one correspondence in version and 'packback_version.pkg.tar.zst' on the file system. This is how packages should be created and installed on the system.
The issue is many AUR packages don't follow this standard and use the build package as basically a way to download and deploy install scripts that just copy the files in place, without ever using makepkg
to generate a real .pkg.tar.zst
. In this case when pacback looks in '/home/kinleyd/.cache/yay/somebadpkg' it can't find a real package to store or restore.
Because of this, all pacback can do is just let you know that it can't find some package version that has been changed on your system. Additionally, in some cases, these packages will be cleaned since they aren't essential to keep on your system.
I apologize for the long-winded answer but packaging standards are super lengthy and unfortunately not consistent in places.
Hey, thanks for the detailed and helpful explanation. Yes, many/most of the packages listed there were from the AUR, so that makes sense.
Regards,
Minor report:
Spelling of 'were' inadvertently posted as 'where' in error message during full restore point creation:
Building Full Restore Point 03... The Following Packages Where NOT Found!
And follow on question:
There were a number of packages reported as not found at time of creating a restore point. What does it mean? The packages are installed, so pacback didn't find older versions in the older packages folder (the \cache\pkg folder in Arch)?