Спрощувати складно — ускладнювати легко. GUI програма для створення deb-пакетів

Можливо, на мене зійде гнів естетів linux, vim, mc. Але скажу відразу, користувалися — знаємо. Збирати deb-пакет, так для новачка, так що не будемо ускладнювати йому життя вивченням vim і mc, а просто дамо далі клікати мишкою. Кому цікавий питання спрощення створення бінарних deb-пакетів і не боїться зібрати з допомогою qtcreator'a сам, ласкаво просимо під кат

З чого почалося
Натхненний статті про створення deb-пакетів сів я збирати пакети… Після 10го пакету, зізнатися 4 відкритих MC навели мене на думку, що все-таки потрібно gui інструмент. Звичайно, тут же був встановлений giftwrap, швидко заповнені перші сторінки настроювача, і тут виявляється, що скрипти потрібно знову таки тягнути руками всередину папки DEBIAN.

Я прийшов в легке здивування. Чому не можна було просто зробити можливість вибрати файл звідки завгодно? Ну не біда, скопіюємо. Так, потрібно прописати папки в DEBIAN/dirs. Стоп, а куди писати? Ну ні чого, у мене ж є vim і mc. Знову vim+mc для changelog…

Вистачить. GiftWrap мене засмутив. Тоді мною було вирішено витратити вечорок і написати просту і при реалізує більші можливості ніж GiftWrap утиліту. (Звичайно ж, лінь робити це по-старому руками не вплинула на подібне рішення).

Підготовка під епічну музику
В якості середовища розробки було вирішено використовувати улюблену мною середу QtCreator, і в якості фрэймворка для дуі QtSdk 5.7. Для контролю версій був покликаний вибрано git.

Очевидно, після прочитання статті, що труднощів у написанні коду виникнути не повинно, однак я відразу ж виділив для себе основні етапи:

  1. Створюємо віджети для редагування файлів
  2. Збираємо віджети до купи в майстри створення пакетів
  3. Збираємо пакет, попередньо перевіривши наявність програм

Все банально і просто, але залишився дотепер 1 питання, відповідь на який хотілося почути від вас, дорогі Хабровчане і Хабровчанки. Як зручніше зробити складальник:

  1. Майстер збірки, за мотивами windows installerа (далі, далі, далі, готове)
  2. Майстер збірки з табами(зверху, знизу, ліворуч, праворуч)

Але на момент створення програми я не став ламати собі голову (головне вікно завжди можна переробити) і обрав перший шлях.

Програма на поточний момент використовувалася тільки на декількох машинах, використовувалася невеликою кількістю людей. Необхідність збирати source-пакети була відсутня тому і не була реалізована. Знаходиться вона в исходниках на тут.

Що вийшло в підсумку
Після запуску програми, ми можемо насолоджуватися бачити стартове вікно, що пропонує нам ввести шлях до sysroot нашого пакету. Складання самого sysroot включати в програму було (ІМХО) нерозумно, т. к. midnight commander або той же thunar впораються з цим відмінно самі.



Також якщо перейти в меню «Загальне», і вибрати «Налаштування», ми зможемо:

  1. Задати шлях для збереження пакетів
  2. Кол-во спливаючих рядків «Попередні каталоги»
  3. Задати для всіх пакетів ім'я складальника пакетів та e-mail

Закінчили налаштування, вибрали папку — натиснули продовжити — перейшли до справжнім чудес налаштувань.

Ім'я пакета, версія і т. п. Все це нам добре відомо з Статті, а ось той момент, що програма запише введені тут зміни у файл відразу по натисненню кнопки «Далі» варто відзначити зараз. Не дивлячись на можливість повернутися назад, файл після натискання «Далі» вже буде змінено!

Описувати, параметри я докладно не буду, вони багато де описані, зауважу лише кілька зручних моментів у програмі: у вікні changelog'a, після прикладу, є рядок де записані ім'я, пошта творця пакету і час створення. Її зручно копіювати і вставляти в кінці свій запису в changelog.

У вікні скриптів, за замовчуванням стоять імена скриптів: preinst, postinst, prerm, postrm.
Якщо вони вже лежать в каталозі sysroot/DEBIAN, то нічого не буде зроблено, якщо ж Ви захочете «притягнути» їх «зовні», то вибрані файли будуть скопійовані і перейменовано, в залежності від вибору поля.

Закінчення роботи програми
В кінці після успішного складання пакету, користувачеві пропонується використовувати lintian для перевірки.

Скажу чесно, рідко коли він був корисний, або пакет взагалі не збирався, або якщо й писав lintian які-небудь помилки, проблем з його установкою просто не було…

Але все ж, прийнявши рішення перевірити пакет, нічого поганого не трапиться. В поточному вікні буде показано висновок lintian при перевірці створеного deb-пакет.



Label цей виділяється, так що копіюємо warning або error і вперед пошуковик шукати як виправити цю проблему.

Післямова
Я не претендую, що debCreator єдиний хороший gui созбиратель пакетів. Також я не кажу, що в ньому немає глюків і проблем. Однак, мені і людям, які з ним працюють, він заощадив купу часу, адже його ще писати і писати…

Чекаю від прочитали рад по реалізації, та пропозицій щодо модернізації, в коментах або в issues.

TODO List
Сюди будуть вноситися зміни, які скоро буде реалізовано:

  1. автоматичне заповнення confiles
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.