[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

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
Остання ревізіяПо сторонах наступні версії
uk:slackware:multilib [2014/07/05 20:15 (UTC)] – [Slackware64 current] streamthreaderuk:slackware:multilib [2016/11/26 23:13 (UTC)] – [Додавання Multilib в Slackware з архітектурою x86_64] streamthreader
Рядок 1: Рядок 1:
-<note important>In Translating...</note>+===== Додавання Multilib в Slackware з архітектурою x86_64 =====
  
- +Це стаття містить інструкцію по тому, як створити //справжню multilib// Slackware64. Multilib 64-розрядний Linux, спроможний запускати як 64-х так і 32-х розрядні програми. Документ [[http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64 | Стандарт ієрархії файлової системи]] описує метод, який є оптимальним для отримання чіткого розділення між 32-х та 64-х бітним програмним забезпеченням в одній системі. Коли була розпочата розробка порту (адаптованої версії) "Slackware64" (офіційний порт під архітектуру [[wp>x86_64]]) ми вирішили адаптувати цей стандарт. Тому Slackware64 була налаштована шукати 64-х розрядні бібліотеки у директоріях ''/lib64'' та ''/usr/lib64''. Ось чому я називаю її Slackware64 "multilib-ready"незважаючи на тещо 32-х розрядні бібліотеки вона буде шукати у директоріях ''/lib'' та ''/usr/lib'', 32-х розрядних програми чи бібліотек, з системою Slackware64 не постачається. Користувачу потрібно зробити декілька кроків, перед тим як систему можна буде називати Slackware64 "multilib-enabled".
-===== Додавання Мульти-Бібліотечності в Slackware з архітектурою x86_64 ===== +
- +
-Це стаття містить інструкцію по тому, як створити //справжню мультибібліотечну// Slackware64. Мультибібліотечна Slackware64 спроможна запускати як 64-х розрядні так і 32-х розрядні програми. У документі [[http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64 | Стандарт ієрархії файлової системи]] описується оптимальне розміщення 32-х та 64-х бітного програмного забезпечення в одній системі. Коли була розпочата розробка порту "Slackware64" (офіційний порт під архітектуру [[wp>x86_64]]) ми вирішили адаптуватися під цей стандарт. Тому Slackware64 налаштована шукати 64-х розрядні бібліотеки у директоріях ''/lib64'' та ''/usr/lib64''. Ось чому вона має назву Slackware64 "multilib-ready"хоча, 32-х розрядні бібліотеки вона буде шукати у директоріях ''/lib'' та ''/usr/lib'', але 32-х розрядних програми чи бібліотек, з системою не постачається. Є декілька кроків, які повинен зробити користувачщоб перетворити систему на Slackware64 "multilib-enabled".+
  
 Це досягається наступним чином: Це досягається наступним чином:
-  - Спочатку треба перемкнути в режим мультибібліотечності наступні програми: +  - Спочатку нам потрібно перемкнути в режим мульти-бібліотечності наступні програми: 
-    * //glibc// (так як glibc підтримує //запуск// як 32-х так і 64-х розрядних програм), а також +    * //glibc// (тобто glibc який підтримує //запуск// як 32-х так і 64-х розрядних програм), а також 
-    * //gcc// (так як він може //скомпілювати// як 32-х так і 64-х розрядні програми). +    * //gcc// (так як він спроможний //компілювати// як 32-х так і 64-х розрядні програми). 
-  - Після цього треба взяти системні бібліотеки з 32-х розрядної Slackware та скопіювати до 64-х розрядної, для створення 32-х розрядного програмного шару.+  - Після цього треба взяти системні бібліотеки з 32-х розрядної Slackware та встановити в 64-х розрядну, для створення 32-х розрядного програмного шару.
  
-<note>Slackware для архітектури x86_64 (чи скорочено "//Slackware64//") це чиста 64-х розрядна операційна система, але вона дуже просто може бути перетворена на варіант з мультибібліотечністю. //З коробки Slackware64 може виконувати та збирати тільки 32-х розрядне програмне забезпечення.//</note>+<note>Slackware для архітектури x86_64 (чи скорочено "//Slackware64//") це лише чиста 64-х розрядна операційна система, але вона дуже просто може бути оновлена до підтримки мульти-бібліотечності. //З коробки Slackware64 може виконувати та збирати тільки 64-х розрядне програмне забезпечення.//</note>
  
-Коли вийшов Skackware64, він мав перевагу над 64-розрядними "форками" які були на той час доступні. Ці форки додавали 32-розрядний шар завдяки повній перекомпіляції великої кількості програмного забезпечення як 32-х розрядного +Коли вийшла Skackware64, вона мала перевагу над 64-розрядними "форками" які були на той час доступні. Ці форки додавали 32-розрядний шарзавдяки перекомпіляції великої кількості своїх пакетів під 32-х розрядну архітектуруЗ іншого боку, Slackwareдистрибутив який виходить як 32-х так і в 64-х розрядному вигляді, обидва варіанти розробляються паралельно. Це означає, що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мульти-бібліотечності до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось чому ми не додаємо відразу мульти-бібліотечніть до Slackware64 - натомість ми створюємо передумову, завдяки якій у вас є вибір, та і інструкція по тому як зробити мульти-бібліотечну систему.  \\ В [[#detailed_instructions | розділі нижче]], я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "mesa") та переупакуємо їх вміст в пакунки "mesa-compat32", які можна буде встановити напряму в Slackware64.
- +
-Іншими словами, Slackware це дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді, обидва варіанти розробляються паралельно. Це означає, що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мультибібліоті до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось чому ми не додаємо відразу мультибібліотечніть до Slackware64 - на томість ми створюємо передумову, завдяки якій у вас є вибір, та і інструкція по тому як зробити мультибібліотечну систему.  \\ В [[#detailed_instructions | розділі нижче]], я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "mesa" пакунки) та переупакуємо їх вміст в "mesa-compat32" пакунки, які можна буде встановити напряму в Slackware64.+
  
 ===== Переваги мульти-бібліотечної системи ===== ===== Переваги мульти-бібліотечної системи =====
Рядок 22: Рядок 17:
 Ось декілька прикладів програмного забезпечення, яке потребує наявності мульти-бібліотечності в системі Slackware з архітектурою 64, тому що воно не може бути запущено чи зібрано без сумісного 32-х розрядного шару: Ось декілька прикладів програмного забезпечення, яке потребує наявності мульти-бібліотечності в системі Slackware з архітектурою 64, тому що воно не може бути запущено чи зібрано без сумісного 32-х розрядного шару:
   * [[http://winehq.org/ | Wine]] \\ Більшість програм для платформи Windows все ще 32-х розрядні, і для того зоб запустити таке ПЗ на Linux, вам необхідна 32-х розрядна версія Wine.   * [[http://winehq.org/ | Wine]] \\ Більшість програм для платформи Windows все ще 32-х розрядні, і для того зоб запустити таке ПЗ на Linux, вам необхідна 32-х розрядна версія Wine.
-  * [[http://www.virtualbox.org/ | VirtualBox]] \\ Популярна програмна віртуальна машина. Так-як ця програма (частково) з відкритим кодом, для неї досі треба 32-х розрядний шар сумісності в системі Slackware 64-х розрядної архітектури. +  * [[http://www.virtualbox.org/ | VirtualBox]] \\ Популярна програмнавіртуальна машина. Так-як ця програма (частково) з відкритим кодом, для неї досі треба 32-х розрядний шар сумісності в системі Slackware 64-х розрядної архітектури
-  * [[http://www.skype.com/ | Skype]], [[http://www.citrix.com/lang/English/home.asp | Citrix клієнт]],  ... \\ Ці програми проприєтарні, та їх код закрито. Ми залежні від розробника, який не виробляє 64-х розрядні бінарні файли. В цьому випадку, саме така ситуація.+  * [[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 клієнт]],  ... \\ Ці програми проприєтарні, та їх код закрито. Ми залежимо від розробника, який не виробляє 64-х розрядні бінарні файли. В цьому випадку, саме така ситуація.
  
 На радість, 64-розрядні програми набувають все більшої популярності. Adobe довгий час не випускав, але з якоїсь миті, нарешті випустив Flash плагін для 64-х розрядних операційних систем. Sun (поглинутий компанією Oracle) випустили 64-х розрядну версію плагіна Java. Ці дві великі події подали сигнал, що треба розробляти 64-х розрядну версію - Slackware64. На радість, 64-розрядні програми набувають все більшої популярності. Adobe довгий час не випускав, але з якоїсь миті, нарешті випустив Flash плагін для 64-х розрядних операційних систем. Sun (поглинутий компанією Oracle) випустили 64-х розрядну версію плагіна Java. Ці дві великі події подали сигнал, що треба розробляти 64-х розрядну версію - Slackware64.
Рядок 31: Рядок 27:
 Ви можете завантажити пакет multilib-enabled та скрипти з мого веб-сайту: http://slackware.com/~alien/multilib/ . Ви можете завантажити пакет multilib-enabled та скрипти з мого веб-сайту: http://slackware.com/~alien/multilib/ .
  
-Крім декількох README файлів (ця стаття з Wiki є поліпшеною версією тих README файлів), ви знайдете по одній під-дерикторії на кожен реліз Slackware, відносно кореневої папки "//multilib//". Також існує директорія під назвою "source". В папці "//source//" знаходяться пакунки з сирцевим кодом та скриптами збірки SlackBuild.\\ Але набагато цікавіше - бінарні пакунки доступні в під-директорії //<slackware_номер_релізу>// яка знаходиться під кореневою папкою. Кожна така директорія містить під-директорію "//slackware64-compat32//" де ви знайдете перезібрані 32-розрядні пакунки, готові для встановлення для 64-х розрядної Slackware.+Крім декількох README файлів (ця стаття з Wiki є поліпшеною версією тих README файлів), ви знайдете по одній під-дерикторії на кожен 64-розрядний випуск Slackware, відносно кореневої папки "//multilib//". Також існує директорія під назвою "source". В папці "//source//" знаходиться сирцевий код пакунків, та скрипти для збірки SlackBuild.\\ Але дійсно цікаве - бінарні пакунки, які доступні в під-директорії //<slackware_номер_релізу>// яка знаходиться під кореневою директорією. Кожна така директорія містить під-директорію "//slackware64-compat32//" де ви знайдете перезібрані 32-розрядні пакунки, готові для встановлення на 64-х розрядну Slackware. 
 + 
 +===== Підтримання пакунків муьлти-бібліотечності в актуальному стані =====
  
-<note tip>Для того, щоб бути в курсі оновлень, Я наполягаю на тому, щоб ви слідкували за [[http://slackware.com/~alien/multilib/ChangeLog.txt | Змінами]] ([[http://slackware.com/~alien/multilib/ChangeLog.rss|RSS новинами]]) які я обслуговуваю для моїх мульти-бібліотечних пакунків. За звичай, я //поновлюю пакунки glibc та gcc// на слідуючий день, після оновлення цих пакунків у Slackware. Ще слідкуйте за [[#rd_party_support_tools | compat32pkg]] інструментом Себастіана Балета, який автоматизує цей процес, він схожий на slackpkg.</note>+Для того, щоб бути в курсі оновлень, Я наполягаю на тому, щоб ви слідкували за [[http://slackware.com/~alien/multilib/ChangeLog.txt | журналом змін]] ([[http://slackware.com/~alien/multilib/ChangeLog.rss|RSS новинами]]) які я обслуговую для моїх мульти-бібліотечних пакунків. За звичай, я //оновлюю пакунки glibc та gcc// наступного дня, після оновлення цих пакунків у Slackware.
  
 +Автоматизація:
 +  - Перевірте інструмент [[#rd_party_support_tools | compat32pkg]] Себастєна Балета, який автоматизує цей процес, на зразок як це робить 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, та використовуючи тестовий репозіторій Alien BOB-а для KDE. PKGS_PRIORITY Забезпечує, що мільти-бібліотечні пакунки для gcc та glibc має перевагу, над оригінальним від Slackware. Ключове слово "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>
 ===== Включення підтримки мульти-бібліотечності в Slackware64 ===== ===== Включення підтримки мульти-бібліотечності в Slackware64 =====
  
 ==== Інструкція по швидкому методу ==== ==== Інструкція по швидкому методу ====
  
-Цей розділ містить основні інструкції щодо додавання повної мультибібліотечної сумісності в систему Slackware64. Якщо ви хочете зрозуміти більш детальніше цей процес, чи вам потрібна інформація по збірці 32-х розрядного ПЗ на Slackware64, вам треба ознайомитись з наступним розділом.\\ Увага, символ "''#''" означає що це //командний рядок користувача root//.+Цей розділ містить основні інструкції щодо додавання повної мульти-бібліотечної сумісності в систему Slackware64. Якщо ви хочете зрозуміти більш детальніше цей процес, чи вам потрібна інформація по збірці 32-х розрядного ПЗ на Slackware64, вам треба ознайомитись з наступними розділами.\\ Увага, символ "''#''" означає що це //командний рядок користувача root//.
  
-  * Завантажте пакунки з мого веб сайту (я даю посилання [[#obtaining_multilib_packages | в попередньому розділі]], але в цьому прикладі я використовую дзеркало). Припустимо що у вас запущена Slackware 14.1. Виконайте команди: <code> +  * Завантажте пакунки з мого веб сайту (я дав посилання [[#obtaining_multilib_packages | в попередньому розділі]], але в цьому прикладі я використовую дзеркало). Припустимо що у вас запущена Slackware 14.2. Виконайте команди: <code> 
-# SLACKVER=14.1+# SLACKVER=14.2
 # mkdir multilib # mkdir multilib
 # cd multilib # cd multilib
Рядок 48: Рядок 68:
 # cd ${SLACKVER} # cd ${SLACKVER}
 </code> </code>
-  * Поновіть в 64-х розрядній Slackware такі пакунки //gcc//" та "//glibc//" до мульти-бібліотечних версій.\\ Виконайте команду: <code>+  * Оновіть в 64-х розрядній Slackware пакунки //gcc//" та "//glibc//" до мульти-бібліотечних версій.\\ Виконайте команду: <code>
 # upgradepkg --reinstall --install-new *.t?z # upgradepkg --reinstall --install-new *.t?z
 </code> після того як ви перейшли до директорії в яку завантажили ці пакунки.\\ Ця команда встановить допоміжні пакунки під назвою "//compat32-tools//". </code> після того як ви перейшли до директорії в яку завантажили ці пакунки.\\ Ця команда встановить допоміжні пакунки під назвою "//compat32-tools//".
   * Якщо ви також завантажили директорію //slackware64-compat32// (в моєму прикладі команда "''lftp''" робить це автоматично) ви будете раді пізнати, що необхідні 32-х розрядні пакунки вже перетворенні як треба! Все що від вас потрібно, це виконати команду: <code>   * Якщо ви також завантажили директорію //slackware64-compat32// (в моєму прикладі команда "''lftp''" робить це автоматично) ви будете раді пізнати, що необхідні 32-х розрядні пакунки вже перетворенні як треба! Все що від вас потрібно, це виконати команду: <code>
 # upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z # upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z
-</code> яка встановить усі необхідні 32-х розрядні пакунки (чи поновить їх, якщо вони вже встановлені зі старою версією набору мульти-бібліотечності). Це все! +</code> яка встановить відконвертовані 32-х розрядні пакунки (чи оновить їх, якщо вони вже були встановлені зі старої версії мульти-бібліотечності). Це все! 
-  * Якщо ви не знайшли директорію //slackware64-compat32// це значить, що в її не завантажили, або дзеркало з пакунками не містить необхідну директорію. В цьому випадку, ви можете самі перетворити 32-х розрядні пакунки для встановлення. Це не важко, та займе декілька хвилин:+  * Якщо ви не знаходите директорію //slackware64-compat32// це означає, що в її не завантажили, або дзеркало з пакунками не містить необхідну директорію. В цьому випадку, ви можете самі переконвертувати 32-х розрядні пакунки для встановлення. Це не важко, та займе декілька хвилин:
   * Найшвидше буде, якщо у вас є локальна копія з оригінальними 32-х розрядними пакунками від Slackware, (в цьому випадку воно має назву //локальне дзеркало// ). В тих, у кого є офіційний DVD носій, може використати його: він двосторонній, та 32-х розрядна версія Slackware знаходиться на одній із сторін. __Для цього прикладу__ Я очікую, що у вас є локальна копія 32-х розрядної Slackware у директорії "''/home/ftp/pub/slackware/slackware-14.1/slackware/''".\\ Де розміщені під-директорії 'a', 'ap', 'd', 'l', 'n' та 'x'. (Якщо у вас змонтовано DVD диск, то директорія може знаходитись тут "''/media/SlackDVD/slackware/''" але цей варіант я тут не використовую).   * Найшвидше буде, якщо у вас є локальна копія з оригінальними 32-х розрядними пакунками від Slackware, (в цьому випадку воно має назву //локальне дзеркало// ). В тих, у кого є офіційний DVD носій, може використати його: він двосторонній, та 32-х розрядна версія Slackware знаходиться на одній із сторін. __Для цього прикладу__ Я очікую, що у вас є локальна копія 32-х розрядної Slackware у директорії "''/home/ftp/pub/slackware/slackware-14.1/slackware/''".\\ Де розміщені під-директорії 'a', 'ap', 'd', 'l', 'n' та 'x'. (Якщо у вас змонтовано DVD диск, то директорія може знаходитись тут "''/media/SlackDVD/slackware/''" але цей варіант я тут не використовую).
   * Створіть нову пусту директорію (давайте назвемо її 'slackware64-compat32') та перейдіть до неї: <code>   * Створіть нову пусту директорію (давайте назвемо її 'slackware64-compat32') та перейдіть до неї: <code>
Рядок 235: Рядок 255:
 <note important>Якщо ви плануєте використати скрипт ''convertpkg-compat32'' для конвертації **не-Slackware** пакунка в //-compat32//, Я повинен вас попередити. Цей інструмент було створено лише для однієї задачі, це створення з 32-х розрядних пакунків в набір мільти-бібліотечності для Slackware64. Та такі дії як, вилучення деяких компонентів з оригінальних 32-х розрядних пакунків - компоненти які були встановлені як частина оригінальних 64-х розрядних пакунків.\\ В багатьох випадках, коли ви завантажуєте не-Slackware 32-х розрядний пакунок, та хочете щоб він запрацював на Slackware64, найліпше буде знайти сирцевий код цієї програми, та зібрати 64-х розрядну версію цього пакунка. Альтернативно, ви можете просто //встановити оригінальній// 32-х розрядний пакунок, замість "його конвертації", та спробувати його запустити з командного рядка, щоб побачити помилки про відсутні 32х розрядні бібліотеки, які потрібно дістати з офіційних пакунків Slackware.</note> <note important>Якщо ви плануєте використати скрипт ''convertpkg-compat32'' для конвертації **не-Slackware** пакунка в //-compat32//, Я повинен вас попередити. Цей інструмент було створено лише для однієї задачі, це створення з 32-х розрядних пакунків в набір мільти-бібліотечності для Slackware64. Та такі дії як, вилучення деяких компонентів з оригінальних 32-х розрядних пакунків - компоненти які були встановлені як частина оригінальних 64-х розрядних пакунків.\\ В багатьох випадках, коли ви завантажуєте не-Slackware 32-х розрядний пакунок, та хочете щоб він запрацював на Slackware64, найліпше буде знайти сирцевий код цієї програми, та зібрати 64-х розрядну версію цього пакунка. Альтернативно, ви можете просто //встановити оригінальній// 32-х розрядний пакунок, замість "його конвертації", та спробувати його запустити з командного рядка, щоб побачити помилки про відсутні 32х розрядні бібліотеки, які потрібно дістати з офіційних пакунків Slackware.</note>
  
-===== Running 32-bit programs =====+===== Запуск 32-х розрядних програм =====
  
-Running a pre-compiled 32-bit program is easy after you've done the above system preparationJust downloadinstall and run it!+Запуск вже зібраної 32-х розрядної програми, стане можливим, як тільки ви закінчите підготовку системи як показано вищеЗалишиться тільки завантажитивстановити та запустити її!
  
-At timesyou may run into a program that requires a certain 32-bit Slackware library that you do not yet have available In that casefind out which 32bit Slackware package contains this missing library Use the "//convertpkg-compat32//" script to convert that original 32bit Slackware package and install the resulting 32bit "//compatibility//" package on Slackware64.+Інколибуде траплятись, що ви запустите програму яка потребує конкретні 32-х розрядні бібліотеки, яких у вас немаєВ цьому випадкузнайдіть ці бібліотеки в 32-х розрядних пакунках Slackware. Використайте скрипт "//convertpkg-compat32//" для конвертації знайденого 32-х розрядного пакунку з необхідними бібліотеками у "//сумісний//" пакунок який можна буде встановити в Slackware64.
  
 +===== Компіляція 32-х розрядних програм =====
  
-===== Compiling 32-bit programs =====+В тому випадку, якщо вам необхідно скомпілювати 32-х розрядне програмне забезпечення (wine та grub це яскраві приклади програм, які існують тільки в 32-х розрядному вигляді) знадобиться налаштувати оточення оболонки користувача root, запустивши команду: <code>
  
-In case you need to compile a 32-bit program (wine and grub are two examples of open source programs that are 32-bit only) you first configure root's shell environment by running the command: <code> 
 # . /etc/profile.d/32dev.sh # . /etc/profile.d/32dev.sh
-</code> Note the 'dot' at the beginning of the line that is actually part of the commandlineThe use of the dot is equivalent to the 'source' command. \\ Running this command changes or creates several environment variables The effect of this isthat 32-bit versions of binaries are preferred over 64bit binaries when you compile source code you will be running a 32bit compilation The effect will last until you logout from your root shell.+</code> Звернуть увагу на "крапку" в початку це актуальна частина командиВикористання крапки еквівалентно використання команди 'source'. \\ Виконання цієї команди змінює декілька змінних оточенняЕфект від цього, це зміна пріоритету, 32-х розрядних версій бінарних файлів над 64-х розрядними, на час компіляції 32-х розрядного ПЗ з сирцевого кодуЕфект буде працювати доки ви не вийдете з оболонки користувача root.
  
-In this changed environmentyou will be able to use standard SlackBuilds to build 32-bit packages for Slackware64.  There's a couple of things to keep in mind+В цій модифікованої оболонцізмінних оточення, ви можете використовувати стандартні SlackBuild для створення 32-х розрядних пакунків для Slackware64. Є декілька речей які треба пам’ятати
-  - You have to define the ARCH variable as 'i486' because even on your 'x86_64' computer you are compiling a 32-bit program! \\ This is related to the //triplet// of "$ARCH-slackware-linux" which is normally used in the "configure" command+  - Ви повинні встановити значення змінної ARCH в 'i486', тому що, навіть на комп’ютері з архітектурою 'x86_64', ви збираєте 32-х розрядне ПЗ! \\ Це пов’язано з //triplet// змінною "$ARCH-slackware-linux" який за звичай використовується в команді "configure"
-    As an exceptionyou will have to compile the "wine" package with 'ARCH=x86_64' because you will install this package directly on your multilib computer without converting to a 'compat32' package+  Як винятокви повинні компілювати пакунок "wine" з змінною 'ARCH=x86_64', так як цей пакунок буде встановлюватись напряму в мульти-бібліотечну систему, без переконвертації в сумісний 'compat32' пакунок
-  - If you want to install this 32-bit package on Slackware64-multilib you will have to convert it to a 'compat32' package: \\ <code>+  - Якщо ви хочете встановити цей 32-х розрядний пакунок в систему Slackware64-multilib, ви повинні спочатку конвертувати його в сумісний пакунок 'compat32': \\ <code>
 # convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.tgz # convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.tgz
 # upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz # upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz
 </code> </code>
-===== Caveats =====+===== Застереження =====
  
-  * After installing the "''-compat32''" packagesyou may have to re-install your binary //Nvidia// or //Ati// video X.Org driversThese driver packages contain both 64bit and 32bit libraries to be maximally useful on a 64bit multilib OS. If you installed the driver files for both architecturesthe "''mesa-compat32''" package will overwrite some of the 32bit library files.\\ \\ On the other handif you originally //only// installed the 64bit driver libraries for your Nvidia/Ati cardit is recommended after installation of the //multilib// packagesto re-install the binary driver packageThis time, choose to install the 32bit driver files as well.\\ \\ The graphical 32bit applications that you are going to run on your multilib installation will require these 32bit driver librariesCrashes are likely to occur if you fail to install the correct files.+  * Після встановлення пакунків "''-compat32''", ви повинні пере-встановити бінарні драйвери X.Org для //Nvidia// чи //Ati//Ці пакунки містять обидва варіанти 32-х та 64-х розрядних бібліотек, для максимальної користі на 64-х розрядній ОСЯкщо ви встановили драйвер з файлами для декількох архітектурпакунок "''mesa-compat32''" перезапише деякі 32-х розрядні бібліотеки.\\ \\ Іншою мовоюякщо ви встановили 64-х розрядний драйвер з бібліотеками для вашої відеокарти Nvidia/Ati, рекомендовано після встановлення мульти-бібліотечних пакунківпере-встановити бінарні драйвериВ цей раз це також 32-х розрядний драйвер.\\ \\ Графічні 32-х розрядні програми, запущені на мульти-бібліотечній системі, потребують 32-х розрядні графічні драйвери та бібліотекиЗбої такого ПЗ, свідчать про некоректне встановлення необхідних файлів. 
 +  * Якщо вам знадобиться скомпілювати своє 64-х розрядне ядро, перевірте що збираєте ядро з можливістю 32-х розрядної емуляції, бо мульти-бібліотечність таємничо не буде працюватиДля ядра необхідні деякі параметри:  **CONFIG_IA32_EMULATION**
  
-  * If you want to compile your 64bit kernel yourself, be sure to compile 32bit emulation capability into it or else multilib will mysteriously failYou will need this piece of kernel configuration: **CONFIG_IA32_EMULATION**+===== Пакунки пере-конвертовані скриптом massconvert32.sh =====
  
- +Це список пакунків, які пере-конвертовано в сумісні пакунки "//-compat32//" скриптом ''massconvert32.sh''Увага, деякі з цих пакунків, не є частиною Slackware 13.0 чи 13.1, вони біли добавлені, з більш нових версій Slackware, вони можуть спричинити деякі сповіщення про помилки "//*** FAIL: package 'package_name' was not found!***//" під час запуску цього скрипту на старих версіях SlackwareНавпаки вірно деякі пакунки були //вилучені// в нових версіях Slackware які спричиняють сповіщення "//*** FAIL: package 'package_name' was not found!***//"Не піклуйтесь про це.
-===== Packages converted by massconvert32.sh ===== +
- +
-This is the list of packages that is converted into "//-compat32//" versions by the ''massconvert32.sh'' scriptNote that some of these packages are not part of Slackware 13.0 or 13.1, they were added in a later Slackware version so they will produce a "//*** FAIL: package 'package_name' was not found!//" message when you run the script on an older releaseThe other way round is true as well some packages have been //removed// in later versions of Slackware and they will also trigger the "//*** FAIL: package 'package_name' was not found!//" messageDon't worry about that.+
  
 <code bash> <code bash>
-The A/ series:+Серія A/:
  
 aaa_elflibs aaa_elflibs
Рядок 280: Рядок 298:
 util-linux util-linux
  
-The AP/ series:+Серія AP/:
  
 flac flac
Рядок 288: Рядок 306:
 sqlite sqlite
  
-The D/ series:+Серія D/:
  
 libtool libtool
  
-The L/ series:+Серія L/:
  
 alsa-lib alsa-lib
Рядок 355: Рядок 373:
 zlib zlib
  
-The N/ series:+Серія N/:
  
 curl curl
Рядок 367: Рядок 385:
 p11-kit p11-kit
  
-The X/ series:+Серія X/:
  
 fontconfig fontconfig
Рядок 416: Рядок 434:
 xcb-util xcb-util
  
-The XAP/ series:+Серія XAP/:
  
 sane sane
Рядок 424: Рядок 442:
  
  
-===== Multilib download mirrors =====+===== Дзеркала для завантаження пакунків мульти-бібліотечності =====
  
-You can download the multilib packages from (at least) these locations:+Ви можете завантажити пакунки мульти-бібліотечності з цих місць:
  
   * [[http://slackware.com/~alien/multilib/ | http://slackware.com/~alien/multilib/]]   * [[http://slackware.com/~alien/multilib/ | http://slackware.com/~alien/multilib/]]
Рядок 433: Рядок 451:
   * [[http://alien.slackbook.org/slackware/multilib/| http://alien.slackbook.org/slackware/multilib/]]   * [[http://alien.slackbook.org/slackware/multilib/| http://alien.slackbook.org/slackware/multilib/]]
  
-===== 3rd party support tools ===== +===== Сторонні інструменти =====
- +
-  * Sėbastien Ballet has written a tool called //compat32pkg//. On [[http://compat32pkg.sourceforge.net/ | his web site]] he has //compat32pkg// available for download as well as extensive documentation about how to use it on Slackware64.\\ I will quote the site:\\ //"Compat32pkg is an automated tool that provides all the necessary for managing (converting, installing, upgrading, removing) the 32-bit part of AlienBob's multilib for slackware-64, and all 32-bit packages from Slackware-32 for which users could find a needs into a 64-bit environment, like firefox, seamonkey, jre,..."// +
-  * There is also [[http://slakfinder.org/slackpkg+.html|slackpkg+]], written by Matteo Rossini (nicknamed zerouno) with contributions from (among others) Sėbastien Ballet. This is a plugin for Slackware's own [[http://slackpkg.org/|slackpkg]] which adds the capability for installing packages from external (3rd-party) unofficial Slackware repositories. It has good support for adding multilib to your 64-bit Slackware and keeping it up to date. +
- +
-===== Translations ===== +
- +
-  * Bruno Russo translated this article to portuguese (brazil): http://www.brunorusso.eti.br/slackware/doku.php?id=multilib_para_o_slackware_x86_64 +
-  * Mehdi Esmaeelpour translated this article to persian: http://www.slack-world.com/index.php/articles/43-general-system/85-multilib-slackware64 +
-  * Patrick FONIO and Sebastien BALLET translated this article to french: http://wiki.slackware-fr.org/avance:articles:slackware64-multilib+
  
 +  * Себастієн Балет написав інструмент під назвою //compat32pkg//. На [[http://compat32pkg.sourceforge.net/ | цьому сайті]] //compat32pkg// доступний для завантаження, також там є документація по використанню цього інструменту в Slackware64.\\ Процитую цей сайт:\\ //"Compat32pkg це інструмент автоматизації, який надає усе необхідне для керування (конвертація, встановлення, оновлення та видалення) 32-х розрядною частиною мульти-бібліотечності AlienBob'а для slackware-64, та усі 32-х розрядні пакунки з Slackware-32 які можуть знадобитись для 64-х розрядного оточення, як наприклад firefox, seamonkey, jre,..."//
 +  * Також існує [[http://slakfinder.org/slackpkg+.html|slackpkg+]], написаний Матео Розіні (прізвисько zerouno) з вкладником (зокрема) Себастієн Балет. Це плагін для [[http://slackpkg.org/|slackpkg]] який додає можливість встановлювати додаткові пакунки з зовнішніх не офіційних Slackware репозіторіїв. Дуже зручна підтримка мульти-бібліотечних пакунків, дозволяє відслідковувати новини, та використовувати завжди найсвіжішу версію.
  
-===== Acknowledgements =====+===== Переклади =====
  
-  * A lot of thanks should go to Fred Emmott, who created Slamd64, the original unofficial 64-bit fork of Slackware.  Although Slackware64 was not based on Fred's work, I still learnt most of what I know about setting up the 32-bit part of a multilib Linux from his writings that are found in Slamd64.+  * Бруно Руссо переклав цю статтю на португальську (бразильська): http://www.brunorusso.eti.br/slackware/doku.php?id=multilib_para_o_slackware_x86_64 
 +  * Мехді Есмаелпур переклав на перську: http://www.slack-world.com/index.php/articles/43-general-system/85-multilib-slackware64 
 +  * Патрік Фоніо та Себастієн Балет переклали статтю на французьку: http://wiki.slackware-fr.org/avance:articles:slackware64-multilib
  
-  * Cross Linux From Scratch.\\ The CLFS Wiki (http://trac.cross-lfs.org/wiki/read#ReadtheCrossLinuxFromScratchBookOnline) is a 'must-read' if you want to understand how to port Linux to a new architecture. I took several ideas, concepts and patches from them when creating Slackware64 from scratch, and again when I created my multilib gcc/glibc packages from scratch (my README on this multilib-from-scratch is available in the ./source directory).+===== Подяки =====
  
 +  * Велика подяка Фред Емоту, він створив Slamd64, оригінальній не офіційний порт Slackware для 64-х розрядної архітектури. Хоча Slackware64 не базується на цьому форку. Я досі пізнаю, багато чого про налаштування 32-х розрядної частини мільти-бібліочечності в Linux, яке було описано для Slamd64.
 +  * Linux From Scratch.\\ CLFS вікі (http://trac.cross-lfs.org/wiki/read#ReadtheCrossLinuxFromScratchBookOnline) яку 'необхідно-прочитати' якщо ви хочете зрозуміти як портувати Linux на інші архітектури. Я взяв з відси деякі ідеї, концепти та патчі для створення Slackware64 з нуля, та знову коли створював пакунки мульти-бібліотечності gcc/glibc (файл README можна знайти в директорії ./source)
  
-Have fun!+Удачі!
  
-Eric+Ерік
  
-===== Sources =====+===== Джерела =====
  
-  * The original articlewritten by Eric Hameleers, is at http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib+  * Оригінальну статтю написав Ерік Хамелірсна http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
  
 <!-- Please do not modify anything below, except adding new tags.--> <!-- Please do not modify anything below, except adding new tags.-->
 <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents --> <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents -->
 {{tag>slackware multilib author_alienbob}} {{tag>slackware multilib author_alienbob}}
 uk:slackware:multilib ()