You are not logged in.

#1 2023-08-28 15:24:51

helasraizam
Member
Registered: 2015-01-02
Posts: 7

Handling dependencies more efficiently when updating package name

When a package with dependencies changes names, the dependencies often recognize the new name as a valid replacement.  Is there a faster way of updating the package without uninstalling and reinstalling all of its dependencies, rebuilding packages only when necessary?  For example, to update openblas64 to blas64-openblas, I need to uninstall and reinstall gimp, hugin, octave, sagemath, etc.; the same is true of a python package like python-cchardet -> python-faust-cchardet on which calibre depends, whereas it doesn't seem like this would need a rebuild of calibre.  So is there a way to skip unnecessary rebuilds in this scenario, and is there a way to automate the uninstalling and reinstalling of these packages when it is necessary?

Offline

#2 2023-08-28 15:29:11

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,808

Re: Handling dependencies more efficiently when updating package name

You just install the new package. As long as it provides the same thing, there should be no issues and no unininstalling/rebuilding.

Offline

#3 2023-08-28 15:49:27

helasraizam
Member
Registered: 2015-01-02
Posts: 7

Re: Handling dependencies more efficiently when updating package name

Thanks Scimmia; you're right that there are no issues manually uninstalling/rebuilding, but for updates like blas->openblas, there are some 30 packages that I have to type out by hand to remove then reinstall, and I suspect that some of those wouldn't need to be rebuilt at all, like the python package example.  That means I have to type the thirty packages by hand, only to see that those also have dependencies, so I add those to the list, etc. - and this is just to update a single package - my question is whether there is a way at least to have this rebuilding done automatically, and preferably to skip packages that don't need to rebuilt in the first place?

Last edited by helasraizam (2023-08-28 16:04:08)

Offline

#4 2023-08-28 15:51:42

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,808

Re: Handling dependencies more efficiently when updating package name

*why* are you removing and reinstalling them in the first place?

Offline

#5 2023-08-28 16:13:24

helasraizam
Member
Registered: 2015-01-02
Posts: 7

Re: Handling dependencies more efficiently when updating package name

Use cases include if a package is renamed upstream (eg, python-cchardet -> python-faust-cchardet) or if I want to change a base package to an alternative implementation (eg, switching between blas/openblas)

Offline

#6 2023-08-28 16:15:09

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,808

Re: Handling dependencies more efficiently when updating package name

You still aren't getting what I'm saying. Install the new package. End of process. You DO NOT MANUALLY REMOVE the old one, pacman takes care of that.

Offline

#7 2023-08-28 18:45:16

helasraizam
Member
Registered: 2015-01-02
Posts: 7

Re: Handling dependencies more efficiently when updating package name

Thank you for clarifying.  It's not the old one I'm struggling to remove, it's its dependencies.  When I try installing the new package, it warns me about the conflicting packages.  I then choose to continue with the new package, and it complains that X packages depend on the old package, so the operation cannot be completed.  My workaround is to uninstall X packages, upgrade the package in question, then reinstall X packages.

For example, python-faust-cchardet and python-cchardet are in conflict.  I tell it to continue installing python-faust-cchardet, the newer package, then it complains that calibre depends on python-cchardet and refuses to continue.  So I have to uninstall calibre, then install python-faust-cchardet and tell it to continue installing, then reinstall calibre.  My issue is with the uninstall/reinstall of the dependency calibre, not with the old package python-ccharset.

Offline

#8 2023-08-28 18:59:51

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,924
Website

Re: Handling dependencies more efficiently when updating package name

The current calibre depends on python-faust-cchardet not python-cchardet.

The only way anything you've put in this thread could make any sense is if you are doing partial upgrades.  Don't do partial upgrades (edit: or perhaps using some other distros repos as noted below).  Upgrade your full system and the current calibre and the current cchardet implementation (which is python-faust-cchardet) will be installed together seemlessly (and the old ones removed).

This is the job of the package manager.  And you are only having problems because you explicitly broke the package management system.

Last edited by Trilby (2023-08-30 18:29:42)


"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman

Offline

#9 2023-08-28 23:28:44

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,808

Re: Handling dependencies more efficiently when updating package name

Not only that, but python-faust-cchardet provides python-cchardet, so the error you mentioned simply can't happen with Arch packages. Makes me wonder just what you're running.

At this point, I think we need to see the issue happening while using pacman's --debug flag.

Last edited by Scimmia (2023-08-28 23:36:27)

Offline

Board footer

Powered by FluxBB