50

I don't want to install any i386 package. Is there any way to disable functionality?

1

6 Answers 6

64

Since 12.10

dpkg --remove-architecture i386

to get rid of multiarch on an amd64 installation. In case you will have message, like:

dpkg: error: cannot remove architecture 'i386' currently in use by the database

you should remove all i386 packages before:

dpkg -l | grep i386
2
  • 18
    With the regex feature of apt-get, you can apt-get remove .*:i386
    – JB.
    Jul 29, 2013 at 8:15
  • 5
    or: sudo aptitude purge '~i ~ri386' Apr 15, 2014 at 15:53
17

11.10 & 12.04

Multiarch support is enabled by the file /etc/dpkg/dpkg.cfg.d/multiarch

If you rename this file and run an update in a terminal you will notice that the i386 repo's are no longer visible.

Thus

sudo mv /etc/dpkg/dpkg.cfg.d/multiarch /etc/dpkg/dpkg.cfg.d/multiarch.backup
0
14

Based on both Ben's answer and user41220's answer I did the following:

sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`

Then

sudo dpkg --remove-architecture i386

and that worked just fine for me.

1
  • 1
    I see no additional information than existing answers.
    – Patrick
    Jan 23, 2014 at 17:38
13

First of all, remove all i386-packages like so:

sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`

Please note: Skype, Steam, teamviewer etc. might be purged as well.

Then proceed with fossfreedoms advices.

1
  • This is true for more recent oses. If you put this in as an answer, I'd vote for it (for its simplicity). May 4, 2020 at 8:42
1

Simpler alternative to remove all packages of that architecture before removing it (source; apt man page):

sudo apt purge .*:i386

If necessary (check with dpkg --print-foreign-architectures) you can remove the architecture from dpkg:

sudo dpkg --remove-architecture i386
0

For those who want to disable multiarch support from the get-go, here's a one liner that can be used in (init) scripts...

[ ! $(dpkg --get-selections | grep -q i386) ] && dpkg --remove-architecture i386

This would remove i386 architechture as expected on the first run. On consecutive runs, it'd show the following warning...

dpkg: warning: cannot remove non-foreign architecture 'i386'

This one-liner could be useful in most cloud servers where there are no i386 packages are installed (by default). While this is a Ubuntu forum, here is some detailed info on multiarch from Debian... https://wiki.debian.org/Multiarch/HOWTO .

Other answers recommended dpkg -l to get the list of packages and then grep the result. In my experience, dpkg -l has failed to show some packages (with i386 arch), but dpkg --get-selections showed them clearly marking them as package_name:i386. So, if we want to remove i386 packages previous installed, then to remove them, here's actual command that works...

apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}'`

You must log in to answer this question.