[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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

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

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

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

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

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

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

           Они ссылка сказал

        Как вы говорите, вы не можете перекомпилировать exe, поскольку это двоичный код.
        Вы можете создать пакет, который установит и запустит его с Wine, как и пакет в AUR известной P2P-программы Ares.

         v3on сказал

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

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

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

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

      MSX сказал

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

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

      Ротс87 сказал

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

         MSX сказал

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

      hypersayan_x сказал

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

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

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

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

    привет

      Чарли сказал

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

      Clerafel сказал

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

         Они ссылка сказал

      Я только что написал еще одну статью о том, как создавать пакеты для arch / manjaro из пакетов .deb
      https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/

           Родриго Морено сказал

        Да, я уже видел это, но я очень новичок и не понимаю, только ли эта линия

        cd "$ {srcdir} /"
        tar xvzf data.tar.gz -C.
        cp -r usr $ {pkgdir}

        что у тебя за спиной

        если [«$ {CARCH}» = 'x86_64 ′]; тогда
        ARCH = 'amd64'
        md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
        зависит = ('открытый' lib32-открытый ')
        elif ["$ {CARCH}" = 'i686 ′]; тогда
        ARCH = 'i386'
        md5sums=(‘047c670443124193c5cc3dd54da99925’)
        зависит = ('открытый')
        fi
        source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")

        Я не понимаю, выглядит очень сложно, это совместные шаги или первая часть

        cd "$ {srcdir} /"
        tar xvzf data.tar.gz -C.
        cp -r usr $ {pkgdir}

        это можно сделать самостоятельно, чтобы преобразовать .deb. .tar.gz?