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

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

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

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

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

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

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

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

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

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


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

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

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

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

*

*

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

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

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

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

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

    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.   hackloper775 сказал

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

    привет

  7.   Carlos сказал

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

  8.   Clerafel сказал

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