Sven Joachim wrote: > On 2016-06-24 23:01 -0700, Josh Triplett wrote: > > Some packages, if installed on any architecture, must be installed for > > every enabled architecture. Most notably, an NSS or PAM module package, > > if enabled in /etc/nsswitch.conf or /etc/pam.d respectively, must exist > > for every enabled architecture to avoid breaking programs for that > > architecture. > > > > As one possible solution for this problem (but not an ideal one, just a > > thought experiment), dpkg could support a new value for "Multi-Arch", > > "Multi-Arch: every". This value would imply "Multi-Arch: same", but if > > installed, would additionally cause dpkg to act the same way it does for > > Essential packages: install the package when enabling the architecture. > > This is not at all what dpkg does, the Essential flag only means that > dpkg will not remove the package in question, unless given the > --force-remove-essential switch.
It's been a while since I'd set up "dpkg --add-architecture i386" on a new system, so I'd misremembered. I had thought that doing so (or subsequently installing an i386 package) would force the installation of Essential packages for i386 for any package that was "Multi-Arch: same". Apparently not. > > (And when installing the package, dpkg would need to require installing > > it for every supported architecture; dpkg could refuse to configure the > > package if any enabled architecture doesn't have it unpacked.) > > One problem here is that dpkg does not even know which packages are > available. Another one: should "dpkg --add-architecture" automatically > deconfigure any such "Multi-Arch: every" package? > > I think such problems are better solved in apt: apt-get dist-upgrade > already reinstalls every Essential package, the same way it could ensure > that NSS or PAM modules are pulled in for every enabled architecture. That sounds quite reasonable to me. The question then becomes how apt can know what packages it must install for every enabled architecture if installed for any architecture. - Josh Triplett