Розділ 3. Питання сумісності

3.1 На яких апаратних архітектурах та системах запускається Debian GNU/Linux?

Debian GNU/Linux включає повний джерельний код для всіх включених програм, тож він повинен працювати на всіх системах, що підтримуються ядром Linux; зверніться до Linux FAQ за додатковою інформацією.

Поточна версія Debian GNU/Linux (3.1) містить повні двійкові збірки для наступних архітектур:

  • i386: це всі ПК, основані на процесорах Intel та сумісних із ними, включаючи Intel 386, 486, Pentium, Pentium Pro, Pentium II (Klamath і Celeron), та Pentium III, та більшість сумісних процесорів виробництва AMD, Cyrix та інших.
  • m68k: це машини Amiga та ATARI з процесорами Motorola 680x0 для x>=2; з MMU.
  • alpha: системи Alpha виробництва Compaq/Digital .
  • sparc: системи виробництва Sun SPARC та більшість систем UltraSPARC.
  • powerpc: деякі системи PowerPC виробництва IBM/Motorola включаючи CHRP, PowerMac і PReP.
  • arm: системи ARM і StrongARM.
  • mips: системи SGI MIPS, Indy та Indigo2; MIPS виробництва mipsel, та станції Digital DEC.
  • hppa: комп'ютери PA-RISC виробництва Hewlett-Packard (712, C3000, L2000, A500).
  • ia64: комп'ютери Intel IA-64 ("Itanium").
  • s390: Великі системи IBM S/390.

Розглядається питання розробки двійкових збірок Debian для архітектури Sparc64 (UltraSPARC).

Для додаткової інформації про завантаження, розподіл вашого приводу на розділи, підключення пристроїв PCMCIA та схожі питання слідуйте за інструкціями, викладеними у Підручнику по встановленню, що доступний в тенетах за адресою http://www.debian.org/releases/stable/installmanual.

3.2 Наскільки Debian сумісний з іншими збірками Linux?

Розробники Debian взаємодіють з авторами інших збірок Linux щоб досягти двійкової сумісності між дистрибутивами Linux. Більшість комерційних програм під Linux запускаються в Debian так само добре, як і в системі, для котрої вони були розроблені.

Debian GNU/Linux дотримується стандарту ієрархічної файлової системи Linux (http://www.pathname.com/fhs/default.htm). Оскільки деякі положення стандарту можна трактувати по-різному, існують відмінності між Debian та іншими Linux-системами.

3.3 Наскільки джерельні коди Debian сумісні з іншими Unix-системами?

У більшості Linux-додатків джерельні коди сумісні з іншими Unix-системами. Він підтримує майже все, що доступно у системах Unix System V та вільних і комерційних BSD-подібних системах. Проте у світі Unix такі заяви можна робити лише приблизно, оскільки немає способів перевірити їх. У площині розробки програмного забезпечення потрібна повна сумісність, а не "сумісність у більшості випадків". Тож потреба у стандарті виникла давно і зараз POSIX.1 (IEEE Standard 1003.1-1990) є одним з основних стандартів сумісності джерельних кодів у Unix-подібних операційних системах.

Linux має намір дотримуватись POSIX.1, але стандарти POSIX вартують неабияких грошей і POSIX.1 (та FIPS151-2) є доволі дорогими; це значно ускладнює роботу розробників Linux у повній відповідності до стандартів POSIX. Із-за вартості сертифікації схоже, що Debian не отримає офіційне сертифіковане підтвердження, навіть якщо він повністю пройде випробувальні тести. З недавнього часу перевірочний комплект знаходиться у вільному доступі, то ж очікується, що більше людей будуть писати програми у відповідності до вимог POSIX.1.

Unifix GmbH (Брауншвейг, Німеччина) розробив систему Linux, що була сертифікована FIPS 151-2 (надмножина POSIX.1). Ця технологія була доступна у власній збірці Unifix, що отримала назву Unixfix Linux 2.0 та у Linux-FT виробництва Lasermoon.

3.4 Чи можу я використовувати пакунки Debian (файли ".deb") в моєму RedHat/Slackware/... Linux? Чи можу я використовувати пакунки RedHat (".rpm" файли) у моєму Debian GNU/Linux?

Різні збірки Linux використовують різні формати пакунків та різні програми для керування ними.

Ви, можливо, зможете:

Якщо у "чужій" збірці встановлена та налаштована програма для розпаковування пакунків Debian, то ви зможете розпакувати пакунок в такій системі. Зворотне твердження також вірне, тобто ви зможете розпакувати та правильно розташувати файли з пакунку RedHat чи Slackware на комп'ютері з Debian GNU/Linux за допомогою спеціальної програми. Це відбувається завдяки існуванню та підтримці Стандарту ієрархічної файлової системи Linux. Для перетворення пакунків між різними форматами вживається пакунок alien.

Ви, мабуть, не захочете:

Більшість програм для керування пакунками використовують спеціальні управляючі файли для стискання та пакування архівів. Ці файли не є стандартизованими. А тому результат розпаковування пакунку Debian на чужорідній системі може мати непередбачувані (як правило, руйнівні) наслідки для керівника пакунків даної системи. Аналогічно, інструменти з інших збірок можуть успішно розпакуватись в Debian, але при цьому призведуть до падіння керівника пакунками, коли буде потрібно оновити систему чи видалити якийсь інший пакунок або ж навіть просто при виводі списку встановлених пакунків.

Кращий шлях:

Стандарт файлової системи Linux (а отже і Debian) вимагає, щоб підкаталоги у /usr/local/ були віддані на розсуд користувача. Таким чином користувач може розпакувати чужорідні пакунки сюди, а далі налаштовувати і видаляти їх окремо.

3.5 Чи зможе Debian запустити мої старі libc5-програми?

Так. Просто встановіть необхідні libc5 бібліотеки з секції oldlibc, котра містить застарілі пакунки, що були включені для сумісності з старими програмами.

3.6 Чи можна використовувати Debian для компіляції libc5-програм?

Так. Встановіть пакунки libc5-altdev та altgcc з секції oldlibc. В каталозі /usr/i486-linuxlibc1/bin ви знайдете спеціальний gcc та g++. Додайте їх до вашої змінної $РАТН щоб make та інші програми могли їх викликати.

Майте на увазі, що середовище libc5 не повністю підтримується іншими нашими пакунками.

3.7 Як я можу встановити не-Debian програму?

Файли у каталозі /usr/local не контролюються керівником пакунків Debian. Тому хорошим вибором буде розміщення джерельних кодів таких програм у /usr/local/src. Наприклад, ви можете розпакувати файли з архіву foo.tar до каталогу /usr/local/src/foo. Після того, як ви скомпілюєте їх помістіть двійкові файли до /usr/local/bin, бібліотеки - до /usr/local/lib а конфігураційні файли - до /usr/local/etc.
Якщо ваша програма та/або інші файли справді мусять знаходитись у якомусь іншому місці, ви все ж можете залишити їх в /usr/local та задати необхідний символьний відсилач з необхідного місцезнаходження до /usr/local, наприклад:

ln -s /usr/local/bin/foo /usr/bin/foo

В будь-якому випадку, якщо ви отримали пакунок, що дозволяє перезбірку, вам потрібно задуматись над створенням Debian-пакунку з нього, та завантаженням до системи Debian. Посібник для початківця-розробника пакунків включено до підручника Стратегії Debian (див. розділ 11.1).

3.8 Чому я не можу скомпілювати програми, що вимагають libtermcap?

Debian радше використовує базу даних terminfo та бібліотеку шляхів термінальних інтерфейсів ncurses, аніж базу даних termcap та бібліотеку libtermcap. Користувачі, що компілюють програми, яким потрібно щось знати про інтерфейси терміналу, повинні замінити звернення до libtermcap зверненням до libtermcurses.

Для підтримки двійкових файлів, що вже зв'язані з бібліотекою termcap і для яких ви не маєте джерельних кодів, Debian пропонує пакунок, що називається termcap-compat з файлами /etc/termcap та libtermcap.so.2. Встановіть цей пакунок, якщо програма виходить з ладу з повідомленням "Не можу завантажити бібліотеку libtermcap.so.2" або повідомляє про відсутній файл /etc/termcap.

3.9 Чому я не можу встановити AccelX?

AccelX вимагає бібліотеки termcap для роботи. Дивіться попереднє запитання.

3.10 Чому мої старі XFree 2.1 Motif-додатки призводять до збоїв у роботі?

Вам потрібно встановити пакунок motifnls, котрий містить конфігураційні файли XFree-2.1, що дозволяють програмам Motif, скомпільованим для XFree-2.1 запускатись під XFree-3.1.

Без цих файлів деякі Motif-додатки, скомпільовані на інших машинах (як наприклад Netscape) можуть призводити до аварії при спробах копіювання чи вставки у текстове поле, та спричиняти ряд інших проблем.