Okay so my old 32-bit notebook got old and died.
I preserved the old HDD (with bootable Debian OS).
I bought a newer 64-bit notebook and gave it the old HDD.
It worked perfectly for a long time and continues to do so.
The issue I'm having is with sudo apt-get dist-upgrade:

user@Debian:~$ sudo apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc-dev-bin : Depends: libc6 (< 2.14) but 2.19-18 is installed
 libc6-dev : Depends: libc6 (= 2.13-38+deb7u8) but 2.19-18 is installed
 libc6-i686 : PreDepends: libc6 (= 2.13-38+deb7u8) but 2.19-18 is installed
 locales : Depends: libc-bin (> 2.19) but 2.13-38+deb7u8 is installed
E: Unmet dependencies. Try using -f.  

Running sudo apt-get -f install returns similar errors.
I feel like these errors must stem from the change in architecture.
How can I specify to use i386 or amd64 packages instead of i686?

  • The posted answer is correct. But what was the goal in your desire to save the old hard drive? Data? Apps? Both? Ease of getting back up and running? Because a clean OS install is the only way to fix this issue. but what you save from the old effort is important to. – Giacomo1968 Sep 9 '15 at 2:44

I don't think your problems are a result of your notebook change. You still have a i386 Debian on an 64bit notebook - which is ok. There should be no problems because of this.

Your only problem is that you are upgrading from wheezy to jessie and some dependencies don't resolve. That happens and it is no big problem.

Remove those few offending packages, then upgrade. If you really need them, install them later again.

libc-dev-bin and libc6-dev are development binaries, libraries and header files. You need them to compile packages, you certainly don't need them during the upgrade.

locales will probably upgrade without problems once you removed the others.

libc6-i686 is not another architecture - it is a part of the i386, but these libraries are optimized for i686 machines. You can remove them without problems.

So remove libc-dev-bin,libc6-dev and libc6-i686 and try to upgrade again - it should probably work.

| improve this answer | |
  • This is the type of answer I was looking for. How would you recommend removing the offending files? – voices Sep 21 '15 at 6:29
  • Also what do you mean i686 is not another architecture? It's a completely different chip as far as I'm aware. I never really understood these designations in terms of software. – voices Sep 21 '15 at 6:31
  • Remove those files using sudo apt-get remove libc-dev-bin libc6-dev libc6-i686 If some other packages depend on them (perhaps another -dev-Package) remove them too. Then upgrade sudo apt-get dist-upgrade – Thomas Weinbrenner Sep 21 '15 at 13:53
  • An i686 is an 6th generation processor of the x86 family. It is a 32bit processor, so if you want to use it with Debian, you have to use Debian i386 architecture. They just had a special version of libc optimized for i686 processors. – Thomas Weinbrenner Sep 21 '15 at 13:56

apt-get will always download the correct version for your installed OS. You can’t upgrade from 32-bit to 64-bit, you need to do a clean install. Backup your /home folder and do a clean install then copy your /home folder back.

| improve this answer | |
  • While I agree with the overall spirit of this answer—32-bit OS on a 64-bit system means wipe and reinstall—there might be more installed on the old system than just the contents of the /home directory. – Giacomo1968 Sep 9 '15 at 2:42
  • 1
    Indeed, but going from 32-bit to 64-bit would also require reinstalling apps as well. A well maintained and operated system will keep all critical data in the users home directory... I assume this is a single user system so most other data would not be very relevant, just annoying to set back up. – acejavelin Sep 9 '15 at 4:11

As Thomas said, the upgrade issues aren't related to your notebook change (although I would personally choose to crossgrade, that's for people who are comfortable with debian administration).

You can deal with upgrade errors by switching to aptitude. aptitude will come up with many solutions to safely upgrade. Replace apt-get invocations with aptitude ones:

sudo aptitude dist-upgrade

If the first solution removes many packages, type n to skip it, until you find one that only removes a handful of -dev packages.

| improve this answer | |

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.