Comments (2)
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.
from pacback.
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,
from pacback.
Related Issues (20)
- Root is asked for really too many things HOT 2
- Bad offered packages version order HOT 4
- Multiple packages installation should happen together HOT 3
- --rollback features request HOT 9
- KeyboardInterrupt error is not handled nicely HOT 3
- Automatic sudo is not handled correctly HOT 5
- Add option to tag/label restore points HOT 2
- Using pacback -pkg A B fails when A depends on B and vice versa HOT 1
- Allow install hook to add auto-incrementing hooks HOT 6
- No option for `downgrade_pkg` argument HOT 2
- ModuleNotFoundError: No module named 'rich' HOT 5
- pacback already has an active session running HOT 8
- Pacback Already Has An Active Session Running. HOT 12
- Problems with big rollbacks HOT 4
- Popen Error in `utils.reboot_check()` HOT 2
- What is the difference between Restore Point and Snapback? HOT 4
- Pacback unable to find dhclient package (due to funky version string?) HOT 2
- No snapshots being made HOT 6
- Help -h page formatting make it difficult to read
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pacback.