Як встановити пакет Debian на будь-який дистрибутив Linux

Пакети Debian є одними з найпоширеніших форматів пакетів у світі Linux. Часто, коли розробники портують програмне забезпечення для Linux, вони пропонують його у вигляді пакету Debian, тобто файлу з розширенням .deb. Це забезпечує хорошу підтримку Linux, навіть якщо вона обмежена одним дистрибутивом. Однак, не всі дистрибутиви Linux розроблені для прямого встановлення цих пакетів. У цій статті ми розглянемо ефективний спосіб встановлення пакету Debian та запуску програми на будь-якому дистрибутиві Linux.

В цьому посібнику ми не будемо займатися “перетворенням” пакетів. Замість цього, ми просто видобудемо необхідні дані та перемістимо їх у відповідні місця. Почнемо з завантаження потрібного пакету Debian. Для прикладу використаємо пакет Google Chrome. Хоча приклад сфокусований на Google Chrome, він є демонстрацією принципу. Ви можете скористатись цим методом для встановлення будь-якого пакету Debian.

Видобування даних

Багато користувачів Linux не знають, що пакети DEB – це по суті звичайні архівні файли, які можна розпакувати. Завантажте пакет Debian, який ви хочете встановити, і приготуйте його до розпакування. У нашому випадку, пакет Chrome вже завантажений і готовий. Відкрийте термінал і створіть нову папку за допомогою команди mkdir. Ця папка буде тимчасовим сховищем для даних пакета.

mkdir -p ~/deb-extracted

Перемістіть завантажений файл Chrome у створену папку за допомогою команди mv.

mv google-chrome-stable_current_amd64.deb ~/deb-extracted

Перейдіть у створену папку за допомогою команди cd і скористайтеся утилітою ar для перевірки вмісту пакета Chrome.

cd ~/deb-extracted

ar tv google-chrome-stable_current_amd64.deb

Утиліта ar проаналізує файл DEB і повідомить нам, що всередині є три стиснуті файли: “debian-binary”, “control.tar.gz” і “data.tar.xz”. Основні дані знаходяться в архіві “data.tar.xz”, але файл “control.tar.gz” також є важливим.

Ar не тільки перевіряє архіви, але й може їх розпаковувати. Скористайтеся командою ar xv, щоб видобути ці три елементи з google-chrome-stable_current_amd64.deb.

ar xv google-chrome-stable_current_amd64.deb

Всі три елементи тепер повинні знаходитися в папці ~/deb-extracted. Видаліть файл “debian-binary” за допомогою команди rm, оскільки він нам не знадобиться. Це необов’язково, оскільки ми не встановлюємо пакет на Debian Linux.

Далі нам необхідно видобути дані з файлу data.tar.xz. Він містить все необхідне для запуску програми Chrome в Linux. Розпакуйте його в папку за допомогою утиліти tar.

tar -xvf data.tar.xz

Розпакування архіву даних створить три папки: “opt”, “usr” і “etc”.

Видаліть папку etc за допомогою команди rm -rf. Елементи в цій папці не потрібні для нашої мети, оскільки вони відповідають за оновлення Debian.

Увага: Не ставте / перед командою нижче. Ви можете випадково видалити системну папку /etc/, а не папку etc, яку ви видобули.

rm -rf etc

Потім перемістіть файли з папок usr та opt у відповідні місця у файловій системі вашого комп’ютера. Наприклад, для встановлення Google Chrome на дистрибутиві Linux, відмінному від Debian, ви повинні перемістити файли вручну:

cd opt

sudo -s

mv google /opt/

ln -snf /opt/google/google-chrome /usr/bin/

cd .. share

mv -f * /usr/share/

Приклад вище демонструє, як працювати з видобутими файлами з data.tar.xz. Звісно, інші пакети Debian можуть мати відмінну структуру і вміст. Ідея полягає в тому, щоб аналізувати назви папок всередині архіву data.tar.xz і звернути увагу на їхні імена. Папки всередині мають ті ж імена, що і папки у файловій системі вашого комп’ютера Linux, і елементи з них повинні переміститись у відповідні місця.

Інструкції з пошуку пакету

Іноді розпакування пакета Debian і видобування даних з архіву data.tar.xz недостатньо, і ви можете заплутатись. На щастя, кожен пакет Debian містить набір інструкцій. Ці інструкції знаходяться у файлі control.tar.gz.

Розпакуйте архів control.tar.gz у папку ~/deb-extracted за допомогою команди tar.

tar -xvzf control.tar.gz

Архів control.tar.gz містить багато скриптів, які інформують пакет Debian про те, що він має робити. Нас цікавить скрипт “postinst”. Postinst – це скорочення від “postinstallation”, скрипт bash, який виконується після встановлення пакету і відповідає за розміщення файлів у потрібних місцях.

Скористайтеся командою cat в терміналі, щоб переглянути текстовий файл. Об’єднайте її з “more”, щоб переглядати вміст рядок за рядком. Перегляньте файл “postinst” і зверніть увагу на те, що робить скрипт, особливо куди він розміщує файли. Це допоможе вам зрозуміти, де повинні знаходитися елементи з архіву data.tar.xz, і що вони роблять.

cat postinst | more

Залежності

Розпакування пакета Debian і переміщення файлів даних у потрібні місця часто буває недостатньо. Іноді необхідно встановити правильні залежності, інакше програма не працюватиме. На щастя, кожен пакет Debian містить файл в control.tar.gz, де описано список важливих бібліотек, які користувач повинен встановити для коректної роботи програми. Використайте команду cat, щоб переглянути цей файл.

cat control | more

Наприклад, для Google Chrome файл control запитує такі залежності як ca-certificates, fonts-liberation, libappindicator1, libasound2, libatk-bridge2.0-0 і інші.

Уважно перегляньте цей файл і використайте його для встановлення окремих бібліотек на вашому комп’ютері з Linux. Якщо на вашому комп’ютері є правильні залежності, видобута програма повинна працювати належним чином.

Якщо ви використовуєте систему Linux на базі Redhat, зверніться до нашого посібника, щоб встановити на неї пакет Debian.