Closed cadr10 closed 5 months ago
You shouldn't need to add dependencies to decman.packages
, only the packages you need explicitly installed. So you would add the base
package which would cause licenses
to be installed as a dependency.
I suspect the reason decman is trying to remove the packages licences
or lsb-release
is because they are marked as explicitly installed, but you haven't added them to decman packages. Can you verify if this is the case by running the command pacman -Qi licenses lsb-release
and checking the install reasons? You can change the install reason to a dependency by running pacman -D --asdeps licenses lsb-release
as root.
Decman tries to remove all explicitly installed packages not listed in decman.packages
(or decman.ignored_packages
). I thought it would be the best since that way your system should always equal to your configuration.
Sorry for the delayed response, I live in one of the areas most affected by the floods in Brazil.
I see what is wrong and it's not decmans fault, but rather how packages were installed. I boot up a clean Cachy OS (which IMO is a reasonable arch based distro) and right away installed decman, without doing anything on the VM. I don't know if I am mistaken, but for example, I have git
under decman.packages, but perl, a dependency of git, is installed explicitly, by the fresh install. This is something that will happen and it's not on decman's fault. The user or distro will have packages installed explicitly that will break others when removed.
What I will eventually do for my config is check installed dependencies of decman.packages and add to ignored.packages.
Cachy OS might be doing something that is marking packages as explicitly installed.
Very understandable. I hope you are doing well.
I wouldn't recommend putting dependencies to ignored package. Instead I would try marking them as dependencies. Otherwise the packages may remain on your system even if you remove the package that requires them.
But if thats not an option for Cachy OS, then your solution is fine, but it may require more manual operations.
Regardless, since this is not an issue with decman, I will close this issue.
Hi. First of all, thanks for making decman. The way it works and the modules feature makes it similar to a .nix file.
Issue: Decman will try to remove dependencies of packages that will be installed later. Example: it will try to remove the package
licenses
package required bybase
. Another one: it will try to removelsb-release
required bysteam
. These packages are under decman.packages in my config.IMO, putting the dependencies manually under decman.packages makes it prone to error, installing unnecessary packages and not installing future added dependencies, as features may be added to an application. Uninstalling a package to later install it seems wrong too.
It's counter intuitive needing to list all packages, including the very ones the makes a Arch Linux system, such as
base
and its dependencies.Earlier I've come with the solution of looping through decman.packages and add the required dependencies to it. But, I don't think this is ideal, as decman is trying to remove system required packages. Wouldn't be better to uninstall packages that won't break the system then remove orphaned packages, after decman installs from decman.packages?
I don't know if I am using decman the right way. What I am trying to achieve is get my system running and do system updates with it.