Как установить 32-битные библиотеки Debian
Обновлено: 21.11.2024
Верните компьютер sm
Ресурс для тех, кто хочет избавиться от Microsoft в своей жизни. и со своих компьютеров.
64-разрядная версия Linux существует уже достаточно давно, поэтому почти все нужные мне приложения доступны в 64-разрядной версии.
У меня есть несколько 32-разрядных приложений, которые мне еще нужно запустить. Я беспокоился, что мне придется запускать 32-битный Linux на виртуальной машине. Но на самом деле 32-битные приложения могут работать и в 64-битной Linux. Это неотъемлемая функция, называемая «мультиархив» (несколько архитектур). Все, что мне нужно сделать, это включить мультиархитектуру, а затем убедиться, что установлены необходимые 32-разрядные библиотеки.
Debian Multiarch HOWTO — это официальный источник информации о мультиархитектуре, который дает хороший обзор.
Multiarch позволяет устанавливать пакеты библиотек из разных архитектур на одном компьютере. Это полезно по-разному, но наиболее распространенным является установка как 64-, так и 32-разрядного программного обеспечения на один и тот же компьютер с правильным автоматическим разрешением зависимостей. В общем, вы можете иметь библиотеки более чем одной архитектуры, установленные вместе, и приложения из той или иной архитектуры, установленные в качестве альтернативы. Обратите внимание, что он не позволяет одновременно устанавливать приложения с несколькими версиями архитектуры.
Но я нашел более подробные инструкции в этом сообщении Stack Exchange. Короче говоря (и исправить одну из их опечаток), мне просто нужно было ввести команды
dpkg --add-architecture i386
apt update
apt install libc6:i386
Первая команда добавляет архитектуру i386 (32-разрядную) в систему пакетов Debian. Затем вторая команда обновляет индекс пакетов на моем компьютере со всеми доступными в настоящее время пакетами, что добавит 32-разрядные пакеты. (У меня уже были обновлены 64-битные пакеты amd64.) И третья команда устанавливает 32-битную (i386) версию библиотеки libc6, которая используется почти всем.
О библиотеках: большинству приложений Linux потребуется использовать множество вспомогательных функций, упакованных в "библиотеки". Вы увидите их в менеджере пакетов; по соглашению их имена всегда начинаются с «lib». Файлы 32-разрядной (i386) библиотеки можно найти в /usr/lib/i386-linux-gnu/, а файлы 64-разрядной (amd64) библиотеки находятся в /usr/lib/x86_64-linux-gnu/. р>
32-разрядные приложения не могут использовать 64-разрядные библиотеки. Поэтому вам нужно выяснить, какие библиотеки требуются вашему приложению, а затем установить их. Большинство из них можно установить из репозитория, указав суффикс :i386.
Например: мне нужно использовать 32-разрядный компилятор mspgcc. (Есть 64-битный mspgcc, но он нарушает совместимость, и у меня много устаревшего кода.) Вероятно, есть более элегантный и правильный способ сделать это, но я нашел, какие библиотеки нужны, просто попробовав запустить mspgcc в окне терминала. Это создаст сообщение что-то вроде
ошибка при загрузке общих библиотек: libmpc.so.3: невозможно открыть общий объектный файл: нет такого файла или каталога
подходящая установка libmpc:i386
Повторный запуск mspgcc привел к появлению сообщения об ошибке для следующего отсутствующего пакета. Мне удалось установить libz.so.1 из пакета zlib1g:i386. Но мне не удалось найти libmpfr.so.4 в репозитории Debian 10 ("Buster").
Отбросив осторожность, я решил скопировать файлы libmpfr.so.4 и libmpfr.so.4.1.2 из резервной копии моей старой системы Debian 8. (Из /usr/lib/i386-linux-gnu/ в резервной копии в тот же каталог в моей текущей системе.) И это сработало. Старые библиотеки прекрасно работают в новой системе. (Возможно, я мог бы добавить символическую ссылку к текущему пакету, но я не уверен, что это будет целесообразно.)
И при этом работал 32-битный mspgcc.
Другим 32-разрядным приложением, которое мне было нужно, был коммерческий пакет САПР Eagle. Я заплатил за это и не хочу потерять его использование; кроме того, он больше не доступен для покупки, а вместо этого предлагается в виде веб-сервиса. (А с нашим медленным и нестабильным подключением к Интернету веб-приложения действительно не вариант.) Хорошая новость заключается в том, что мне тоже удалось заставить его работать. Несколько перезапусков программы привели к следующему списку пакетов:
libXrender.so.1, установленный из libxrender1:i386
libXrandr.so.2, установленный из libxrandr2:i386
libXcursor.so.1, установленный из libxcursor1:i386
libfreetype. so.6, установленный из libfreetype6:i386
libfontconfig.so.1, установленный из libfontconfig1:i386
libXi.so.6, установленный из libxi6:i386
libstdc++.so.6, установленный from libstdc++6:i386
libssl.so.1.0.0 и libcrypto.so.1.0.0 не было в репозитории, поэтому я скопировал их из своей резервной копии Debian 8 в свою систему Debian 10. (Более новые версии есть в репозитории, но Eagle ищет более старые версии.)
__________
Обновление: действительно есть более элегантный и правильный способ получить список необходимых библиотек. С.С. пишет:
Приложение может загружать библиотеки двумя способами:
Если он загружает их во время выполнения с помощью системы dlopen, ваш вариант "запустить и посмотреть, что произойдет" — лучший подход, но в основном он используется для подключаемых модулей.
Для вещей, которые обрабатываются динамическим загрузчиком Linux как часть загрузки программы в память перед передачей ей управления (большинство зависимостей), вы можете просто использовать команду ldd для вывода списка зависимостей.
ldd /usr/bin/dosbox
Полученный список покажет, как была разрешена каждая зависимость, поэтому все, что вам нужно сделать, это просмотреть записи, в которых правая часть => не содержит пути.
У меня 64-разрядная (amd64 или x86_64) установка Debian или Ubuntu. Мне нужно время от времени запускать 32-битные (i386/i686) программы или компилировать программы для 32-битной системы. Как это сделать с минимальными усилиями?
Дополнительный бонус: что, если я хочу запустить или протестировать более раннюю или более новую версию дистрибутива?
3 ответа 3
Для текущих выпусков
Текущие версии Debian и Ubuntu имеют поддержку нескольких архитектур: вы можете напрямую смешивать пакеты x86_32 (i386) и x86_64 (amd64) в одной системе. Это известно как поддержка нескольких архитектур — дополнительную информацию см. на вики Ubuntu или Debian.
См. простой и актуальный ответ от warl0ck.
Для старых выпусков
В более ранних выпусках Debian и Ubuntu поставляются с рядом 32-разрядных библиотек на платформе amd64. Установите пакет ia32-libs, чтобы иметь базовый набор 32-битных библиотек и, возможно, другие пакеты, зависящие от этого. Ваши 32-битные исполняемые файлы должны просто запускаться, если у вас есть все необходимые библиотеки. Для разработки установите gcc-multilib и, возможно, другие пакеты, зависящие от него, такие как g++-multilib. Вам также могут пригодиться binutils-multiarch и ia32-libs-dev в Debian. Передайте параметр -m32 в gcc для компиляции для ix86.
Обратите внимание, что uname -m по-прежнему будет отображать x64_64, если вы используете 64-разрядное ядро, независимо от того, какие 32-разрядные компоненты пользовательского режима у вас установлены. Schroot, описанный ниже, позаботится об этом.
Шрут
Этот раздел представляет собой руководство по установке дистрибутива, подобного Debian, «внутри» другого дистрибутива Linux. Это сформулировано с точки зрения установки 32-разрядной версии Ubuntu внутри 64-разрядной версии Ubuntu, но с небольшими изменениями ее следует применять и в других ситуациях, например, при установке нестабильной версии Debian внутри стабильной версии Debian или наоборот.
Введение
Идея состоит в том, чтобы установить альтернативный дистрибутив в поддерево и запускать его. Таким образом вы можете установить 32-разрядную систему на 64-разрядную систему, или другой выпуск вашего дистрибутива, или тестовую среду с другими наборами установленных пакетов.
Команда chroot и системный вызов запускают процесс с представлением файловой системы, которая ограничена поддеревом дерева каталогов. Debian и Ubuntu поставляют schroot, утилиту, которая использует эту функцию для создания более удобной подсреды.
Установите пакет schroot (Debian) и пакет debootstrap (Debian). Debootstrap нужен только для установки альтернативного дистрибутива и впоследствии может быть удален.
Настройка schroot
В этом примере показано, как настроить 32-разрядную альтернативную среду Ubuntu 10.04LTS (lucid lynx). Аналогичная настройка должна работать с другими выпусками Debian и Ubuntu. Создайте файл /etc/schroot/chroot.d/lucid32 со следующим содержимым:
Строка directory=/32 указывает schroot, куда мы поместим файлы 32-битной установки. Строка username=yourusername говорит, что пользователю yourusername будет разрешено использовать schroot. Строка groups=users,admin говорит, что пользователям любой группы будет разрешено использовать schroot; вы также можете поместить директиву users=….
Установите новый дистрибутив
Создайте каталог и начните заполнять его с помощью debootstrap. Debootstrap загружает и устанавливает основной набор пакетов для указанного дистрибутива и архитектуры.
У вас уже почти есть работающая система; то, что следует, является незначительными улучшениями. Schroot автоматически перезаписывает несколько файлов в /32/etc при запуске, в частности конфигурацию DNS в /etc/resolv.conf и базу данных пользователей в /etc/passwd и другие файлы (это можно переопределить, см. документацию). Есть еще несколько файлов, которые вы можете скопировать вручную раз и навсегда:
В chroot не будет файла /etc/mtab или /etc/fstab. Я не рекомендую использовать команду mount вручную в chroot, делайте это извне. Но создайте достаточно хороший файл /etc/mtab, чтобы такие команды, как df, работали разумно.
Для этого типа каталога schroot будет выполнять привязку монтирования ряда каталогов, т. е. эти каталоги будут общими с родительской установкой: /proc , /dev , /home , /tmp .
Службы в chroot
Как описано здесь, schroot не подходит для запуска демонов. Программы в schroot будут уничтожены при выходе из schroot. Используйте «обычный» schroot вместо «каталога», если вы хотите, чтобы он был более постоянным, и настройте постоянное монтирование привязки в /etc/fstab в родительской установке.
В Debian и Ubuntu службы запускаются автоматически при установке. Чтобы избежать этого (что может нарушить работу служб, работающих за пределами chroot, в частности, из-за того, что сетевые порты являются общими), установите политику не запуска служб в chroot. Поместите следующий скрипт как /32/usr/sbin/policy-rc.d и сделайте его исполняемым ( chmod a+rx /32/usr/sbin/policy-rc.d ).
Заполнить новую систему
Теперь мы можем начать использовать chroot. На этом этапе вам нужно установить еще несколько пакетов.
Возможно, вам потребуется создать несколько локалей, например
Если schroot предназначен для более старой версии Ubuntu, такой как 8.04 (hardy), обратите внимание, что пакет ubuntu-standard требует MTA. Выберите nullmailer вместо постфикса по умолчанию (вы можете захотеть, чтобы ваш chroot отправлял почту, но вы определенно не хотите, чтобы она ее получала).
Дальше
Для получения дополнительной информации см. руководство по schroot, часто задаваемые вопросы по schroot и руководство по schroot.conf. Schroot является частью проекта автосборщика Debian (buildd). На странице сообщества Ubuntu могут быть дополнительные полезные советы по debootstrap.
Виртуальная машина
Если вам нужна полная изоляция альтернативной среды, используйте виртуальную машину, например KVM (qemu-kvm ) или VirtualBox.
Multiarch: как установить ia32-libs на MX-21 и Debian-11?
Однако это уже нельзя было легко сделать в полной мере, начиная с Debian 9 с 2017 года до сегодняшнего дня, 2022 года, с Debian 10 и Debian 11, Debian Sid и Debian Experimental. Также, безусловно, и в будущем с Debian 12. Но не все потеряно, всегда есть прием или обходной путь. А здесь мы увидим решение для установки ia32-libs на MX-21 и Debian-11.
И, как обычно, прежде чем полностью перейти к сегодняшней теме «Мультиархитектуры» в операционных системах GNU/Linux, мы оставим для тех, кто заинтересован в изучении очень старых публикаций, связанных с этим вопросом, следующие ссылки на них. Таким образом, чтобы они могли легко изучить их, в случае необходимости, после прочтения этой публикации:
«Здравствуйте, друзья, на этот раз я хотел бы показать вам, как установить библиотеку для запуска 32-битных программ в 64-битной системе, если вам интересно, для чего она может быть использована, это было бы в XAMPP. Который запрашивает у нас библиотеку для работы в 64-битной системе. Что ж, приступайте к работе». Как запускать 32-битные приложения в 64-битной Fedora
Оглавление
Мультиархитектура на MX-21 и Debian-11: возможно ли это?
Что такое мультиархитектура в GNU/Linux?
Для понимания «Мультиархитектуры» в GNU/Linux и, в частности, в Debian GNU/Linux нет ничего лучше, чем знать, как это определяется самим проектом Debian. По этой причине приведем следующий фрагмент текста:
» «Мультиархитектура» или «мультиархив» — это термины, которые относятся к способности системы устанавливать и запускать приложения из нескольких разных двоичных файлов; -gnu система.Это наиболее распространенный случай, есть много других примеров правдоподобных комбинаций, таких как armel и armhf.Мультиархитектура также упрощает кросс-компиляцию, при которой библиотеки и заголовочные файлы из внешних архитектур необходимы в системе во время компиляции .
Существующие предложения допускают совместную установку библиотек и заголовков для разных архитектур, хотя это еще не двоичные файлы, поэтому вы можете иметь либо версию двоичного файла для i386, либо версию для amd64, но не обе одновременно. Все зависимости будут установлены и доступны для соответствующего двоичного файла. Мультиархитектура — это важное и мощное развитие, затрагивающее многие процессы и аспекты системы. Немедленным практическим эффектом является удаление пакета ia32-libs и получение соответствующих зависимостей для кросс-компиляции ". Поддержка нескольких архитектур Debian
Принимая во внимание, что на практике это означает, что до Debian-9 можно было выполнять следующие командные команды и иметь возможность в полной мере пользоваться преимуществами «Мультиархитектуры» в 64-разрядной версии Debian: р>
В то время как от Debian-9 до Debian-11 можно выполнять только следующие команды:
То есть у нас больше нет пакета ia32-libs, который обычно требуется для запуска многих 32-битных приложений, особенно игр. Что их вполне можно использовать в Debian-9 AMD-64 и выше.
Как установить ia32-libs на MX-21 и Debian-11?
Чтобы иметь возможность сделать это успешно, то есть не умереть, пытаясь, в моем случае я буду использовать Respin (Snapshot) на основе MX-21 / Debian-11, называемый Miracles, для установки совместимого с пакетом ia32-libs. Чтобы затем запустить приложение, созданное для Linux i386, которое представляет собой не что иное, как приложение текущего виртуального онлайн-сообщества, которое все еще находится в стадии тестирования (бета), для работы которого требуется пакет ia32-libs, и это называется Second Life . Что, кстати, очень похоже на нынешние метавселенные (Blockchain & DeFi Worlds).
Во-первых, после подготовки нашей мультиархитектурной основы для 64-разрядной операционной системы MX-21 / Debian-11, мы загружаем пакет ia32-libs, совместимый со следующей ссылкой (Mint 20.2 / UMA), и устанавливаем его с помощью следующей команды. порядок:
sudo apt install ./Descargas/ia32-libs_2020.05.27_amd64.deb
Как только это будет сделано, наши 32-битные приложения, а в моем случае Second Life, теперь могут выполняться без каких-либо проблем, напрямую связанных с пакетами: ia32-libs ia32-libs-gtk ia32-libs-kde ia32- библиотеки-sdl . Как показано на следующем изображении:
А если кому-то интересно узнать немного больше о предмете Блокчейн и DeFi, особенно об играх NFT, Метавселенных и предметах коллекционирования NFT, вы можете изучить следующую ссылку. Или посмотрите некоторые из наших предыдущих сообщений по теме:
GNU/Linux Ubuntu 21.04 64-бит Руководство по установке 32-битных библиотек
Добро пожаловать! В этом руководстве показано, как найти и установить 32-разрядные библиотеки для выполнения двоичных файлов в Ubuntu 21.04 Hirsute 64-разрядной версии GNU/Linux.
И во-первых, попробуйте установить обычно необходимые зависимости для систем Ubuntu i386, следуя связанному руководству.
1. Запуск терминала
Откройте окно эмулятора терминала оболочки
Ctrl+Alt+t на рабочем столе
(нажмите «Enter» для выполнения команд) .
Содержание
"В Свободе Нет Концепции! Свобода - это абсолютная Пустота, но она действительна только в том случае, если ощущается как гармоничное сердцебиение."
Фонд GNU+Linux
"Когда будет срублено последнее дерево, поймана последняя рыба, отравлена последняя река, только тогда мы поймем, что деньги нельзя есть".
"Сегодня не существует пригодных для использования компьютеров с полностью открытым программным и аппаратным обеспечением (настолько, насколько некоторые компании хотят рекламировать себя как таковые)".
Подпишитесь на нас
Философия свободного программного обеспечения GNU/Linux
"Сны показывают Внутреннее обнаженное Истину. Трансцендентное Чувство-Информация-Осознание, свободно сияющее из Вечного Источника Реальности: Бесценной, Вневременной и Безграничной Души!"
Последние слова Стива Джобса
«Быть победителем в миссии свободной вычислительной ОС означает принять Коммерческую Стратегию. Превзойти Двойственность в Единстве и, таким образом, распространять как свободное, так и несвободное программное обеспечение. Потому что евангелизация свободы в несвободном мире подобна содержанию троянского коня. Аллилуйя!"
Лучшие природные средства защиты от коронавируса
"Заботиться о том, чтобы кто-то лайкнул, подписался или купил, — это просто серьезное препятствие на бесценном Пути творческой свободы".
"Использование денег только для покупки Вещей и отказ от поддержки философии бесплатных подарков является признаком эгоистичного и ограниченного ума".
Что может спасти мир от самоуничтожения? Смиренное обращение на духовный путь.
Потому что Земля и Природа были Опустошены слепой дикой массовой гонкой, чтобы доказать, что вы Кто-то Лучше, потому что у вас есть $несколько fla$hy Power$.
Спасибо Google
Уважаемый пользователь Linux, было бы неплохо, если бы вы могли понять, что без Google Ads большая часть этого Контента, скорее всего, никогда не будет написана!
Итак, спасибо Google и рекламодателям Google Ads за их поддержку.
Более того, я могу легко найти необходимую информацию для повторного создания своих руководств с помощью лучшей поисковой системы: Google.
Кредиты
Вечная слава Богу, Иисусу Христу, Святому Духу, Ганеше, Шиве, Вишну, Кришне, Лаози, Будде, Бодхидхарме, Ма Гигу, Хакуину, Иккью, Нагарджуне, Тилопе, Наропе, Миларепе, Сухраварди, Святому Дисмасу, Святому Франческо, Святая Тереза, Святой Иоанн, Святой Филиппо, Экехарт. Все Святые Божества, Аватары, Святые, Мистики и Истинные Духовные Мастера. Потому что они в Вечном Свете Истины и Восторга, Освещающих Мир Тьмы, Неведения, Слепоты, Беспокойства и Лжи!
Божественная и дьявольская природа
«Божественная Святая Динамика — это Вечное Единство, Все Добродетели и Совершенство. Чистота, Духовность, Невинность, Невозмутимость, Доверчивость, Невинность, Альтруизм, Разделение и Пустота.
Вместо Дьявольского Человеческого есть Эфемерная Дифференциация, Все Недостатки и неприятности. Нечистота, Бездуховность, Извращенность, Яростность, Сомнение, Вина, Эгоизм, Жадность и Денежность."
Пожертвовать крайне бедным
Тема QuickChic • Работает на WordPress
Обязательные файлы cookie должны быть включены постоянно, чтобы мы могли сохранить ваши настройки для файлов cookie.
Читайте также: