Вопрос или проблема
Итак, у меня это установлено на моем amd64 Ubuntu 24.10
$ dpkg --print-foreign-architectures
i386
И эти пакеты:
Я бы хотел всё это удалить, иногда использую wine и игры Steam, но не вижу признаков, что поддержка i386 для этого нужна?
Подозреваю, что это многолетние остатки от какого-то старого ПО…
Пожалуйста, скажите, как это удалить – если это не кажется глупой идеей 🙂
$ dpkg -l | grep i386
ii gcc-14-base:i386 14.2.0-4ubuntu2 i386 GCC, the GNU Compiler Collection (base package)
ii glib-networking:i386 2.80.0-1build1 i386 network-related giomodules for GLib
ii gstreamer1.0-plugins-base:i386 1.24.8-1ubuntu0.1 i386 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-good:i386 1.24.8-1ubuntu1.1 i386 GStreamer plugins from the "good" set
ii gstreamer1.0-x:i386 1.24.8-1ubuntu0.1 i386 GStreamer plugins for X11 and Pango
ii i965-va-driver:i386 2.4.1+dfsg1-1build2 i386 VAAPI driver for Intel G45 & HD Graphics family
ii intel-media-va-driver:i386 24.3.4+dfsg1-0ubuntu1 i386 VAAPI driver for the Intel GEN8+ Graphics family
ii libaa1:i386 1.4p5-51.1 i386 ASCII art library
ii libaom3:i386 3.9.1-1 i386 AV1 Video Codec Library
ii libapparmor1:i386 4.1.0~beta1-0ubuntu3 i386 changehat AppArmor library
ii libasound2-plugins:i386 1.2.12-2 i386 ALSA library additional plugins
ii libasound2t64:i386 1.2.12-1 i386 shared library for ALSA applications
ii libasyncns0:i386 0.8-6build4 i386 Asynchronous name service query library
ii libatk-bridge2.0-0t64:i386 2.54.0-1 i386 AT-SPI 2 toolkit bridge - shared library
ii libatk1.0-0t64:i386 2.54.0-1 i386 ATK accessibility toolkit
ii libatomic1:i386 14.2.0-4ubuntu2 i386 support library providing __atomic built-in functions
ii libatspi2.0-0t64:i386 2.54.0-1 i386 Assistive Technology Service Provider Interface - shared library
ii libavahi-client3:i386 0.8-13ubuntu6 i386 Avahi client library
ii libavahi-common-data:i386 0.8-13ubuntu6 i386 Avahi common data files
ii libavahi-common3:i386 0.8-13ubuntu6 i386 Avahi common library
ii libavc1394-0:i386 0.5.4-5build3 i386 control IEEE 1394 audio/video devices
ii libavcodec61:i386 7:7.0.2-3ubuntu1 i386 FFmpeg library with de/encoders for audio/video codecs - runtime files
ii libavutil59:i386 7:7.0.2-3ubuntu1 i386 FFmpeg library with functions for simplifying programming - runtime files
ii libblkid1:i386 2.40.2-1ubuntu1 i386 block device ID library
ii libbrotli1:i386 1.1.0-2build2 i386 library implementing brotli encoder and decoder (shared libraries)
ii libbsd0:i386 0.12.2-1 i386 utility functions from BSD systems - shared library
ii libbz2-1.0:i386 1.0.8-6 i386 high-quality block-sorting file compressor library - runtime
ii libc6:i386 2.40-1ubuntu3 i386 GNU C Library: Shared libraries
ii libcaca0:i386 0.99.beta20-5 i386 colour ASCII art library
ii libcairo-gobject2:i386 1.18.2-2 i386 Cairo 2D vector graphics library (GObject library)
ii libcairo2:i386 1.18.2-2 i386 Cairo 2D vector graphics library
ii libcap2:i386 1:2.66-5ubuntu3 i386 POSIX 1003.1e capabilities (library)
ii libcapi20-3t64:i386 1:3.27-3.2 i386 ISDN utilities - CAPI support libraries
ii libcdparanoia0:i386 3.10.2+debian-14ubuntu1 i386 audio extraction tool for sampling CDs (library)
ii libcodec2-1.2:i386 1.2.0-2build1 i386 Codec2 runtime library
ii libcolord2:i386 1.4.7-1build2 i386 system service to manage device colour profiles -- runtime
ii libcom-err2:i386 1.47.1-1ubuntu1 i386 common error description library
ii libcrypt1:i386 1:4.4.36-4build1 i386 libcrypt shared library
ii libcups2t64:i386 2.4.10-1ubuntu2 i386 Common UNIX Printing System(tm) - Core library
ii libcurl3t64-gnutls:i386 8.9.1-2ubuntu2.2 i386 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii libcurl4t64:i386 8.9.1-2ubuntu2.2 i386 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libdatrie1:i386 0.2.13-3build1 i386 Double-array trie library
ii libdav1d7:i386 1.4.3-1 i386 fast and small AV1 video stream decoder (shared library)
ii libdb5.3t64:i386 5.3.28+dfsg2-7ubuntu1 i386 Berkeley v5.3 Database Libraries [runtime]
ii libdbus-1-3:i386 1.14.10-4ubuntu5 i386 simple interprocess messaging system (library)
ii libde265-0:i386 1.0.15-1build4 i386 Open H.265 video codec implementation
ii libdecor-0-0:i386 0.2.2-1build2 i386 client-side window decoration library
ii libdecor-0-plugin-1-gtk:i386 0.2.2-1build2 i386 libdecor decoration plugin using GTK
ii libdeflate0:i386 1.21-1 i386 fast, whole-buffer DEFLATE-based compression and decompression
ii libdrm-amdgpu1:i386 2.4.122-1 i386 Userspace interface to amdgpu-specific kernel DRM services -- runtime
ii libdrm-intel1:i386 2.4.122-1 i386 Userspace interface to intel-specific kernel DRM services -- runtime
ii libdrm-radeon1:i386 2.4.122-1 i386 Userspace interface to radeon-specific kernel DRM services -- runtime
ii libdrm2:i386 2.4.122-1 i386 Userspace interface to kernel DRM services -- runtime
ii libduktape207:i386 2.7.0+tests-0ubuntu3 i386 embeddable Javascript engine, library
ii libdv4t64:i386 1.0.0-17.1build1 i386 software library for DV format digital video (runtime lib)
ii libdw1t64:i386 0.191-2 i386 library that provides access to the DWARF debug information
ii libedit2:i386 3.1-20240517-1 i386 BSD editline and history libraries
ii libegl-mesa0:i386 24.2.3-1ubuntu1 i386 free implementation of the EGL API -- Mesa vendor library
ii libegl1:i386 1.7.0-1build1 i386 Vendor neutral GL dispatch library -- EGL support
ii libelf1t64:i386 0.191-2 i386 library to read and write ELF files
ii libepoxy0:i386 1.5.10-1build1 i386 OpenGL function pointer management library
ii libexif12:i386 0.6.24-1build2 i386 library to parse EXIF files
ii libexpat1:i386 2.6.2-2ubuntu0.1 i386 XML parsing C library - runtime library
ii libffi8:i386 3.4.6-1build1 i386 Foreign Function Interface library runtime
ii libflac12t64:i386 1.4.3+ds-2.1ubuntu2 i386 Free Lossless Audio Codec - runtime C library
ii libfontconfig1:i386 2.15.0-1.1ubuntu2 i386 generic font configuration library - runtime
ii libfreetype6:i386 2.13.3+dfsg-1 i386 FreeType 2 font engine, shared library files
ii libfribidi0:i386 1.0.15-1 i386 Free Implementation of the Unicode BiDi algorithm
ii libgbm1:i386 24.2.3-1ubuntu1 i386 generic buffer management API -- runtime
ii libgcc-s1:i386 14.2.0-4ubuntu2 i386 GCC support library
ii libgd3:i386 2.3.3-12ubuntu3 i386 GD Graphics Library
ii libgdk-pixbuf-2.0-0:i386 2.42.12+dfsg-1 i386 GDK Pixbuf library
ii libgl1:i386 1.7.0-1build1 i386 Vendor neutral GL dispatch library -- legacy GL support
ii libgl1-mesa-dri:i386 24.2.3-1ubuntu1 i386 free implementation of the OpenGL API -- DRI modules
ii libglapi-mesa:i386 24.2.3-1ubuntu1 i386 free implementation of the GL API -- shared library
ii libglib2.0-0t64:i386 2.82.1-0ubuntu1 i386 GLib library of C routines
ii libglvnd0:i386 1.7.0-1build1 i386 Vendor neutral GL dispatch library
ii libglx-mesa0:i386 24.2.3-1ubuntu1 i386 free implementation of the OpenGL API -- GLX vendor library
ii libglx0:i386 1.7.0-1build1 i386 Vendor neutral GL dispatch library -- GLX support
ii libgmp10:i386 2:6.3.0+dfsg-2ubuntu7 i386 Multiprecision arithmetic library
ii libgnutls30t64:i386 3.8.6-2ubuntu1 i386 GNU TLS library - main runtime library
ii libgomp1:i386 14.2.0-4ubuntu2 i386 GCC OpenMP (GOMP) support library
ii libgpg-error0:i386 1.50-4 i386 GnuPG development runtime library
ii libgphoto2-6t64:i386 2.5.31-3ubuntu1 i386 gphoto2 digital camera library
ii libgphoto2-port12t64:i386 2.5.31-3ubuntu1 i386 gphoto2 digital camera port library
ii libgpm2:i386 1.20.7-11 i386 General Purpose Mouse - shared library
ii libgraphite2-3:i386 1.3.14-2ubuntu1 i386 Font rendering engine for Complex Scripts -- library
ii libgsm1:i386 1.0.22-1build1 i386 Shared libraries for GSM speech compressor
ii libgssapi-krb5-2:i386 1.21.3-3 i386 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii libgstreamer-plugins-base1.0-0:i386 1.24.8-1ubuntu0.1 i386 GStreamer libraries from the "base" set
ii libgstreamer-plugins-good1.0-0:i386 1.24.8-1ubuntu1.1 i386 GStreamer development files for libraries from the "good" set
ii libgstreamer1.0-0:i386 1.24.8-1ubuntu0.1 i386 Core GStreamer libraries and elements
ii libgtk-3-0t64:i386 3.24.43-3ubuntu2 i386 GTK graphical user interface library
ii libgudev-1.0-0:i386 1:238-5ubuntu1 i386 GObject-based wrapper library for libudev
ii libharfbuzz0b:i386 9.0.0-1ubuntu0.1 i386 OpenType text shaping engine (shared library)
ii libheif-plugin-aomdec:i386 1.18.1-2 i386 HEIF and AVIF file format decoder and encoder - aomdec plugin
ii libheif-plugin-aomenc:i386 1.18.1-2 i386 HEIF and AVIF file format decoder and encoder - aomenc plugin
ii libheif-plugin-libde265:i386 1.18.1-2 i386 HEIF and AVIF file format decoder and encoder - libde265 plugin
ii libheif1:i386 1.18.1-2 i386 HEIF and AVIF file format decoder and encoder - shared library
ii libhogweed6t64:i386 3.10-1 i386 low level cryptographic library (public-key cryptos)
ii libicu74:i386 74.2-1ubuntu4 i386 International Components for Unicode
ii libidn2-0:i386 2.3.7-2build2 i386 Internationalized domain names (IDNA2008/TR46) library
ii libiec61883-0:i386 1.2.0-6build1 i386 partial implementation of IEC 61883 (shared lib)
ii libigdgmm12:i386 22.5.2-0ubuntu1 i386 Intel Graphics Memory Management Library -- shared library
ii libimagequant0:i386 2.18.0-1build1 i386 palette quantization library
ii libjack-jackd2-0:i386 1.9.21~dfsg-3ubuntu3 i386 JACK Audio Connection Kit (libraries)
ii libjbig0:i386 2.1-6.1ubuntu2 i386 JBIGkit libraries
ii libjpeg-turbo8:i386 2.1.5-2ubuntu2 i386 libjpeg-turbo JPEG runtime library
ii libjpeg8:i386 8c-2ubuntu11 i386 Independent JPEG Group's JPEG runtime library (dependency package)
ii libk5crypto3:i386 1.21.3-3 i386 MIT Kerberos runtime libraries - Crypto Library
ii libkeyutils1:i386 1.6.3-3build1 i386 Linux Key Management Utilities (library)
ii libkrb5-3:i386 1.21.3-3 i386 MIT Kerberos runtime libraries
ii libkrb5support0:i386 1.21.3-3 i386 MIT Kerberos runtime libraries - Support library
ii liblcms2-2:i386 2.14-2build1 i386 Little CMS 2 color management library
ii libldap2:i386 2.6.8+dfsg-1~exp4ubuntu1 i386 OpenLDAP libraries
ii libllvm19:i386 1:19.1.1-1ubuntu1 i386 Modular compiler and toolchain technologies, runtime library
ii libltdl7:i386 2.4.7-7build1 i386 System independent dlopen wrapper for GNU libtool
ii liblzma5:i386 5.6.2-2 i386 XZ-format compression library
ii libmd0:i386 1.1.0-2build2 i386 message digest functions from BSD systems - shared library
ii libmount1:i386 2.40.2-1ubuntu1 i386 device mounting library
ii libmp3lame0:i386 3.100-6build1 i386 MP3 encoding library
ii libmpg123-0t64:i386 1.32.7-1ubuntu0.1 i386 MPEG layer 1/2/3 audio decoder (shared library)
ii libncurses6:i386 6.5-2 i386 shared libraries for terminal handling
ii libncursesw6:i386 6.5-2 i386 shared libraries for terminal handling (wide character support)
ii libnettle8t64:i386 3.10-1 i386 low level cryptographic library (symmetric and one-way cryptos)
ii libnghttp2-14:i386 1.62.1-2 i386 library implementing HTTP/2 protocol (shared library)
ii libnm0:i386 1.48.8-1ubuntu3 i386 GObject-based client library for NetworkManager
ii libnuma1:i386 2.0.18-1build1 i386 Libraries for controlling NUMA policy
ii libnvidia-compute-560:i386 560.35.03-0ubuntu5 i386 NVIDIA libcompute package
ii libnvidia-decode-560:i386 560.35.03-0ubuntu5 i386 NVIDIA Video Decoding runtime libraries
ii libnvidia-egl-wayland1:i386 1:1.1.15-1 i386 Wayland EGL External Platform library -- shared library
ii libnvidia-encode-560:i386 560.35.03-0ubuntu5 i386 NVENC Video Encoding runtime library
ii libnvidia-fbc1-560:i386 560.35.03-0ubuntu5 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-gl-560:i386 560.35.03-0ubuntu5 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libodbc2:i386 2.3.12-1ubuntu1 i386 ODBC Driver Manager library for Unix
ii libogg0:i386 1.3.5-3build1 i386 Ogg bitstream library
ii libopenjp2-7:i386 2.5.0-2ubuntu1.2 i386 JPEG 2000 image compression/decompression library
ii libopus0:i386 1.5.2-2 i386 Opus codec runtime library
ii liborc-0.4-0t64:i386 1:0.4.40-1 i386 Library of Optimized Inner Loops Runtime Compiler
ii libosmesa6:i386 24.2.3-1ubuntu1 i386 Mesa Off-screen rendering extension
ii libp11-kit0:i386 0.25.5-2ubuntu1 i386 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpango-1.0-0:i386 1.54.0+ds-2 i386 Layout and rendering of internationalized text
ii libpangocairo-1.0-0:i386 1.54.0+ds-2 i386 Layout and rendering of internationalized text
ii libpangoft2-1.0-0:i386 1.54.0+ds-2 i386 Layout and rendering of internationalized text
ii libpcap0.8t64:i386 1.10.5-1ubuntu1 i386 system interface for user-level packet capture
ii libpciaccess0:i386 0.17-3build1 i386 Generic PCI access library for X
ii libpcre2-8-0:i386 10.42-4ubuntu3 i386 New Perl Compatible Regular Expression Library- 8 bit runtime files
ii libpcsclite1:i386 2.3.0-1 i386 Middleware to access a smart card using PC/SC (library)
ii libpixman-1-0:i386 0.42.2-1build1 i386 pixel-manipulation library for X and cairo
ii libpng16-16t64:i386 1.6.44-1 i386 PNG library - runtime (version 1.6)
ii libproxy1v5:i386 0.5.8-1 i386 automatic proxy configuration management library (shared)
ii libpsl5t64:i386 0.21.2-1.1build1 i386 Library for Public Suffix List (shared libraries)
ii libpulse0:i386 1:16.1+dfsg1-5.1ubuntu1.1 i386 PulseAudio client libraries
ii libraqm0:i386 0.10.1-1build1 i386 Library for complex text layout
ii libraw1394-11:i386 2.1.2-2build3 i386 library for direct access to IEEE 1394 bus (aka FireWire)
ii librsvg2-2:i386 2.59.1+dfsg-1 i386 SAX-based renderer library for SVG files (runtime)
ii librsvg2-common:i386 2.59.1+dfsg-1 i386 SAX-based renderer library for SVG files (extra runtime)
ii librtmp1:i386 2.4+20151223.gitfa8646d.1-2build7 i386 toolkit for RTMP streams (shared library)
ii libsamplerate0:i386 0.2.2-4build1 i386 Audio sample rate conversion library
ii libsasl2-2:i386 2.1.28+dfsg1-8 i386 Cyrus SASL - authentication abstraction library
ii libsasl2-modules:i386 2.1.28+dfsg1-8 i386 Cyrus SASL - pluggable authentication modules
ii libsasl2-modules-db:i386 2.1.28+dfsg1-8 i386 Cyrus SASL - pluggable authentication modules (DB)
ii libsdl2-2.0-0:i386 2.30.6+dfsg-1 i386 Simple DirectMedia Layer
……
будьте осторожны при удалении поддержки 32-бит, все еще много мест, в которых 32-битный код продолжает скрываться! яркий пример – драйверы принтеров Brother и, я уверен, существует еще несколько других.
.
Ответ или решение
Поддержка архитектуры i386 в современных системах вызывает множество вопросов. Вопрос, который вы подняли — "Нормально ли и полезно ли это, или это что-то устаревшее, что я продолжаю тащить?" — действительно актуален и требует вдумчивого подхода. Давайте разберемся более подробно.
Теория
Архитектура i386, или 32-битная архитектура, считается устаревшей в эпоху доминирования 64-битных систем, таких как amd64. Однако поддержка i386 все же остается важным элементом современной экосистемы Linux и, в частности, Ubuntu. Это связано с рядом причин, таких как:
- Обратная совместимость: Многие приложения и библиотеки, особенно созданные в прошлом, требуют 32-битной архитектуры.
- Некоторые современные приложения: Хотя большинство современных приложений обновились до 64-битных версий, некоторые, такие как старые драйверы или специфическое ПО (например, Brother принтеры), все еще зависят от 32-битной версии.
- Игровая индустрия и эмуляторы: Для таких платформ, как Steam и Wine, 32-битная поддержка может быть критически важной. Wine, предоставляющий возможность запускать Windows-программы на Linux, часто использует 32-битные библиотеки для программ, написанных под 32-битные версии ОС Windows.
Пример
Ваш список установленных пакетов i386 содержит более 100 различных библиотек и утилит. Присутствие таких пакетов, как libc6:i386
, libgcc-s1:i386
и других, указывает на то, что они могут быть зависимостями для программ, которые требуют использования 32-битной архитектуры. Например, Wine, который иногда используется для запуска старых Windows-приложений, часто использует 32-битные библиотеки для корректного функционирования. Также не все игры на Steam переходят на 64-битную архитектуру.
Применение
Теперь, когда мы понимаем теоретическую часть, давайте рассмотрим, какие шаги можно предпринять, если вы все-таки решите избавиться от поддержки i386:
-
Проверьте зависимости: Прежде чем удалять 32-битные пакеты, убедитесь, что они не требуются установленным у вас приложениям. Это можно сделать с помощью утилиты
apt
илиsynaptic
. -
Удаление поддержки архітектуры: Если вы решили, что i386 поддержку можно убрать, следуйте этим шагам:
- Удалите все 32-битные пакеты:
sudo apt-get remove '^.*:i386'
- Удалите поддержку архитектуры в системе:
sudo dpkg --remove-architecture i386
- Удалите все 32-битные пакеты:
-
Тестирование: После удаления убедитесь, что все используемые вами приложения продолжают работать корректно. Обратите особое внимание на те приложения, которые могли использовать 32-битные зависимости.
-
Обратное действие: Если после удаления i386 начались проблемы, вы всегда можете вернуть поддержку, повторно добавив архитектуру:
sudo dpkg --add-architecture i386 sudo apt-get update
Таким образом, принимая решение об удалении поддержки i386, важно трезво оценить ваши персональные и системные потребности. Технически возможно функционировать без i386, но это может ограничить использование определенных устройств и программного обеспечения. Особенно это может отразиться на области игр и работы с мультимедийными файлами. Если ваше программное обеспечение и оборудование готовы к отказу от поддержки 32-битных приложений, тогда можно рассматривать удаление, но в противном случае лучше оставаться на стороне безопасности и совместимости.