[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
ru:slackware:multilib [2016/02/05 11:38 (UTC)] – [Зеркала мультибиблиотек] bormantru:slackware:multilib [2017/07/07 19:40 (UTC)] (текущий) – старая версия восстановлена (2017/07/07 19:39 (UTC)) bormant
Строка 7: Строка 7:
     * //glibc// (такой glibc, который поддерживает //исполнение// как 32-ных, так и 64-битных бинарных файлов), и     * //glibc// (такой glibc, который поддерживает //исполнение// как 32-ных, так и 64-битных бинарных файлов), и
     * //gcc// (способный //компилировать// в 32-битные бинарные файлы наравне с 64-битными).     * //gcc// (способный //компилировать// в 32-битные бинарные файлы наравне с 64-битными).
-  - Затем взять из 32-битной Slackware библиотеки и установить их в 64-битной Slackware, что завершит процесс создания 32-битного программного слоя+  - Затем взять из 32-битной Slackware библиотеки и вместе с их 64-битными версиями установить их в 64-битной Slackware, что завершит процесс создания 32-битного программного слоя совместимости.
- +
-<note>Slackware для архитектуры x86_64 (или для краткости «//Slackware64//») является чистой 64-битной операционной системой, но легко обновляется до мультибииблиотечной. //Изначально в Slackware64 возможно компилировать и исполнять только 64-битные бинарные файлы//.</note>+
  
 Когда вышла Slackware64, она имела преимущество перед прочими существовавшими 64-битными «форками». Последние добавляли 32-битный слой совместимости путём перекомпиляции множества своих пакетов как 32-битных бинарников. С другой стороны, Slackware — это дистрибутив, состоящий из 32-битного и 64-битного выпуска, разрабатываемых параллельно. Это означает, что вам не нужно компилировать 32-битные пакеты с нуля для добавления мультибиблиотечности в 64-битную систему.  Можно просто взять их из дерева пакетов 32-битной Slackware!\\  Это было одной из причин не добавлять в Slackware64 полную мультибиблиотечность — мы создали необходимые условия, но если пользователю нужна мультибиблиотечность, то ему нужно действовать самостоятельно. \\ В разделе [[#подробные_инструкции | ниже]] я объясню, как взять 32-битный пакет Slackware (скажем, пакет «mesa») и перепаковать его содержимое в пакет «mesa-compat32», который можно установить непосредственно в Slackware64. Когда вышла Slackware64, она имела преимущество перед прочими существовавшими 64-битными «форками». Последние добавляли 32-битный слой совместимости путём перекомпиляции множества своих пакетов как 32-битных бинарников. С другой стороны, Slackware — это дистрибутив, состоящий из 32-битного и 64-битного выпуска, разрабатываемых параллельно. Это означает, что вам не нужно компилировать 32-битные пакеты с нуля для добавления мультибиблиотечности в 64-битную систему.  Можно просто взять их из дерева пакетов 32-битной Slackware!\\  Это было одной из причин не добавлять в Slackware64 полную мультибиблиотечность — мы создали необходимые условия, но если пользователю нужна мультибиблиотечность, то ему нужно действовать самостоятельно. \\ В разделе [[#подробные_инструкции | ниже]] я объясню, как взять 32-битный пакет Slackware (скажем, пакет «mesa») и перепаковать его содержимое в пакет «mesa-compat32», который можно установить непосредственно в Slackware64.
 +
 +<note>Slackware для архитектуры x86_64 (или для краткости «//Slackware64//») является чистой 64-битной операционной системой, но легко обновляется до мультибииблиотечной. //Изначально в Slackware64 возможно компилировать и исполнять только 64-битные бинарные файлы//.</note>
  
  
Строка 19: Строка 19:
   * [[http://winehq.org/ | Wine]] \\ Большинство программ для Windows по-прежнему 32-разрядные, для их запуска на Linux в Wine требуется 32-битная версия Wine.   * [[http://winehq.org/ | Wine]] \\ Большинство программ для Windows по-прежнему 32-разрядные, для их запуска на Linux в Wine требуется 32-битная версия Wine.
   * [[http://www.virtualbox.org/ | VirtualBox]] \\ Популярное программное обеспечение для виртуальных машин.  Несмотря на открытый (частично) исходный код, все ещё нуждается в 32-битных библиотеках на 64-битной Slackware.   * [[http://www.virtualbox.org/ | VirtualBox]] \\ Популярное программное обеспечение для виртуальных машин.  Несмотря на открытый (частично) исходный код, все ещё нуждается в 32-битных библиотеках на 64-битной Slackware.
 +  * [[http://steampowered.com|Steam]] \\ Очень популярная игровая платформа по-прежнему требует [[http://www.slackware.com/~alien/slackbuilds/steamclient/|32-разрядного клиента]]. Большинство доступных игр также 32-разрядные.
   * [[http://www.skype.com/ | Skype]], [[http://www.citrix.com/lang/English/home.asp | Citrix client]],  ... \\ Это проприетарные программы с закрытыми исходными кодами. Мы вынуждены зависеть от их разработчиков в части доступности 64-битных бинарников.  Для этих программ пока подобного не случилось.   * [[http://www.skype.com/ | Skype]], [[http://www.citrix.com/lang/English/home.asp | Citrix client]],  ... \\ Это проприетарные программы с закрытыми исходными кодами. Мы вынуждены зависеть от их разработчиков в части доступности 64-битных бинарников.  Для этих программ пока подобного не случилось.
  
Строка 30: Строка 31:
 Наряду с несколькими файлами README (эта статья вики —  расширенная версия одного из тех файлов) ниже каталога верхнего уровня «//multilib//» находятся подкаталоги для каждого 64-битного выпуска Slackware.  Там же расположен каталог «//source//». Он содержит исходные тексты и сценарии SlackBuild.\\ Что вам действительно нужно — бинарные пакеты — доступны в каталоге //<номер_выпуска_slackware>// ниже каталога верхнего уровня.  Каждый такой каталог содержит подкаталог «//slackware64-compat32//», где находится основной набор конвертированных 32-битных пакетов Slackware, готовых к установке на 64-битной Slackware. Наряду с несколькими файлами README (эта статья вики —  расширенная версия одного из тех файлов) ниже каталога верхнего уровня «//multilib//» находятся подкаталоги для каждого 64-битного выпуска Slackware.  Там же расположен каталог «//source//». Он содержит исходные тексты и сценарии SlackBuild.\\ Что вам действительно нужно — бинарные пакеты — доступны в каталоге //<номер_выпуска_slackware>// ниже каталога верхнего уровня.  Каждый такой каталог содержит подкаталог «//slackware64-compat32//», где находится основной набор конвертированных 32-битных пакетов Slackware, готовых к установке на 64-битной Slackware.
  
-<note tip>Для поддержки актуальности советую обратить внимание на  [[http://slackware.com/~alien/multilib/ChangeLog.txt | ChangeLog]] ([[http://slackware.com/~alien/multilib/ChangeLog.rss | лента RSS]]), которые я поддерживаю для моих мультибиблиотечных пакетов. Обычно обновляются пакеты //glibc and gcc// в течении дня после обновления их в Slackware.  Также обратите внимание на [[#сторонние_ инструменты_поддержки | compat32pkg]] от Sėbastien Ballet, автоматизирующие этот процесс, как это делает slackpkg.</note>+ 
 +===== Поддержка мультибиблиотечности в актуальном состоянии ===== 
 + 
 +Для поддержки актуальности советую обратить внимание на  [[http://slackware.com/~alien/multilib/ChangeLog.txt | ChangeLog]] ([[http://slackware.com/~alien/multilib/ChangeLog.rss | лента RSS]]), которые я поддерживаю для моих мультибиблиотечных пакетов. Обычно обновляются пакеты //glibc and gcc// в течении дня после обновления их в Slackware. 
 + 
 +Автоматизация: 
 +  - Обратите внимание на [[#сторонние_инструменты_поддержки | compat32pkg]] от Sėbastien Ballet, автоматизирующий процесс наподобие slackpkg. 
 +  - Если для управления пакетами предпочитаете slackpkg, стоит обратить внимание на [[http://slakfinder.org/slackpkg+.html|slackpkg+]], расширение для slackpkg, управляющее пакетами, установленными из сторонних хранилищ, включая мультибиблиотечные пакеты. При правильной настройкеподдерржка сводится к запуску: <code> 
 +# slackpkg update 
 +# slackpkg upgrade multilib 
 +# slackpkg install multilib 
 +</code> Последняя команда покажет новые «compat32» пакеты, например недавно добавленные llvm-compat32 и orc-compat32. 
 +    * Вот как выглядит типичная настройка для Slackware-current с использованием тестового хранилища KDE от Alien BOB. PKGS_PRIORITY задает приоритет пакетов gcc и glibc из мультибиблиотечного хранилища перед официнальным деревом Salckaware. Ключевое слово «multilib», которое задает имя хранилища, должно соответствовать используемому в приведенных выше командах «slackpkg». Слово «multilib» выбрано произвольно, с тем же успехом можно было везде использовать «compat32». \\ Ниже приведено примерное содержимое файла «/etc/slackpkg/slackpkgplus.conf»: <file> 
 +SLACKPKGPLUS=on 
 +VERBOSE=1 
 +ALLOW32BIT=off 
 +USEBL=1 
 +WGETOPTS="--timeout=5 --tries=1" 
 +GREYLIST=on 
 +PKGS_PRIORITY=( multilib restricted alienbob ktown ) 
 +REPOPLUS=( slackpkgplus multilib restricted alienbob ktown ) 
 +MIRRORPLUS['multilib']=http://bear.alienbase.nl/mirrors/people/alien/multilib/current/ 
 +MIRRORPLUS['alienbob']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/current/x86_64/ 
 +MIRRORPLUS['restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/current/x86_64/ 
 +MIRRORPLUS['ktown']=http://bear.alienbase.nl/mirrors/alien-kde/current/latest/x86_64/ 
 +MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/ 
 +</file
  
  
Строка 39: Строка 66:
 Этот раздел содержит основные инструкции по добавлению полной поддержки  мультибиблиотечности в вашу систему Slackware64. Если хотите разобраться в процессе более подробно или нужна информация о том, как компилировать 32-битные программы в Slackware64, прочтите и последующие разделы.\\ Обратите внимание, знак «#» в начале команд означает //приглашение суперпользователя root// Этот раздел содержит основные инструкции по добавлению полной поддержки  мультибиблиотечности в вашу систему Slackware64. Если хотите разобраться в процессе более подробно или нужна информация о том, как компилировать 32-битные программы в Slackware64, прочтите и последующие разделы.\\ Обратите внимание, знак «#» в начале команд означает //приглашение суперпользователя root//
  
-  * Загрузите пакеты с моего сайта (я давал ссылку в [[#получение_мультибиблиотечных_пакетов | предыдущем разделе]]), в примере ниже использована ссылка на зеркало.  Допустим, используется Slackware 14.1. Выполните: <code> +  * Загрузите пакеты с моего сайта (я давал ссылку в [[#получение_мультибиблиотечных_пакетов | предыдущем разделе]]), в примере ниже использована ссылка на зеркало.  Допустим, используется Slackware 14.2. Выполните: <code> 
-# SLACKVER=14.1+# SLACKVER=14.2
 # mkdir multilib # mkdir multilib
 # cd multilib # cd multilib
-# lftp -c "open http://taper.alienbase.nl/mirrors/people/alien/multilib/ ; mirror -c -e ${SLACKVER}"+# lftp -c "open http://bear.alienbase.nl/mirrors/people/alien/multilib/ ; mirror -c -e ${SLACKVER}"
 # cd ${SLACKVER} # cd ${SLACKVER}
 </code> </code>
Строка 53: Строка 80:
 </code>которая установит все 32-битные пакеты Slackware (или обновит их, если установлены более старые их версии, например, при обновлении до новой версии Slackware). Это всё! </code>которая установит все 32-битные пакеты Slackware (или обновит их, если установлены более старые их версии, например, при обновлении до новой версии Slackware). Это всё!
   * Если каталог //slackware64-compat32// отсутствует, то либо его не загрузили, либо зеркало его не содержало. В этом случае придётся выполнить конвертацию 32-битных пакетов самостоятельно.  Несложно, но займёт какое-то время:   * Если каталог //slackware64-compat32// отсутствует, то либо его не загрузили, либо зеркало его не содержало. В этом случае придётся выполнить конвертацию 32-битных пакетов самостоятельно.  Несложно, но займёт какое-то время:
-    * Быстрее всего, если у вас есть локальный каталог с оригинальными 32-битными пакетами Slackware (//локальное зеркало//).  Купившие официальный DVD Slackware могут использовать его: он двусторонний и 32-битная Slackware на одной из сторон.  __В этом примере__ будем считать, что локальное зеркало дерева 32-битной Slackware доступно в каталоге «''/home/ftp/pub/slackware/slackware-14.1/slackware/''».\\ Непосредственно в нём должны быть подкаталоги «a», «ap», «d», «l», «n», «x». (Если смонтировали DVD Slackware, возможный каталог «''/media/SlackDVD/slackware/''», но в примерах команд ниже я его не буду использовать).+    * Быстрее всего, если у вас есть локальный каталог с оригинальными 32-битными пакетами Slackware (//локальное зеркало//).  Купившие официальный DVD Slackware могут использовать его: он двустороннийи 32-битная Slackware на одной из сторон.  __В этом примере__ будем считать, что локальное зеркало дерева 32-битной Slackware доступно в каталоге «''/home/ftp/pub/slackware/slackware-14.2/slackware/''».\\ Непосредственно в нём должны быть подкаталоги «a», «ap», «d», «l», «n», «x». (Если смонтировали DVD Slackware, возможный каталог «''/media/SlackDVD/slackware/''», но в примерах команд ниже я его не буду использовать).
     * Создайте новый пустой каталог (назовём его «slackware64-compat32») и перейдите в него: <code>     * Создайте новый пустой каталог (назовём его «slackware64-compat32») и перейдите в него: <code>
 # mkdir slackware64-compat32 ; cd slackware64-compat32 # mkdir slackware64-compat32 ; cd slackware64-compat32
 </code> </code>
     * Выполните следующую команду для создания набора 32-битных пакетов совместимости, используя в качестве параметра каталог с официальными 32-битными пакетами Slackware: <code>     * Выполните следующую команду для создания набора 32-битных пакетов совместимости, используя в качестве параметра каталог с официальными 32-битными пакетами Slackware: <code>
-# massconvert32.sh -i /home/ftp/pub/slackware/slackware-14.1/slackware/+# massconvert32.sh -i /home/ftp/pub/slackware/slackware-14.2/slackware/
 </code> </code>
     * Предыдущий шаг займёт какое-то время. По завершении установите 90Мб свежеконвертированных 32-битных пакетов Slackware, созданных в подкаталогах //текущего каталога//: <code>     * Предыдущий шаг займёт какое-то время. По завершении установите 90Мб свежеконвертированных 32-битных пакетов Slackware, созданных в подкаталогах //текущего каталога//: <code>
Строка 67: Строка 94:
 <note warning>Если используете пакетный менеджер, как //slackpkg//, придётся добавить все пакеты ''glibc'' и ''gcc'' в его чёрный список. Если не принять подобных мер предосторожности, есть риск, что пакетный менеджер случайно заменит мультибиблиотечные версии версиями из оригинальной чисто 64-битной Slackware!\\ Если используете Slackware 13.37 или новее, тогда slackpkg поддерживает регулярные выражения в файле чёрного списка. В этом случае будет достаточно одной строки в ''/etc/slackpkg/blacklist'' для внесения в чёрный список всех моих пакетов (включая мультибиблиотечные пакеты gcc и glibc и все пакеты ''compat32''): <code> <note warning>Если используете пакетный менеджер, как //slackpkg//, придётся добавить все пакеты ''glibc'' и ''gcc'' в его чёрный список. Если не принять подобных мер предосторожности, есть риск, что пакетный менеджер случайно заменит мультибиблиотечные версии версиями из оригинальной чисто 64-битной Slackware!\\ Если используете Slackware 13.37 или новее, тогда slackpkg поддерживает регулярные выражения в файле чёрного списка. В этом случае будет достаточно одной строки в ''/etc/slackpkg/blacklist'' для внесения в чёрный список всех моих пакетов (включая мультибиблиотечные пакеты gcc и glibc и все пакеты ''compat32''): <code>
 [0-9]+alien [0-9]+alien
-[0-9]+compat32</code></note>+[0-9]+compat32</code> С другой стороны, если используете расширение slackpkg [[http://slakfinder.org/slackpkg+.html|slackpkg+]], то **не** включайте эти пакеты в чёрный список, иначе slackpkg+ не сможет ими управлять!</note>
  
-<note tip>Если используете Slackware 13.1 или новее и загрузили пакет compat32-tools для этого выпуска, сценарий //massconvert32.sh// может использовать удалённый сервер веб для загрузки с него 32-битных пакетов Slackware, вместо локального зеркала Slackare или DVD. Используйте параметр «-u» для указания URL, как в примере ниже: <code> +<note tip>Если используете Slackware 13.1 или новее и загрузили пакет compat32-tools для этого выпуска, сценарий //massconvert32.sh// может загрузить 32-битные пакеты Slackware с удалённого веб-сервера, вместо локального зеркала Slackare или DVD. Используйте параметр «-u» для указания URL, как в примере ниже: <code> 
-# massconvert32.sh -u http://someserver.org/path/to/slackware-14.1/slackware+# massconvert32.sh -u http://someserver.org/path/to/slackware-14.2/slackware
 </code> </note> </code> </note>
  
Строка 126: Строка 153:
     * glibc-profile-2.13_multilib-x86_64-7alien.txz     * glibc-profile-2.13_multilib-x86_64-7alien.txz
     * glibc-solibs-2.13_multilib-x86_64-7alien.txz     * glibc-solibs-2.13_multilib-x86_64-7alien.txz
-    * glibc-zoneinfo-2013d_multilib-noarch-7alien.txz 
  
 ====Slackware64 14.0==== ====Slackware64 14.0====
Строка 138: Строка 164:
     * gcc-objc-4.7.1_multilib-x86_64-1alien.txz     * gcc-objc-4.7.1_multilib-x86_64-1alien.txz
   * Библиотеки GNU libc:   * Библиотеки GNU libc:
-    * glibc-2.15_multilib-x86_64-8alien.txz +    * glibc-2.15_multilib-x86_64-9alien.txz 
-    * glibc-i18n-2.15_multilib-x86_64-8alien.txz +    * glibc-i18n-2.15_multilib-x86_64-9alien.txz 
-    * glibc-profile-2.15_multilib-x86_64-8alien.txz +    * glibc-profile-2.15_multilib-x86_64-9alien.txz 
-    * glibc-solibs-2.15_multilib-x86_64-8alien.txz +    * glibc-solibs-2.15_multilib-x86_64-9alien.txz
-    * glibc-zoneinfo-2013d_2013d_multilib-noarch-8alien.txz+
  
 ====Slackware64 14.1==== ====Slackware64 14.1====
Строка 157: Строка 182:
     * gcc-objc-4.8.2_multilib-x86_64-1alien.txz     * gcc-objc-4.8.2_multilib-x86_64-1alien.txz
   * Библиотеки GNU libc:   * Библиотеки GNU libc:
-    * glibc-2.17_multilib-x86_64-7alien.txz +    * glibc-2.17_multilib-x86_64-10alien.txz 
-    * glibc-i18n-2.17_multilib-x86_64-7alien.txz +    * glibc-i18n-2.17_multilib-x86_64-10alien.txz 
-    * glibc-profile-2.17_multilib-x86_64-7alien.txz +    * glibc-profile-2.17_multilib-x86_64-10alien.txz 
-    * glibc-solibs-2.17_multilib-x86_64-7alien.txz +    * glibc-solibs-2.17_multilib-x86_64-10alien.txz
-    * glibc-zoneinfo-2013d_multilib-noarch-7alien.txz+
  
 +====Slackware64 14.2====
 +
 +  * Комплект компиляторов gcc:
 +    * gcc-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-g++-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-gfortran-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-gnat-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-go-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-java-5.3.0_multilib-x86_64-3alien.txz
 +    * gcc-objc-5.3.0_multilib-x86_64-3alien.txz
 +  * Библиотеки GNU libc:
 +    * glibc-2.23_multilib-x86_64-2alien.txz
 +    * glibc-i18n-2.23_multilib-x86_64-2alien.txz
 +    * glibc-profile-2.23_multilib-x86_64-2alien.txz
 +    * glibc-solibs-2.23_multilib-x86_64-2alien.txz
  
 ====Slackware64 current==== ====Slackware64 current====
  
   * Комплект компиляторов gcc:   * Комплект компиляторов gcc:
-    * gcc-4.8.3_multilib-x86_64-1alien.txz +    * gcc-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-g++-4.8.3_multilib-x86_64-1alien.txz +    * gcc-brig-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gfortran-4.8.3_multilib-x86_64-1alien.txz +    * gcc-g++-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gnat-4.8.3_multilib-x86_64-1alien.txz +    * gcc-gfortran-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-go-4.8.3_multilib-x86_64-1alien.txz +    * gcc-gnat-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-java-4.8.3_multilib-x86_64-1alien.txz +    * gcc-go-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-objc-4.8.3_multilib-x86_64-1alien.txz+    * gcc-objc-7.1.0_multilib-x86_64-2alien.txz 
   * Библиотеки GNU libc:   * Библиотеки GNU libc:
-    * glibc-2.19_multilib-x86_64-1alien.txz +    * glibc-2.25_multilib-x86_64-3alien.txz 
-    * glibc-i18n-2.19_multilib-x86_64-1alien.txz +    * glibc-i18n-2.25_multilib-x86_64-3alien.txz 
-    * glibc-profile-2.19_multilib-x86_64-1alien.txz +    * glibc-profile-2.25_multilib-x86_64-3alien.txz 
-    * glibc-solibs-2.19_multilib-x86_64-1alien.txz +    * glibc-solibs-2.25_multilib-x86_64-3alien.txz
-    * glibc-zoneinfo-2014b_multilib-noarch-1alien.txz+
  
-Есть один дополнительный пакет для установки программой «installpkg»:+<note>После обновления до gcc 7 пакета ''gcc-java'' больше не существует, так как его разработка прекращена.</note>​ 
 +<note>​Пакет ''​glibc-zoneinfo''​ не содержит кода и поэтому не входит в мультилиб. Этот пакет устанавливается из 64-битной Slackware.</note>
  
-  * «32-битный инструментарий» (сценарий, облегчающий создание 32-битных пакетов) +====Все версии Slackware====
-    * compat32-tools-3.2-noarch-2alien.tgz+
  
-<note>В Slamd64 имеются отдельные мультибиблиотечные 64-битные и 32-битные пакеты gcc/glibc.\\ Тем не менее, я считаю, что правильнее сохранять эти основные мультибиблиотечные пакеты неразделёнными.  Я последовал концепции, используемой в пакете //binutils// из самой Slackware64, который сочетает 64-битные и 32-битные мультибиблиотечные возможности в едином пакете.</note>+Есть один дополнительный пакет для установки программой «installpkg».  Актуальная версия для каждого из выпусков Slackware может отличаться, но пакет находится в том же каталоге, что и мультибиблиотечные версии ''​gcc''​ и ''​glibc'': 
 + 
 +  * «32-битный инструментарий» (сценарий, облегчающий создание 32-битных пакетов) 
 +    * compat32-tools-3.7-noarch-1alien.tgz
  
  
Строка 199: Строка 241:
 Потребуются дополнительные меры предосторожности для удаления ненужных/нежелательных файлов из 32-битных пакетов перед их установкой. Нужны 32-битные пакеты, которые не конфликтуют с тем, что уже есть в 64-битной Slackware. Отсюда и название «32-битный пакет совместимости». Потребуются дополнительные меры предосторожности для удаления ненужных/нежелательных файлов из 32-битных пакетов перед их установкой. Нужны 32-битные пакеты, которые не конфликтуют с тем, что уже есть в 64-битной Slackware. Отсюда и название «32-битный пакет совместимости».
  
-Я решил, что если 32-битные пакеты совместимости для Slackware буду делать я сам, это будет пустой тратой загрузочного канала.  В конце концов, вероятно, у вас уже есть купленный DVD Slackware 14.1, то есть уже имеется в наличии и 64-битная, и 32-битная версии Slackware... в противном случае дерево пакетов 32-битной Slackware, безусловно, доступно для свободной загрузки ;-)+Я решил, что если 32-битные пакеты совместимости для Slackware буду делать я сам, это будет пустой тратой загрузочного канала.  В конце концов, вероятно, у вас уже есть купленный DVD Slackware 14.2, то есть уже имеется в наличии и 64-битная, и 32-битная версии Slackware... в противном случае дерево пакетов 32-битной Slackware, безусловно, доступно для свободной загрузки ;-)
  
 Вместо этого я написал несколько сценариев (часть кода написана Fred Emmott для небезызвестной  [[http://slamd64.com/ | Slamd64]]) и обернул их в пакет «//compat32-tools//».  Их назначение — позволить вам самостоятельно извлечь необходимое из произвольного 32-битного пакета Slackware и и использовать его для создания нового пакета, который можно безопасно устанавливать на 64-битной Slackware. Вместо этого я написал несколько сценариев (часть кода написана Fred Emmott для небезызвестной  [[http://slamd64.com/ | Slamd64]]) и обернул их в пакет «//compat32-tools//».  Их назначение — позволить вам самостоятельно извлечь необходимое из произвольного 32-битного пакета Slackware и и использовать его для создания нового пакета, который можно безопасно устанавливать на 64-битной Slackware.
Строка 209: Строка 251:
   * //convertpkg-compat32//\\ Этот сценарий принимает 32-битный пакет Slackware и собирает на его основе пакет «-compat32», который можно безопасно установить (при помощи «installpkg») на Slackware64, параллельно с 64-битной версией того же самого пакета.  Например, допустим, потребовались 32-битные библиотеки из пакета «mesa». Берём пакет «mesa» из 32-битной Slackware (''x/mesa-7.5-i486-1.txz'') и выполняем <code>   * //convertpkg-compat32//\\ Этот сценарий принимает 32-битный пакет Slackware и собирает на его основе пакет «-compat32», который можно безопасно установить (при помощи «installpkg») на Slackware64, параллельно с 64-битной версией того же самого пакета.  Например, допустим, потребовались 32-битные библиотеки из пакета «mesa». Берём пакет «mesa» из 32-битной Slackware (''x/mesa-7.5-i486-1.txz'') и выполняем <code>
 # convertpkg-compat32 -i /path/to/mesa-7.5-i486-1.txz # convertpkg-compat32 -i /path/to/mesa-7.5-i486-1.txz
-</code> который создаст новый пакет ''mesa-compat32-7.5-x86_64-1.txz''. Этот новый пакет (созданный в каталоге ''/tmp'', если не указали другой каталог) основан на прежнем 32-битном пакете, но не содержит лишнего.  Смена базового имени пакета (//mesa// на //mesa-compat32//) позволяет установить этот новый пакет в Slackware64, где он сможет сосуществовать с 64-битным пакетом //mesa// не перезаписывая его файлов.\\ Временные файлы, оставленные сценарием в каталоге «''/tmp/package-<prgnam>-compat32''», можно удалить.+</code> который создаст новый пакет ''mesa-compat32-7.5-x86_64-1compat32.txz''. Этот новый пакет (созданный в каталоге ''/tmp'', если не указали другой каталог) основан на прежнем 32-битном пакете, но не содержит лишнего.  Смена базового имени пакета (//mesa// на //mesa-compat32//) позволяет установить этот новый пакет в Slackware64, где он сможет сосуществовать с 64-битным пакетом //mesa// не перезаписывая его файлов.\\ Временные файлы, оставленные сценарием в каталоге «''/tmp/package-<prgnam>-compat32''», можно удалить.
  
   * //massconvert32.sh//\\ Этот сценарий содержит внутренний список пакетов, которые я считаю основой 32-битной Slackware. Он использует упомянутый выше сценарий «//convertpkg-compat32//» для конвертации пакетов по внутреннему списку в «-compat32».\\ Этот сценарий достаточно запустить один раз, например, как показано ниже (в примере считается, что 32-битный DVD Slackware смонтирован в ''/mnt/dvd''): <code>   * //massconvert32.sh//\\ Этот сценарий содержит внутренний список пакетов, которые я считаю основой 32-битной Slackware. Он использует упомянутый выше сценарий «//convertpkg-compat32//» для конвертации пакетов по внутреннему списку в «-compat32».\\ Этот сценарий достаточно запустить один раз, например, как показано ниже (в примере считается, что 32-битный DVD Slackware смонтирован в ''/mnt/dvd''): <code>
 # massconvert32.sh -i /mnt/dvd/slackware -d ~/compat32 # massconvert32.sh -i /mnt/dvd/slackware -d ~/compat32
-</code> В результате примерно 60 Мб новых пакетов будут записаны во вновь созданный каталог ''~/compat32'' (имя каталога выбрано для примера и, конечно, может быть произвольным).  Эти пакеты содержат 32-битный костяк мультибиблиотечной системы Slackware64.\\ Установите их при помощи «''installpkg''», и они обеспечат вам достаточно полный 32[[http://example.com|Внешняя ссылка]]-битный слой совместимости поверх Slackware64: <code>+</code> В результате примерно 150 МБ новых пакетов будут записаны во вновь созданный каталог ''~/compat32'' (имя каталога выбрано для примера и, конечно, может быть произвольным).  Эти пакеты содержат 32-битный костяк мультибиблиотечной системы Slackware64.\\ Установите их при помощи «''installpkg''», и они обеспечат вам достаточно полный 32[[http://example.com|Внешняя ссылка]]-битный слой совместимости поверх Slackware64: <code>
 # installpkg ~/compat32/*/*.t?z # installpkg ~/compat32/*/*.t?z
 </code> Конечно, при обновлении с предыдущих версий этих пакетов (например, при обновлении 64-битной Slackware до новой версии) нужно использовать «''upgradepkg --install-new''» вместо «''installpkg''»: <code> </code> Конечно, при обновлении с предыдущих версий этих пакетов (например, при обновлении 64-битной Slackware до новой версии) нужно использовать «''upgradepkg --install-new''» вместо «''installpkg''»: <code>
Строка 252: Строка 294:
   - В качестве исключения, компилировать пакет «wine» необходимо с «ARCH=x86_64», поскольку он будет установлен непосредственно на мультибиблиотечный компьютер без преобразования в пакет «compat32».   - В качестве исключения, компилировать пакет «wine» необходимо с «ARCH=x86_64», поскольку он будет установлен непосредственно на мультибиблиотечный компьютер без преобразования в пакет «compat32».
   - Для установки этого 32-битного пакета на мультибиблиотечную Slackware64, его нужно преобразовать в совместимый пакет «compat32»: \\ <code>   - Для установки этого 32-битного пакета на мультибиблиотечную Slackware64, его нужно преобразовать в совместимый пакет «compat32»: \\ <code>
-# convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.txz +# convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.txz 
-# upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz+# upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz
 </code> </code>
  
Строка 269: Строка 311:
  
 <code bash> <code bash>
-Серия A/:+Набор A/:
  
 aaa_elflibs aaa_elflibs
Строка 278: Строка 320:
 dbus dbus
 e2fsprogs e2fsprogs
 +eudev
 +libgudev
 openssl-solibs openssl-solibs
 udev udev
 util-linux util-linux
 +xz
  
-Серия AP/:+Набор AP/:
  
 +cups
 +cups-filters
 flac flac
 mariadb mariadb
Строка 290: Строка 337:
 sqlite sqlite
  
-Серия D/:+Набор D/:
  
 libtool libtool
 +llvm
 +opencl-headers
  
-Серия L/:+Набор L/:
  
 +SDL2
 alsa-lib alsa-lib
 alsa-oss alsa-oss
 +alsa-plugins
 atk atk
 audiofile audiofile
 cairo cairo
 dbus-glib dbus-glib
 +elfutils
 esound esound
 expat expat
 +ffmpeg
 +fftw
 freetype freetype
 fribidi fribidi
 gamin gamin
 +gc
 gdk-pixbuf2 gdk-pixbuf2
 giflib giflib
Строка 314: Строка 369:
 gtk+2 gtk+2
 gst-plugins-base gst-plugins-base
 +gst-plugins-base0
 gst-plugins-good gst-plugins-good
 +gst-plugins-good0
 +gst-plugins-libav
 gstreamer gstreamer
 +gstreamer0
 hal hal
 harfbuzz harfbuzz
 icu4c icu4c
 jasper jasper
 +json-c
 +lame
 lcms lcms
 lcms2 lcms2
 +libaio
 libart_lgpl libart_lgpl
 +libasyncns
 +libclc
 +libedit
 libelf libelf
 libexif libexif
Строка 331: Строка 396:
 libieee1284 libieee1284
 libjpeg libjpeg
 +libjpeg-turbo
 libmng libmng
 libmpc libmpc
 +libnl3
 +libnotify
 libogg libogg
 libpcap libpcap
Строка 341: Строка 409:
 libtermcap libtermcap
 libtiff libtiff
 +libunistring
 libusb libusb
 libvorbis libvorbis
 libxml2 libxml2
 libxslt libxslt
 +lzo
 ncurses ncurses
 +ocl-icd
 +openjpeg
 +orc
 pango pango
 popt popt
 +pulseaudio
 +python-six
 qt qt
 readline readline
 +sbc
 sdl sdl
 seamonkey-solibs seamonkey-solibs
 +speexdsp
 startup-notification startup-notification
 svgalib svgalib
Строка 357: Строка 434:
 zlib zlib
  
- +Набор N/:
-Серия N/:+
  
 curl curl
Строка 365: Строка 441:
 libgcrypt libgcrypt
 libgpg-error libgpg-error
 +libtirpc
 nettle nettle
 openldap-client openldap-client
 openssl openssl
 p11-kit p11-kit
 +samba
  
-Серия X/:+Набор X/:
  
 fontconfig fontconfig
Строка 392: Строка 470:
 libXfixes libXfixes
 libXfont libXfont
 +libXfont2
 libXfontcache libXfontcache
 libXft libXft
Строка 412: Строка 491:
 libdmx libdmx
 libdrm libdrm
 +libepoxy
 libfontenc libfontenc
 +libinput
 libpciaccess libpciaccess
 +libva
 +libva-intel-driver
 +libvdpau
 libxcb libxcb
 +libxshmfence
 mesa mesa
 pixman pixman
 +vulkan-sdk
 xcb-util xcb-util
  
-Серия XAP/:+Набор XAP/:
  
 sane sane
-xsane 
- 
 </code> </code>
  
Строка 432: Строка 516:
  
   * [[http://slackware.com/~alien/multilib/ | http://slackware.com/~alien/multilib/]]   * [[http://slackware.com/~alien/multilib/ | http://slackware.com/~alien/multilib/]]
-  * [[http://taper.alienbase.nl/mirrors/people/alien/multilib/ | http://taper.alienbase.nl/mirrors/people/alien/multilib/]] +  * [[http://bear.alienbase.nl/mirrors/people/alien/multilib/ | http://bear.alienbase.nl/mirrors/people/alien/multilib/]] 
-  * [[http://slackware.org.uk/people/alien/multilib/| http://slackware.org.uk/people/alien/multilib/]]+  * [[http://slackware.uk/people/alien/multilib/| http://slackware.uk/people/alien/multilib/]]
   * [[http://alien.slackbook.org/slackware/multilib/| http://alien.slackbook.org/slackware/multilib/]]   * [[http://alien.slackbook.org/slackware/multilib/| http://alien.slackbook.org/slackware/multilib/]]
-  * [[http://slackbuilds.org/mirror/alien/multilib/| http://slackbuilds.org/mirror/alien/multilib/]]+  * [[http://slackbuilds.org/mirror/alien/multilib/| http://slackbuilds.org/mirror/alien/multilib/]]
  
 ===== Сторонние инструменты поддержки ===== ===== Сторонние инструменты поддержки =====
Строка 452: Строка 536:
 ===== Благодарности ===== ===== Благодарности =====
  
-  * Большое спасибо Fred Emmott, создателю Slamd64 — оригинального неофициального 64-битного форка Slackware.  Хотя Slackware64 и не основана на его работе, большая часть моих знаний про настройку 32-битной части мультибиблиотечного Linux из его записок в Slamd64.+  * Большое спасибо Fred Emmott, создателю Slamd64 — оригинального неофициального 64-битного форка Slackware.  Хотя Slackware64 и не основана на его работе, большая часть моих знаний про настройку 32-битной части мультибиблиотечного Linux из его записок в Slamd64.\\ Заметьте, что в Slamd64 имеются отдельные мультибиблиотечные 64-битные и 32-битные пакеты gcc/glibc. Тем не менее, я считаю, что правильнее сохранять эти основные мультибиблиотечные пакеты неразделёнными.  Я последовал концепции, используемой в пакете //binutils// из самой Slackware64, который сочетает 64-битные и 32-битные мультибиблиотечные возможности в едином пакете.
  
   * Cross Linux From Scratch.\\ Вики CLFS (http://trac.cross-lfs.org/wiki/read#ReadtheCrossLinuxFromScratchBookOnline) из разряда «обязательно к прочтению», если хотите разобраться с портированием Linux на новую архитектуру. Там я позаимствовал несколько идей, концепций и патчей при создании Slackware64 с нуля, и опять, когда я создавал с нуля свои мультибиблиотечные пакеты gcc/glibc (мой README  по мультибиблиотечности-с-нуля доступен в каталоге ''./source'').   * Cross Linux From Scratch.\\ Вики CLFS (http://trac.cross-lfs.org/wiki/read#ReadtheCrossLinuxFromScratchBookOnline) из разряда «обязательно к прочтению», если хотите разобраться с портированием Linux на новую архитектуру. Там я позаимствовал несколько идей, концепций и патчей при создании Slackware64 с нуля, и опять, когда я создавал с нуля свои мультибиблиотечные пакеты gcc/glibc (мой README  по мультибиблиотечности-с-нуля доступен в каталоге ''./source'').
 ru:slackware:multilib ()