Одне з речей, яке мені найбільше подобається в 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 що ти можеш знайти тут
Дуже добре …
Чи можете ви зробити так, щоб пакет .exe керував (компілював) пакунком Arch?
Як, наприклад, відомий менеджер завантажень Mipony ??
Наскільки я знаю, це неможливо, пам’ятайте, що .exe - це бінарні файли, а не вихідний код. Але є JDownloader.
Як ви говорите, ви не можете перекомпілювати exe, оскільки це двійковий код.
Ви можете створити пакет, який встановлює його та виконує за допомогою Wine, як це робить пакет в AUR відомої програми P2P Ares.
хтось використовує Linux і пропускає Myponi ... jijijijijiji
jDownloader знаходиться в Java, і всім добре відомо, що Java викликає рак легенів ...
цікаво, нам довелося б протестувати пакети, я думаю, я схиляюся зробити той, що є з qbittorrent, ха-ха-ха, вже існує у вашому творі, але наявність вашої власної версії буде непоганим для тестування, дякую за інформацію, вітаю
Хороший вхід, +1
Хочу додати, що їх також легше створювати та обслуговувати, ніж Gentoo ebuild!
Щодо Debian, я думаю, що цей дистрибутив надзвичайно підвищить свої обмеження, просто модернізуючи або перейшовши на більш сучасну систему управління пакетами та пакетами, я не знаю, коли буде останнє оновлення набору dpkg / apt, але концепція вже повинна мають легко 15 років, і правда полягає в тому, що сьогодні анахронізм.
Щиро дякую, зовсім недавно я шукав його на вікі, і я не розумів структуру (я хотів оновити PlayonLinux), але все одно відмовився ... є речі, в яких я хотів би мати асистент або щось подібне (не стріляйте в мене), але все ж ... за відсутності інструментів з часом я побачу, чи буду я створювати
Завдяки вашому посібнику я почав створювати PKGBUILD від Zeya (http://web.psung.name/zeya/), як тільки я закінчую, я завантажую його в AUR 🙂
Повністю згоден, деякий час тому я намагався створити пакет для Ubuntu, і мені було неможливо знайти зрозумілу інформацію про те, як це зробити, врешті-решт я відмовився і грубо встановив програму.
Ця ж програма для Arch зайняла у мене менше 5 хвилин, щоб скласти пакет.
І я не впевнений, але я думаю, що RPM зробити трохи простіше, ніж DEB, але складніше, ніж Arch.
Дуже добре і просто, а щодо .deb це не так вже й складно, добре, як для iOS
привіт
Думаю, це могло б послужити мені деякий час тому, коли я завантажив свій перший PKGBUILD в AUR 🙂
Хтось може сказати мені, що це, я новачок, і я не знаю, чи це допомагає мені встановити пакет .deb, але локально в манджаро, точніше гру. Так, це працює?
Я щойно написав чергову статтю про те, як створювати пакунки для 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’)
залежить = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; тоді
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
залежить = ('відкрито')
fi
джерело = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Я цього не розумію, це виглядає дуже складно, це спільні кроки або перша частина
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
це можна зробити самостійно, щоб перетворити .deb. .tar.gz?