[Howto] Створення програмних пакетів та похідних Arch Linux

Одне з речей, яке мені найбільше подобається в Arch Linux та його похідних, це надзвичайна легкість для створення пакетів, які згодом будуть встановлені в системі, на відміну від відомих дебютантка Debian / Ubuntu / Linux Mint / etc, що є хаосом (і якщо це бібліотеки, я вам не кажу).

Базовим шаблоном буде такий:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Тепер я поясню кожен параметр:

  • # Технічне обслуговування: У ньому поміщено ім'я супроводжувача пакета
  • пкгнаме: Назва пакета. Він може містити лише літери, цифри, -, _ та +
  • pkver: версія пакета. pe 1.0.0
  • pkgrel: огляд програми або пакета. пе 1
  • pkgdesc: опис упаковки.
  • арка: архітектура програми: вона може бути будь-якою (для всіх), i686 та x86_64, будь-яка для пакетів, які не потребують компіляції, таких як програми bash або python. Якщо це потрібна програма (наприклад, програми на C або C ++), ви повинні вказати i686, якщо це 32 біти, або x86_64 на 64 біти. Загалом, якщо він сумісний з обома, його встановлюють (i686, x86_64)
  • URL: URL на офіційну сторінку програми. Бажано поставити його.
  • Ліцензія: ліцензія на програму. наприклад, GPL3
  • групи: групи, до яких належить пакет. groups = ('система')
  • залежить: в ній ми вказуємо пакети, які потрібні для виконання програми. pependens = ('python2' 'pygtk')
  • виправляє: залежності, які потрібні лише для компіляції пакету. Якщо код потрібно завантажити з диспетчера версій, бажано ввести його. pe: makedepends = ('git')
  • джерело: в ній ми вказуємо файли, необхідні для створення пакета. Як правило, саме URL-адреса пакету містить код, патч, файл .desktopt, піктограми тощо. pe: source = (pacsyu.desktop)
  • md5суми: ось суми md5 файлів, зазначених у джерелі. Щоб знати, які ми запускаємо з терміналу в папці, де знаходиться PKGBUILD (записавши шляхи до файлів у вихідному коді) makepkg -g і суми з’являться на екрані.
    Також можна використовувати інші суми, такі як sh1.
  • збірка: у цій функції ми поставимо команди, необхідні для компіляції програмного забезпечення. Якщо компіляція не потрібна, потрібна лише наступна функція)
  • пакет: у цій іншій функції будуть виконуватися команди встановлення програми. Наприклад, якщо ми компілюємо код C тут, буде виконуватися make install.

І щоб закінчити, нам просто потрібно виконати makepkg щоб перевірити, чи створений пакет.
Як бачите, нам важко. Тоді я залишаю вам деякі додаткові параметри makepkg:

  • -я: Вказує makepkg встановити пакет після його створення.
  • -s: Встановіть залежності пакету, якщо вони є у сховищах.
  • -F: Якщо вже є пакет із таким іменем, версією та редакцією з цим параметром, ми просимо його перезаписати.
  • -c: Після закінчення очистіть робочі папки (кг і джерело).
  • -А: Перепакуйте пакет без необхідності перекомпілювати.

Я рекомендую переглянути більше файлів PKGBUILD, щоб побачити більше прикладів, виконати команду makepkg -h щоб побачити інші параметри програми, на додаток до перегляду makepkg офіційна документація на Arch Linux Wiki що ти можеш знайти тут


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Джамін-Самуїл - сказав він

    Дуже добре …

    Чи можете ви зробити так, щоб пакет .exe керував (компілював) пакунком Arch?

    Як, наприклад, відомий менеджер завантажень Mipony ??

    1.    правильний - сказав він

      Наскільки я знаю, це неможливо, пам’ятайте, що .exe - це бінарні файли, а не вихідний код. Але є JDownloader.

    2.    v3on - сказав він

      хтось використовує Linux і пропускає Myponi ... jijijijijiji

      jDownloader знаходиться в Java, і всім добре відомо, що Java викликає рак легенів ...

  2.   молочний28 - сказав він

    цікаво, нам довелося б протестувати пакети, я думаю, я схиляюся зробити той, що є з qbittorrent, ха-ха-ха, вже існує у вашому творі, але наявність вашої власної версії буде непоганим для тестування, дякую за інформацію, вітаю

  3.   MSX - сказав він

    Хороший вхід, +1
    Хочу додати, що їх також легше створювати та обслуговувати, ніж Gentoo ebuild!

    Щодо Debian, я думаю, що цей дистрибутив надзвичайно підвищить свої обмеження, просто модернізуючи або перейшовши на більш сучасну систему управління пакетами та пакетами, я не знаю, коли буде останнє оновлення набору dpkg / apt, але концепція вже повинна мають легко 15 років, і правда полягає в тому, що сьогодні анахронізм.

  4.   Гнилі87 - сказав він

    Щиро дякую, зовсім недавно я шукав його на вікі, і я не розумів структуру (я хотів оновити PlayonLinux), але все одно відмовився ... є речі, в яких я хотів би мати асистент або щось подібне (не стріляйте в мене), але все ж ... за відсутності інструментів з часом я побачу, чи буду я створювати

    1.    MSX - сказав він

      Завдяки вашому посібнику я почав створювати PKGBUILD від Zeya (http://web.psung.name/zeya/), як тільки я закінчую, я завантажую його в AUR 🙂

  5.   hypersayan_x - сказав він

    на відміну від відомого .deb Debian / Ubuntu / Linux Mint / etc, що є безладдям

    Повністю згоден, деякий час тому я намагався створити пакет для Ubuntu, і мені було неможливо знайти зрозумілу інформацію про те, як це зробити, врешті-решт я відмовився і грубо встановив програму.
    Ця ж програма для Arch зайняла у мене менше 5 хвилин, щоб скласти пакет.
    І я не впевнений, але я думаю, що RPM зробити трохи простіше, ніж DEB, але складніше, ніж Arch.

  6.   hackloper775 - сказав він

    Дуже добре і просто, а щодо .deb це не так вже й складно, добре, як для iOS

    привіт

  7.   Карлос - сказав він

    Думаю, це могло б послужити мені деякий час тому, коли я завантажив свій перший PKGBUILD в AUR 🙂

  8.   клерафел - сказав він

    Хтось може сказати мені, що це, я новачок, і я не знаю, чи це допомагає мені встановити пакет .deb, але локально в манджаро, точніше гру. Так, це працює?