[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/05/29 09:06 (UTC)] – Sync with En 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>
  
  
Строка 50: Строка 50:
 WGETOPTS="--timeout=5 --tries=1" WGETOPTS="--timeout=5 --tries=1"
 GREYLIST=on GREYLIST=on
-PKGS_PRIORITY=( multilib restricted alienbob ktown_testing +PKGS_PRIORITY=( multilib restricted alienbob ktown 
-REPOPLUS=( slackpkgplus multilib restricted alienbob ktown_testing +REPOPLUS=( slackpkgplus multilib restricted alienbob ktown 
-MIRRORPLUS['multilib']=http://taper.alienbase.nl/mirrors/people/alien/multilib/current/ +MIRRORPLUS['multilib']=http://bear.alienbase.nl/mirrors/people/alien/multilib/current/ 
-MIRRORPLUS['alienbob']=http://taper.alienbase.nl/mirrors/people/alien/sbrepos/current/x86_64/ +MIRRORPLUS['alienbob']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/current/x86_64/ 
-MIRRORPLUS['restricted']=http://taper.alienbase.nl/mirrors/people/alien/restricted_sbrepos/current/x86_64/ +MIRRORPLUS['restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/current/x86_64/ 
-MIRRORPLUS['ktown_testing']=http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86_64/+MIRRORPLUS['ktown']=http://bear.alienbase.nl/mirrors/alien-kde/current/latest/x86_64/
 MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/ MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
 </file>  </file> 
Строка 66: Строка 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>
Строка 80: Строка 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>
Строка 96: Строка 96:
 [0-9]+compat32</code> С другой стороны, если используете расширение slackpkg [[http://slakfinder.org/slackpkg+.html|slackpkg+]], то **не** включайте эти пакеты в чёрный список, иначе slackpkg+ не сможет ими управлять!</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>
  
Строка 187: Строка 187:
     * glibc-solibs-2.17_multilib-x86_64-10alien.txz     * glibc-solibs-2.17_multilib-x86_64-10alien.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-5.3.0_multilib-x86_64-2alien.txz +    * gcc-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-g++-5.3.0_multilib-x86_64-2alien.txz +    * gcc-brig-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gfortran-5.3.0_multilib-x86_64-2alien.txz +    * gcc-g++-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gnat-5.3.0_multilib-x86_64-2alien.txz +    * gcc-gfortran-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-go-5.3.0_multilib-x86_64-2alien.txz +    * gcc-gnat-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-java-5.3.0_multilib-x86_64-2alien.txz +    * gcc-go-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-objc-5.3.0_multilib-x86_64-2alien.txz+    * gcc-objc-7.1.0_multilib-x86_64-2alien.txz 
   * Библиотеки GNU libc:   * Библиотеки GNU libc:
-    * glibc-2.22_multilib-x86_64-4alien.txz +    * glibc-2.25_multilib-x86_64-3alien.txz 
-    * glibc-i18n-2.22_multilib-x86_64-4alien.txz +    * glibc-i18n-2.25_multilib-x86_64-3alien.txz 
-    * glibc-profile-2.22_multilib-x86_64-4alien.txz +    * glibc-profile-2.25_multilib-x86_64-3alien.txz 
-    * glibc-solibs-2.22_multilib-x86_64-4alien.txz +    * glibc-solibs-2.25_multilib-x86_64-3alien.txz
-    * glibc-zoneinfo-2015g_multilib-noarch-4alien.txz+
  
-Есть один дополнительный пакет для установки программой «installpkg»:+<note>После обновления до gcc 7 пакета ''gcc-java'' больше не существует, так как его разработка прекращена.</note>​ 
 +<note>​Пакет ''​glibc-zoneinfo''​ не содержит кода и поэтому не входит в мультилиб. Этот пакет устанавливается из 64-битной Slackware.</note> 
 + 
 +====Все версии Slackware==== 
 + 
 +Есть один дополнительный пакет для установки программой «installpkg».  Актуальная версия для каждого из выпусков Slackware может отличаться, но пакет находится в том же каталоге, что и мультибиблиотечные версии ''​gcc''​ и ''​glibc'':
  
   * «32-битный инструментарий» (сценарий, облегчающий создание 32-битных пакетов)   * «32-битный инструментарий» (сценарий, облегчающий создание 32-битных пакетов)
     * compat32-tools-3.7-noarch-1alien.tgz     * compat32-tools-3.7-noarch-1alien.tgz
- 
-<note>В Slamd64 имеются отдельные мультибиблиотечные 64-битные и 32-битные пакеты gcc/glibc.\\ Тем не менее, я считаю, что правильнее сохранять эти основные мультибиблиотечные пакеты неразделёнными.  Я последовал концепции, используемой в пакете //binutils// из самой Slackware64, который сочетает 64-битные и 32-битные мультибиблиотечные возможности в едином пакете.</note> 
  
  
Строка 223: Строка 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.
Строка 323: Строка 341:
 libtool libtool
 llvm llvm
 +opencl-headers
  
 # Набор L/: # Набор L/:
  
 +SDL2
 alsa-lib alsa-lib
 alsa-oss alsa-oss
Строка 336: Строка 356:
 esound esound
 expat expat
 +ffmpeg
 fftw fftw
 freetype freetype
 fribidi fribidi
 gamin gamin
 +gc
 gdk-pixbuf2 gdk-pixbuf2
 giflib giflib
Строка 350: Строка 372:
 gst-plugins-good gst-plugins-good
 gst-plugins-good0 gst-plugins-good0
 +gst-plugins-libav
 gstreamer gstreamer
 gstreamer0 gstreamer0
Строка 357: Строка 380:
 jasper jasper
 json-c json-c
 +lame
 lcms lcms
 lcms2 lcms2
Строка 362: Строка 386:
 libart_lgpl libart_lgpl
 libasyncns libasyncns
 +libclc
 +libedit
 libelf libelf
 libexif libexif
Строка 374: Строка 400:
 libmpc libmpc
 libnl3 libnl3
 +libnotify
 libogg libogg
 libpcap libpcap
Строка 382: Строка 409:
 libtermcap libtermcap
 libtiff libtiff
 +libunistring
 libusb libusb
 libvorbis libvorbis
Строка 388: Строка 416:
 lzo lzo
 ncurses ncurses
 +ocl-icd
 openjpeg openjpeg
 orc orc
Строка 393: Строка 422:
 popt popt
 pulseaudio pulseaudio
 +python-six
 qt qt
 readline readline
Строка 416: Строка 446:
 openssl openssl
 p11-kit p11-kit
 +samba
  
 # Набор X/: # Набор X/:
Строка 439: Строка 470:
 libXfixes libXfixes
 libXfont libXfont
 +libXfont2
 libXfontcache libXfontcache
 libXft libXft
Строка 461: Строка 493:
 libepoxy libepoxy
 libfontenc libfontenc
 +libinput
 libpciaccess libpciaccess
 libva libva
Строка 469: Строка 502:
 mesa mesa
 pixman pixman
 +vulkan-sdk
 xcb-util xcb-util
  
Строка 482: Строка 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/]]
Строка 502: Строка 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 ()