Поддержка i386 – это нормально/полезно или что-то устаревшее, что я тяну за собой?

Вопрос или проблема

Итак, у меня это установлено на моем 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. Это связано с рядом причин, таких как:

  1. Обратная совместимость: Многие приложения и библиотеки, особенно созданные в прошлом, требуют 32-битной архитектуры.
  2. Некоторые современные приложения: Хотя большинство современных приложений обновились до 64-битных версий, некоторые, такие как старые драйверы или специфическое ПО (например, Brother принтеры), все еще зависят от 32-битной версии.
  3. Игровая индустрия и эмуляторы: Для таких платформ, как Steam и Wine, 32-битная поддержка может быть критически важной. Wine, предоставляющий возможность запускать Windows-программы на Linux, часто использует 32-битные библиотеки для программ, написанных под 32-битные версии ОС Windows.

Пример

Ваш список установленных пакетов i386 содержит более 100 различных библиотек и утилит. Присутствие таких пакетов, как libc6:i386, libgcc-s1:i386 и других, указывает на то, что они могут быть зависимостями для программ, которые требуют использования 32-битной архитектуры. Например, Wine, который иногда используется для запуска старых Windows-приложений, часто использует 32-битные библиотеки для корректного функционирования. Также не все игры на Steam переходят на 64-битную архитектуру.

Применение

Теперь, когда мы понимаем теоретическую часть, давайте рассмотрим, какие шаги можно предпринять, если вы все-таки решите избавиться от поддержки i386:

  1. Проверьте зависимости: Прежде чем удалять 32-битные пакеты, убедитесь, что они не требуются установленным у вас приложениям. Это можно сделать с помощью утилиты apt или synaptic.

  2. Удаление поддержки архітектуры: Если вы решили, что i386 поддержку можно убрать, следуйте этим шагам:

    • Удалите все 32-битные пакеты:
      sudo apt-get remove '^.*:i386'
    • Удалите поддержку архитектуры в системе:
      sudo dpkg --remove-architecture i386
  3. Тестирование: После удаления убедитесь, что все используемые вами приложения продолжают работать корректно. Обратите особое внимание на те приложения, которые могли использовать 32-битные зависимости.

  4. Обратное действие: Если после удаления i386 начались проблемы, вы всегда можете вернуть поддержку, повторно добавив архитектуру:

    sudo dpkg --add-architecture i386
    sudo apt-get update

Таким образом, принимая решение об удалении поддержки i386, важно трезво оценить ваши персональные и системные потребности. Технически возможно функционировать без i386, но это может ограничить использование определенных устройств и программного обеспечения. Особенно это может отразиться на области игр и работы с мультимедийными файлами. Если ваше программное обеспечение и оборудование готовы к отказу от поддержки 32-битных приложений, тогда можно рассматривать удаление, но в противном случае лучше оставаться на стороне безопасности и совместимости.

Оцените материал
Добавить комментарий

Капча загружается...