Welcome to the Slackware Documentation Project

Розбіжності

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

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

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
Остання ревізія Both sides next revision
uk:slackware:multilib [2016/11/15 09:37 (UTC)]
streamthreader
uk:slackware:multilib [2016/11/26 23:13 (UTC)]
streamthreader [Додавання Multilib в Slackware з архітектурою x86_64]
Рядок 1: Рядок 1:
-===== Додавання ​Мульти-Бібліотечності ​в Slackware з архітектурою x86_64 =====+===== Додавання ​Multilib ​в Slackware з архітектурою x86_64 =====
  
-Це стаття містить інструкцію по тому, як створити //​справжню ​мультибібліотечну// Slackware64. ​Мульти-бібліотечий ​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"​.
  
 Це досягається наступним чином: Це досягається наступним чином:
Рядок 9: Рядок 9:
   - Після цього треба взяти системні бібліотеки з 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-х розрядну архітектуру. З іншого боку, Slackware, дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді,​ обидва варіанти розробляються паралельно. Це означає,​ що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мульти-бібліотечності до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось чому ми не додаємо відразу мульти-бібліотечніть до Slackware64 - натомість ми створюємо передумову,​ завдяки якій у вас є вибір, та і інструкція по тому як зробити мульти-бібліотечну систему. ​ \\ В [[#​detailed_instructions | розділі нижче]],​ я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "​mesa"​) та переупакуємо їх вміст в пакунки "​mesa-compat32",​ які можна буде встановити напряму в Slackware64. Коли вийшла Skackware64,​ вона мала перевагу над 64-розрядними "​форками"​ які були на той час доступні. Ці форки додавали 32-розрядний шар, завдяки перекомпіляції великої кількості своїх пакетів під 32-х розрядну архітектуру. З іншого боку, Slackware, дистрибутив який виходить як 32-х так і в 64-х розрядному вигляді,​ обидва варіанти розробляються паралельно. Це означає,​ що вам не доведеться знову збирати 32-х розрядні пакунки з нуля, для того щоб додати сумісність у вигляді мульти-бібліотечності до системи з архітектурою 64. Ви просто берете пакунки з 32-х розрядного дистрибутиву Slackware! \\  Ось чому ми не додаємо відразу мульти-бібліотечніть до Slackware64 - натомість ми створюємо передумову,​ завдяки якій у вас є вибір, та і інструкція по тому як зробити мульти-бібліотечну систему. ​ \\ В [[#​detailed_instructions | розділі нижче]],​ я покажу як взяти пакунки 32-х розрядної Slackware (назвемо їх "​mesa"​) та переупакуємо їх вміст в пакунки "​mesa-compat32",​ які можна буде встановити напряму в Slackware64.
Рядок 29: Рядок 29:
 Крім декількох README файлів (ця стаття з Wiki є поліпшеною версією тих README файлів),​ ви знайдете по одній під-дерикторії на кожен 64-розрядний випуск 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.
  
-===== Слідкуйте, та користуйтесь ​найсвіжишим ​пакунком муьлти-бібліотечності =====+===== Підтримання пакунків муьлти-бібліотечності в актуальному стані =====
  
-Для того, щоб бути в курсі оновлень,​ Я наполягаю на тому, щоб ви слідкували за [[http://​slackware.com/​~alien/​multilib/​ChangeLog.txt | журналом змін]] ([[http://​slackware.com/​~alien/​multilib/​ChangeLog.rss|RSS новинами]]) які я обслуговую для моїх мульти-бібліотечних пакунків. За звичай,​ я //​оновлюю пакунки glibc та gcc// на слідуючий ​день, після оновлення цих пакунків у Slackware.+Для того, щоб бути в курсі оновлень,​ Я наполягаю на тому, щоб ви слідкували за [[http://​slackware.com/​~alien/​multilib/​ChangeLog.txt | журналом змін]] ([[http://​slackware.com/​~alien/​multilib/​ChangeLog.rss|RSS новинами]]) які я обслуговую для моїх мульти-бібліотечних пакунків. За звичай,​ я //​оновлюю пакунки glibc та gcc// наступного ​дня, після оновлення цих пакунків у Slackware.
  
 Автоматизація:​ Автоматизація:​
-  - Перевірте інструмент [[#​rd_party_support_tools | compat32pkg]] Себастєна Балета,​ який автоматизує цей процес,​ як це пробить slackpkg. +  - Перевірте інструмент [[#​rd_party_support_tools | compat32pkg]] Себастєна Балета,​ який автоматизує цей процес, ​на зразок ​як це робить slackpkg. 
-  - Якщо ви віддаєте перевагу slackpkg, для керування пакетами,​ то варто, перевірити [[http://​slakfinder.org/​slackpkg+.html|slackpkg+]],​ це додаток до slackpkg, який керує пакунками,​ які ви встановили зі сторонього репозіторію - включаючі мільти-бібліотечність. Коли все правильно налаштованно, то підтримка оновленої версії мільти-бібліотечності дуже просте:​ <​code>​+  - Якщо ви віддаєте перевагу slackpkg, для керування пакетами,​ то варто, перевірити [[http://​slakfinder.org/​slackpkg+.html|slackpkg+]],​ це додаток до slackpkg, який керує пакунками,​ які ви встановили зі стороннього репозіторія - включаючи мільти-бібліотечність. Коли все правильно налаштовано,​ то підтримка оновленої версії мільти-бібліотечності дуже просте:​ <​code>​
 # slackpkg update # slackpkg update
 # slackpkg upgrade multilib # slackpkg upgrade multilib
 # slackpkg install multilib # slackpkg install multilib
 </​code>​ Остання команда покаже якщо будь-який новий пакунок було додано до колекції пакунків "​compat32",​ як наприклад поточні llvm-compat32 та orc-compat32. </​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>​+    * Як за звичай виглядає налаштування - для комп'​ютера з запущеною Slackware-current,​ та використовуючи тестовий репозіторій Alien BOB-а для KDE. PKGS_PRIORITY Забезпечує,​ що мільти-бібліотечні пакунки для gcc та glibc має перевагу,​ над оригінальним від Slackware. Ключове слово "​multilib"​ яке означає ім'​я репозіторія,​ має бути таким самим ​ім'​ям, яке використовувалось ​вище ​в команді "​slackpkg"​. Обране ім'​я "​multilib"​ довільне,​ воно могло б, точно так же бути "​compat32",​ до тих пір, поки ви використовуєте його послідовно. \\ Зміст файлу для прикладу "/​etc/​slackpkg/​slackpkgplus.conf"​ буде: <​file>​
 SLACKPKGPLUS=on SLACKPKGPLUS=on
 VERBOSE=1 VERBOSE=1
Рядок 59: Рядок 59:
 ==== Інструкція по швидкому методу ==== ==== Інструкція по швидкому методу ====
  
-Цей розділ містить основні інструкції щодо додавання повної мультибібліотечної сумісності в систему 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
Рядок 68: Рядок 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>​

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