I have a working OS that runs 64 bit kernel but I want to use 32 bit versions of most packages because of limited memory on the machine. I need to keep some 64 bit drivers though as there is no 32 bit replacement.

I made the transition from full 64 bit system, but aptitude complains that essential packages are broken. It is likely that 32 bit crossgrade was requested but could not be fully completed. How can I keep the packages that I have already working?

For example, bash is requested (implied i386) and bash:amd64 is installed, works but aptitude thinks it's broken while dpkg -l seems OK.

dpkg -l | grep bash   
ii  bash:amd64           4.4-5                  amd64

Should I change the architecture back to amd64 and install i386 versions of non-essentials instead?

  • Out of curiosity, what is the difference in memory allocation between e. g. the 32- and 64-bit versions of bash? – DopeGhoti Jan 26 '18 at 22:27
  • 2
    With any sizable program the compiled code containing 64bit instructions are minuscule in comparison to the in memory data structures the program creates. Further there are other misnomers with 64bit. You will probably save 200K by program/library doing this on average. So for a whole system maybe 100-300MB? – jdwolf Jan 26 '18 at 22:37
  • bash was just one of essential packages that prevented full crossgrade. In my case, savings are roughly around 20% for the ones I care about. YMMV. – sevo Jan 26 '18 at 22:40
  • 1
    Don't you want to use the x32 Debian port instead? – Ferenc Wágner Jan 28 '18 at 8:07

The system’s main architecture is the architecture of the dpkg package. This is also the default architecture for newly-installed packages, which I’m guessing is what you’re interested in.

As you’ve found out, apt ends up resolving dependencies in such a way that all essential packages need to be those matching the main architecture.

To resolve this situation while keeping i386 as your main architecture, you’ll have to manually install all i386 essential packages. You might be able to get apt to help you by switching back to amd64 temporarily; then aptitude search '~i~E' will list all essential packages and you can manipulate that to download them all. If you already have some i386 essential packages installed, that might not work and you’ll have to download everything manually...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.