Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія |
uk:slackware:multilib [2016/11/26 23:07 (UTC)] – streamthreader | uk:slackware:multilib [2016/11/27 10:08 (UTC)] (поточний) – streamthreader |
---|
===== Додавання Multilib в Slackware з архітектурою x86_64 ===== | ===== Додавання 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". | Це стаття містить інструкцію по тому, як створити //справжню 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". |
| |
Це досягається наступним чином: | Це досягається наступним чином: |
- Спочатку нам потрібно перемкнути в режим мульти-бібліотечності наступні програми: | - Спочатку нам потрібно перейти на multilib версії: |
* //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-х розрядна операційна система, але вона дуже просто може бути оновлена до multilib. //З коробки Slackware64 може виконувати та збирати тільки 64-х розрядне програмне забезпечення.//</note> |
| |
Коли вийшла Skackware64, вона мала перевагу над 64-розрядними "форками" які були на той час доступні. Ці форки додавали 32-розрядний шар, завдяки перекомпіляції великої кількості своїх пакетів під 32-х розрядну архітектуру. З іншого боку, Slackware, дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді, обидва варіанти розробляються паралельно. Це означає, що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мульти-бібліотечності до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\ Ось чому ми не додаємо відразу мульти-бібліотечніть до Slackware64 - натомість ми створюємо передумову, завдяки якій у вас є вибір, та і інструкція по тому як зробити мульти-бібліотечну систему. \\ В [[#detailed_instructions | розділі нижче]], я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "mesa") та переупакуємо їх вміст в пакунки "mesa-compat32", які можна буде встановити напряму в Slackware64. | Коли вийшла Skackware64, вона мала перевагу над 64-розрядними "форками" які були на той час доступні. Ці форки додавали 32-розрядний шар, завдяки перекомпіляції великої кількості своїх пакетів під 32-х розрядну архітектуру. З іншого боку, Slackware, дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді, обидва варіанти розробляються паралельно. Це означає, що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність multilib до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\ Ось чому ми не додаємо відразу multilib до Slackware64 - натомість ми створюємо передумову, завдяки якій у вас є вибір, та і інструкція по тому як зробити multilib систему. \\ В [[#Детальніша_інструкція | розділі нижче]], я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "mesa") та переупакуємо їх вміст в пакунки "mesa-compat32", які можна буде встановити напряму в Slackware64. |
| |
===== Переваги мульти-бібліотечної системи ===== | ===== Переваги multilib системи ===== |
| |
Ось декілька прикладів програмного забезпечення, яке потребує наявності мульти-бібліотечності в системі Slackware з архітектурою 64, тому що воно не може бути запущено чи зібрано без сумісного 32-х розрядного шару: | Ось декілька прикладів програмного забезпечення, яке потребує наявності multilib в системі 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://steampowered.com|Steam]] \\ Дуже популярна ігрова платформа, досі потребує [[http://www.slackware.com/~alien/slackbuilds/steamclient/|32-розрядний клієнт]]. Також більшість доступних ігор, 32-розрядні. | * [[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-х розрядні бінарні файли. В цьому випадку, саме така ситуація. | * [[http://www.skype.com/ | Skype]], [[http://www.citrix.com/lang/English/home.asp | Citrix клієнт]], ... \\ Ці програми проприєтарні, та їх код закрито. Ми залежимо від розробника, який не виробляє 64-х розрядні бінарні файли. В цьому випадку, саме така ситуація. |
| |