On 2016-05-22 at 23:53, Gene Heskett wrote: > Greetings all; > > I apparently play with the amd64 architecture in my dpkg architecture > list long enough to screw it up, but not fatally so far. > > I have a libexpat1:amd64 files installed, but so far I have been > unsuccessful at getting it replaced with the next version of that > file in i386 format, which matches the install.
Why would you need to _replace_ one with the other? It should be entirely possible to have both installed side-by-side; I do. > My last attempt generated this failure, so I need a dpkg guru again. > ========================== > gene@coyote:/var/cache/apt/archives$ sudo > dpkg -i --force-remove-reinstreq libexpat1_2.1.0-1+deb7u3_i386.deb > libexpat1-dev_2.1.0-1+deb7u3_i386.deb > (Reading database ... 421567 files and directories currently installed.) > Preparing to replace libexpat1:i386 2.1.0-1+deb7u3 (using > libexpat1_2.1.0-1+deb7u3_i386.deb) ... > Unpacking replacement libexpat1:i386 ... > Preparing to replace libexpat1-dev 2.1.0-1+deb7u3 (using > libexpat1-dev_2.1.0-1+deb7u3_i386.deb) ... > Unpacking replacement libexpat1-dev ... > dpkg: error processing libexpat1:i386 (--install): > package libexpat1:i386 2.1.0-1+deb7u3 cannot be configured because > libexpat1:amd64 is at a different version (2.1.0-1+deb7u2) > dpkg: dependency problems prevent configuration of libexpat1-dev: > libexpat1-dev depends on libexpat1 (= 2.1.0-1+deb7u3); however: > Package libexpat1:i386 is not configured yet. > > dpkg: error processing libexpat1-dev (--install): > dependency problems - leaving unconfigured > Errors were encountered while processing: > libexpat1:i386 > libexpat1-dev > gene@coyote:/var/cache/apt/archives$ > ================================= > I haven't tried removing the -dev package by itself yet, but that just > failed too. Failed how? At a guess, I'd imagine it might have failed because libexpat1:i386 is in a bad state. If so, removing libexpat1:i386 first should let removing the -dev package work as expected. > How can I force dpkg to replace the erroneously installed amd64 > version without its destroying the rest of the system because of the > many dependencies would cause it to nuke at least another 50 > packages? Does 'apt-get install libexpat1:i386 libexpat1:amd64-' not do the job? If not, I see two options offhand: * Obtain a .deb file for libexpat1:i386 which has a version matching the version of libexpat1:amd64 which you already have installed, and try installing that. * Install a version of libexpat1:amd64 which matches the version of the libexpat1:i386 .deb you have, install that, then try your existing dpkg command again. In either case, if it works, you may be able to remove the :amd64 version later on with a separate command. (Installing an :i386 version of a library does not replace the :amd64 version of the same library, unless the library is not multiarch-ified, which this one is; it just installs the second library in parallel to the first one.) > Where is the dpkg unconditional "--force-replace" option IOW? I don't think there is one, not on as universal a scale as you're apparently asking for. Multi-arch libraries have to be kept at exactly the same version, or you're just asking for trouble; it wouldn't surprise me at all if dpkg simply does not support attempting to install versions which don't match. -- The Wanderer The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. -- George Bernard Shaw
signature.asc
Description: OpenPGP digital signature