Як розібрати пакет Debian

Всі версії цієї статті: [English] [українська]

Деякі програми використовують багато файлів, і це робить величезними пакети Debian, які займають багато дискового простору. Нам відомо два способи зменшити споживання дискового простору: видалення чи ресемплінг файлів. Перша альтернатива передбачає, що ми можемо розбити пакет на дрібні підпакети. Незабаром ви переконаєтеся, це не так складно, як здається :).

Отримати вихідний код

На першому кроці витягніть вихідний код пакета з репозитаріїв Debian. Це досягається дуже зручною командоюapt-get source[1]. Оскільки пакет вихідного коду Debian створено з кількох файлів, можна створювати каталог для кожної програми:

Ці команди отримають пакет вихідного коду, а потім скомпілюють вихідний код програми, покращений розробниками Debian. Каталог вихідного коду має бути названий

- деversion- зазвичай x.x або x.x.x, наприклад, 3.2 або 5.2.4.

Довести пакет до розуму

Розбити пакет Debian нескладно. Спочатку треба з'ясувати, у якому каталозі зберігаються файли даних пакета. Для цього потрібно або відкритибінарний пакет Debian (стислий архівний файл), або скомпілювати пакет Debian, використовуючи каталог вихідного коду:

Ці команди створять у каталозіdebian/підкаталог, який міститиме всі файли бінарного пакета. Ім'я такого каталогу зазвичай

Тепер можна розпочати розбиття пакета. Принцип дуже простий, у каталозіdebian/:

    створіть текстові файли з іменами

.install та файл з ім'ям

.install для головного пакету

  • змініть файлcontrol, який контролює кількість скомпільованих пакетів
  • змініть файлchangelog, щоб вказати, що це і єзмінений пакет
  • Подробиці у наступних параграфах.

    Файли.install

    .install містять повний шлях до файлів або каталогів, які будуть скопійовані в підпакет, по одному в рядку. Наприклад, основний пакет TBO містить у своєму файліtbo.install:

    тоді як звичайний пакет данихtbo-common-data.installмістить:

    Файлcontrol

    Файлcontrolвключає інформацію про залежність, обладнання або опис. Потрібно увімкнути кілька інформаційних блоків, щоб досягти збігу з файлами.install(один блок на файл). Звичайно, залежності можуть вимагати спеціального налаштування для кожного підпакета. Наприклад, для TBO перші чотири інфоблоки виглядатимуть так:

    • Зверніть увагу на те, що перший інфоблок повинен залишитися незмінним, оскільки він стосується пакета вихідного коду, а не бінарного. Архітектураallвказує на пакет*_all.deb, який є архітектурно-залежним, тоді як архітектураanyговорить про те, що вихідний код можна скомпілювати на будь-яке обладнання. В цьому випадку для i386 це буде пакет*_i386.deb, для amd64 -*_amd64.debі таке інше.

    Файлchangelog

    Цей файл містить зведення змін пакетів і номер версії. Найкраще змінювати номер версії, якщо щось змінилося. Для DoudouLinux прийнято додаватиdoudouN, деN— це номер до офіційного пакету версії. Наприклад, пакетplymouth 0.8.3-20станеplymouth 0.8.3-20doudou1. При цьому вchangelogдодається наступна інформація:

    Перекомпіляція пакету

    Перекомпілювати бінарний пакет Debian досить просто, для цього служать такі команди: