I don't want to install any i386 package. Is there any way to disable functionality?
-
1[How to remove all i386 packages from Ubuntu 64bit?](http://askubuntu.com/questions/113301/how-to-remove-all-i386-packages-from-ubuntu-64bit) – bain Jul 23 '14 at 12:30
6 Answers
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
- 14,308
- 4
- 74
- 117
- 669
- 5
- 4
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
- 171,546
- 47
- 376
- 404
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.
- 291
- 2
- 6
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.
- 427
- 4
- 16
-
This is true for more recent oses. If you put this in as an answer, I'd vote for it (for its simplicity). – Benjamin Marwell May 04 '20 at 08:42
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
- 14,308
- 4
- 74
- 117
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}'`
- 125
- 7