[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#545103: bash 4.0-4 is not installable



Luk Claes wrote:
Gary Dale wrote:
Package: bash
Version: 3.2-6
Severity: grave
Justification: renders package unusable

There is an interdependency between bash and dash that prevents bash
from being upgraded. Here is the output when I try:
Preparing to replace bash 3.2-6 (using
.../archives/bash_4.0-4_amd64.deb) ...
The bash upgrade discovered that your /bin/sh link points to dash.
As bash for Debian is destined to provide a working /bin/sh (pointing to
/bin/bash) your link will be overwritten by a default link.

This means that you manually changed the link somehow...

No I didn't. I do recall a relatively recent dist-upgrade mentioning something about dash, but bash seems to depend on dash so I'm guessing that it was a normal update. Changing the link to point to bash doesn't resolve the problem.
If you don't want further upgrades to overwrite your customization,
please
read /usr/share/doc/bash/README.Debian.gz for a more permanent solution.

You could read the documentation to prevent it from failing.
The message talks about keeping my "customization", not about resolving the dependency problem. Again, I have no interest in overriding Debian's choices in this matter.

[Press RETURN to continue]

Unpacking replacement bash ...
dpkg: error processing /var/cache/apt/archives/bash_4.0-4_amd64.deb
(--unpack):
trying to overwrite `/bin/sh', which is also in package dash
<<<<<<<<<<<<<<<<<

Matthias: I think to prevent bug reports like this that bash should stop
shipping the /bin/sh link. dpkg maintainers Cc-ed to confirm that the
current way we divert should still work when the link would not be
shipped by bash anymore and would solve issues like this.
Since bash depends on dash, it seems to me that a better way would be to have bash override the link to dash. In other words, it should do what the message says "As bash for Debian is destined to provide a working /bin/sh (pointing to /bin/bash) your link will be overwritten by a default link."

However, I'm guessing that the reason dash is installed is because it is so much smaller than bash but that other packages need capabilities that bash provides. If that is the case and you really want to reduce the memory footprint by only loading bash when required, perhaps dash should take over the duty of invoking bash when it needs to (if it doesn't already). In that case your suggestion of removing the link from the bash package makes a lot of sense.

This would seem to make bash a requirement for dash and not the other way around.

Cheers

Luk



Reply to: