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

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

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

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

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

Теперь я объясню каждый параметр:

  • # Сопровождающий: В нем указывается имя сопровождающего пакета.
  • имя_пакета: Название пакета. Он может содержать только буквы, цифры, -, _ и +
  • пквер: версия пакета. pe 1.0.0
  • пакет: обзор программы или пакета. pe 1
  • описание пакета: описание пакета.
  • арка: архитектура программы: она может быть любой (для всех), i686 и x86_64, быть любой для пакетов, не требующих компиляции, например программ на bash или python. Если это действительно необходимо программе (например, программам на C или C ++), вы должны указать i686, если он предназначен для 32 бит, или x86_64 для 64 бит. Обычно, если он совместим с обоими, устанавливается (i686, x86_64)
  • URL: URL официальной страницы программы. Желательно поставить.
  • Лицензия: лицензия на программу. например, GPL3
  • группы: группы, которым принадлежит пакет. группы = ('система')
  • смотря как: в нем мы указываем пакеты, которые нужны для выполнения программы. пепенденс = ('python2' 'pygtk')
  • зависит от: зависимости, которые необходимы только для компиляции пакета. Если код нужно скачать из менеджера версий, желательно поставить. pe: makedepends = ('git')
  • Источник: в нем мы указываем файлы, необходимые для создания пакета. Как правило, это URL-адрес пакета, который содержит код, патч, файл .desktopt, значки и т. Д. pe: source = (pacsyu.desktop)
  • md5суммы: вот суммы md5 файлов, указанных в источнике. Чтобы узнать, какие из них мы запускаем с терминала в папке, где находится PKGBUILD (записав пути к файлам в источнике) makepkg -g и суммы появятся на экране.
    Также можно использовать другие суммы, например sh1.
  • сборка: в этой функции мы поместим команды, необходимые для продолжения компиляции программного обеспечения. Если нет необходимости компилировать, необходима только следующая функция)
  • package: в этой другой функции пойдут команды установки программы. Например, если мы здесь компилируем код C, будет выполнена установка make.

И чтобы закончить, нам просто нужно выполнить makepkg чтобы убедиться, что пакет создан.
Как видите, нам это сложно. Затем я оставлю вам некоторые дополнительные параметры макияж:

  • -я: Указывает makepkg установить пакет после его создания.
  • -с: Установите зависимости пакета, если они есть в репозиториях.
  • -F: Если уже существует пакет с таким именем, версией и ревизией с этим параметром, мы просим вас перезаписать его.
  • -с: После завершения очистите рабочие папки (pkg и source).
  • -Р: Переупакуйте пакет без перекомпиляции.

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


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Джамин-Самуил сказал

    Очень хорошо …

    Можете ли вы сделать так, чтобы пакет .exe управлял (компилировался) в пакет Arch?

    Как например известный менеджер загрузок Мипони ??

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

      Насколько я знаю, это невозможно, помните, что .exe - это двоичные файлы, а не исходный код. Но есть JDownloader.

    2.    v3on сказал

      кто-то использует Linux и скучает по Myponi… jijijijiji

      jDownloader находится на java, и всем хорошо известно, что java вызывает рак легких ...

  2.   молочный28 сказал

    интересно, нам нужно будет протестировать пакеты, я думаю, я буду склонен сделать пакет из qbittorrent, хахаха, уже существует в yaourt, но иметь свою собственную версию будет неплохо для тестирования, спасибо за информационные приветствия

  3.   MSX сказал

    Хороший вклад, +1
    Я хочу добавить, что их проще создавать и поддерживать, чем ебилды Gentoo!

    Что касается Debian, я думаю, что этот дистрибутив значительно увеличит свои недостатки, просто модернизируя или переходя на более современную систему пакетов и управления пакетами, я не знаю, когда будет последнее обновление набора dpkg / apt, но концепция уже должна легко получить 15 лет, и правда в том, что сегодня это анахронизм.

  4.   Ротс87 сказал

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

    1.    MSX сказал

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

  5.   hypersayan_x сказал

    в отличие от хорошо известного .deb Debian / Ubuntu / Linux Mint / и т.д., который представляет собой беспорядок

    Полностью согласен, некоторое время назад я пытался создать пакет для Ubuntu, и мне не удалось найти понятную информацию о том, как его создать, в конце концов я сдался и грубо установил программу.
    На сборку той же программы для Arch у меня ушло менее 5 минут.
    И я не уверен, но я думаю, что RPM немного проще, чем DEB, но сложнее, чем Arch.

  6.   хаклопер775 сказал

    Очень хорошо и просто, а что касается .deb, это не так уж сложно, ну, что для iOS

    привет

  7.   Чарли сказал

    Думаю, это пригодилось мне некоторое время назад, когда я загрузил свой первый PKGBUILD в AUR 🙂

  8.   Clerafel сказал

    Может ли кто-нибудь объяснить мне, что это такое, я новичок и не знаю, помогает ли это мне установить пакет .deb, но локально в manjaro, точнее в игре. Да, это работает?