Welcome to the Slackware Documentation Project

Розбіжності

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

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

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
uk:slackware:multilib [2014/07/06 16:45 (UTC)]
streamthreader [Sources]
uk:slackware:multilib [2016/11/27 10:08 (UTC)] (поточний)
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"​.+
  
 Це досягається наступним чином: Це досягається наступним чином:
-  - Спочатку треба перемкнути в режим мультибібліотечності наступні програми+  - Спочатку ​нам потрібно перейти на 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-х розрядного. +Коли вийшла Skackware64,​ вона мала перевагу над 64-розрядними "​форками"​ які були на той час доступні. Ці форки додавали 32-розрядний шарзавдяки перекомпіляції великої кількості ​своїх ​пакетів під 32-х розрядну архітектуру. З іншого боку, Slackware, дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді, обидва варіанти розробляються паралельно. Це означає,​ що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність multilib до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось ​чому ми не додаємо відразу multilib до Slackware64 - натомість ми створюємо передумову,​ завдяки якій у вас є вибір, та і інструкція по тому ​як зробити multilib систему. ​ \\ В [[#​Детальніша_інструкція | розділі нижче]],​ я покажу як взяти пакунки ​32-х розрядної Slackware (назвемо їх "​mesa"​) та переупакуємо їх вміст в пакунки "​mesa-compat32",​ які можна буде встановити напряму в Slackware64.
  
-Іншими словами,​ Slackware це дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді,​ обидва варіанти розробляються паралельно. Це означає,​ що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мультибібліоті до системи ​з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось чому ми не додаємо відразу мультибібліотечніть до Slackware64 - на томість ми створюємо передумову,​ завдяки якій у вас є вибір, та і інструкція по тому як зробити мультибібліотечну систему. ​ \\ В [[#​detailed_instructions | розділі нижче]],​ я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "​mesa"​ пакунки) та переупакуємо їх вміст в "​mesa-compat32"​ пакунки,​ які можна буде встановити напряму в Slackware64.+===== Переваги ​multilib ​системи ​=====
  
-===== Переваги мульти-бібліотечної системи ===== +Ось декілька прикладів програмного забезпечення,​ яке потребує наявності ​multilib ​в системі Slackware з архітектурою 64, тому що воно не може бути запущено чи зібрано без сумісного 32-х розрядного шару: 
- +  * [[http://​winehq.org/​ | Wine]] \\ Більшість програм для платформи Windows все ще 32-х розрядні,​ і для того ​щоб запустити таке ПЗ на Linux, вам необхідна 32-х розрядна версія Wine. 
-Ось декілька прикладів програмного забезпечення,​ яке потребує наявності ​мульти-бібліотечності ​в системі Slackware з архітектурою 64, тому що воно не може бути запущено чи зібрано без сумісного 32-х розрядного шару: +  * [[http://​www.virtualbox.org/​ | VirtualBox]] \\ Популярна програмнавіртуальна машина. Так-як ця програма (частково) з відкритим кодом, для неї досі треба 32-х розрядний шар сумісності в системі Slackware 64-х розрядної архітектури
-  * [[http://​winehq.org/​ | Wine]] \\ Більшість програм для платформи Windows все ще 32-х розрядні,​ і для того ​зоб запустити таке ПЗ на Linux, вам необхідна 32-х розрядна версія Wine. +  * [[http://​steampowered.com|Steam]] \\ Дуже популярна ігрова платформа,​ досі потребує [[http://​www.slackware.com/​~alien/​slackbuilds/​steamclient/​|32-розрядний клієнт]]. Більшість доступних ігор, також 32-розрядні
-  * [[http://​www.virtualbox.org/​ | VirtualBox]] \\ Популярна програмна віртуальна машина. Так-як ця програма (частково) з відкритим кодом, для неї досі треба 32-х розрядний шар сумісності в системі Slackware 64-х розрядної архітектури. +  * [[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-х розрядні бінарні файли. В цьому випадку,​ саме така ситуація.+
  
 На радість,​ 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>​
Рядок 262: Рядок 282:
 ===== Пакунки пере-конвертовані скриптом massconvert32.sh ===== ===== Пакунки пере-конвертовані скриптом 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!//"​. Не піклуйтесь про це.+Це список пакунків,​ які пере-конвертовано в сумісні пакунки "//​-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!***//". Не піклуйтесь про це.
  
 <code bash> <code bash>

In Other Languages
QR Code
QR Code uk:slackware:multilib (generated for current page)