Як розібрати пакет 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 для головного пакету
Подробиці у наступних параграфах.
Файли.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 досить просто, для цього служать такі команди: