Одна из вещей, которые мне больше всего нравятся в 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 что ты можешь найти здесь
Очень хорошо …
Можете ли вы сделать так, чтобы пакет .exe управлял (компилировался) в пакет Arch?
Как например известный менеджер загрузок Мипони ??
Насколько я знаю, это невозможно, помните, что .exe - это двоичные файлы, а не исходный код. Но есть JDownloader.
Как вы говорите, вы не можете перекомпилировать exe, поскольку это двоичный код.
Вы можете создать пакет, который установит и запустит его с Wine, как и пакет в AUR известной P2P-программы Ares.
кто-то использует Linux и скучает по Myponi… jijijijiji
jDownloader находится на java, и всем хорошо известно, что java вызывает рак легких ...
интересно, нам нужно будет протестировать пакеты, я думаю, я буду склонен сделать пакет из qbittorrent, хахаха, уже существует в yaourt, но иметь свою собственную версию будет неплохо для тестирования, спасибо за информационные приветствия
Хороший вклад, +1
Я хочу добавить, что их проще создавать и поддерживать, чем ебилды Gentoo!
Что касается Debian, я думаю, что этот дистрибутив значительно увеличит свои недостатки, просто модернизируя или переходя на более современную систему пакетов и управления пакетами, я не знаю, когда будет последнее обновление набора dpkg / apt, но концепция уже должна легко получить 15 лет, и правда в том, что сегодня это анахронизм.
Большое спасибо, совсем недавно я искал его в вики, и я не понял структуру (я хотел обновить PlayonLinux), но я все же сдался ... есть вещи, в которых я хотел бы иметь помощник или что-то в этом роде (не стреляйте в меня) но все же ... при отсутствии инструментов со временем посмотрю, создам ли
Благодаря вашему руководству я начал создавать PKGBUILD Зеи (http://web.psung.name/zeya/), как только доделываю, загружаю в AUR 🙂
Полностью согласен, некоторое время назад я пытался создать пакет для Ubuntu, и мне не удалось найти понятную информацию о том, как его создать, в конце концов я сдался и грубо установил программу.
На сборку той же программы для Arch у меня ушло менее 5 минут.
И я не уверен, но я думаю, что RPM немного проще, чем DEB, но сложнее, чем Arch.
Очень хорошо и просто, а что касается .deb, это не так уж сложно, ну, что для iOS
привет
Думаю, это пригодилось мне некоторое время назад, когда я загрузил свой первый PKGBUILD в AUR 🙂
Может ли кто-нибудь объяснить мне, что это такое, я новичок и не знаю, помогает ли это мне установить пакет .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?