Jedną z rzeczy, które najbardziej lubię w Arch Linux i jego pochodnych jest ogromna łatwość tworzenie pakietów do późniejszej instalacji w systemie, w przeciwieństwie do znanych deb Debiana / Ubuntu / Linux Mint / etc to chaos (a jeśli są to biblioteki, nie mówię ci).
Podstawowy szablon wyglądałby tak:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Teraz wyjaśnię każdy parametr:
- # Opiekun: W nim umieszczane jest nazwisko opiekuna pakietu
- nazwapakietu: Nazwa pakietu. Może zawierać tylko litery, cyfry, -, _ i +
- pkwer: wersja pakietu. pe 1.0.0
- pakiet: przegląd programu lub pakietu. pe 1
- ozpak.: opis pakietu.
- łuk: architektura programu: może to być dowolna (dla każdego), i686 i x86_64, czyli dowolna dla pakietów niewymagających kompilacji, takich jak programy bash czy python. Jeśli jest to program, który tego potrzebuje (na przykład programy w C lub C ++), musisz wskazać i686, jeśli jest przeznaczony dla 32 bitów lub x86_64 dla 64 bitów. Generalnie jeśli jest kompatybilny z obydwoma to jest ustawiony (i686, x86_64)
- URL: adres URL do oficjalnej strony programu. Wskazane jest, aby to umieścić.
- licencja: licencja na program. np. GPL3
- grupy: grupy, do których należy pakiet. groups = ('system')
- zależy: w nim wskazujemy pakiety, które są potrzebne do wykonania programu. pependens = ('python2' 'pygtk')
- uzależnione: zależności, które są wymagane tylko do skompilowania pakietu. Jeśli kod ma zostać pobrany z menadżera wersji, wskazane jest, aby go umieścić. pe: makedepends = ('git')
- źródło: w nim wskazujemy pliki niezbędne do utworzenia pakietu. Z reguły jest to adres URL pakietu, który zawiera kod, poprawkę, plik .desktopt, ikony itp. pe: source = (pacsyu.desktop)
- sumy md5: oto sumy md5 plików wskazanych w źródle. Aby wiedzieć, które z nich uruchamiamy z terminala w folderze, w którym znajduje się PKGBUILD (po zapisaniu ścieżek plików w źródle) makepkg -g a sumy pojawią się na ekranie.
Możliwe jest również użycie innych sum, takich jak sh1. - budować: w tej funkcji umieścimy polecenia wymagane do przystąpienia do kompilacji oprogramowania. Jeśli kompilacja nie jest konieczna, potrzebna jest tylko następująca funkcja)
- pakiet: w tej innej funkcji będą wykonywane polecenia instalacji programu. Na przykład, jeśli kompilujemy tutaj kod w C, instalacja make pójdzie.
Aby zakończyć, musimy tylko wykonać makepkg aby sprawdzić, czy pakiet został wygenerowany.
Jak widać, jest to dla nas trudne. Zostawiam Wam kilka dodatkowych parametrów makepkg:
- -ja: Nakazuje makepkg zainstalować pakiet po jego utworzeniu.
- -S: Zainstaluj zależności pakietów, jeśli znajdują się w repozytoriach.
- -FA: Jeśli istnieje już pakiet o tej nazwie, wersji i rewizji z tym parametrem, każemy go nadpisać.
- -do: Po zakończeniu wyczyść foldery robocze (pkg i źródło).
- -A: Przepakuj pakiet bez konieczności ponownej kompilacji.
Polecam zobaczyć więcej plików PKGBUILD, aby zobaczyć więcej przykładów, wykonaj polecenie makepkg -h aby zobaczyć pozostałe parametry programu, oprócz wyświetlania pliku oficjalna dokumentacja makepkg na Arch Linux Wiki co możesz znaleźć tutaj
Bardzo dobre …
Czy możesz sprawić, aby pakiet .exe zarządzał (kompilował) do pakietu Arch?
Na przykład słynny menedżer pobierania mój kucyk ??
O ile wiem, nie jest to możliwe, pamiętaj, że pliki .exe to pliki binarne, a nie kod źródłowy. Ale jest JDownloader.
Jak mówisz, nie możesz przekompilować exe, ponieważ jest to kod binarny.
Można utworzyć pakiet, który zainstaluje go i uruchomi za pomocą Wine, podobnie jak pakiet w AUR dobrze znanego programu P2P Ares.
ktoś używa Linuksa i tęskni za Myponi… jijijijiji
jDownloader jest w Javie i wszystkim dobrze wiadomo, że java wywołuje raka płuc ...
ciekawe, musielibyśmy przetestować pakiety. Myślę, że skłaniam się do zrobienia tego z qbittorrent hahaha, który już istnieje w yaourt, ale posiadanie własnej wersji nie będzie złe do przetestowania, dzięki za informacje, pozdrawiam.
Dobry wkład, +1
Chcę dodać, że są one również łatwiejsze do tworzenia i obsługi niż ebuildy Gentoo!
Jeśli chodzi o Debiana, myślę, że ta dystrybucja ogromnie zwiększyłaby jego utrudnienia tylko poprzez modernizację lub migrację do bardziej nowoczesnego systemu zarządzania pakietami i pakietami, nie wiem, kiedy nastąpi ostatnia aktualizacja zestawu dpkg / apt, ale koncepcja powinna już być łatwa 15 lat i prawda jest taka, że dziś jest anachronicznie.
Dziękuję bardzo, trochę poszukałem tego na wiki i nie zrozumiałem struktury (chciałem zaktualizować PlayonLinux), ale wciąż się poddałem ... są rzeczy, w których chciałbym mieć asystenta lub coś takiego (nie strzelaj do mnie), ale nadal ... w przypadku braku narzędzi z czasem zobaczę, czy je utworzę
Dzięki Twojemu przewodnikowi zacząłem tworzyć PKGBUILD Zeya (http://web.psung.name/zeya/), jak tylko skończę, przesyłam go do AUR 🙂
Całkowicie się zgadzam, jakiś czas temu próbowałem stworzyć paczkę dla Ubuntu i nie mogłem znaleźć zrozumiałych informacji jak to zrobić, w końcu zrezygnowałem i z grubsza zainstalowałem program.
Ten sam program dla Archa zajął mi mniej niż 5 minut, aby złożyć pakiet.
I nie jestem pewien, ale myślę, że RPM jest nieco łatwiejszy do wykonania niż DEB, ale trudniejszy niż Arch.
Bardzo dobre i łatwe, a co do .deb nie jest takie trudne, cóż, na iOS
pozdrowienia
Myślę, że to by mi służyło jakiś czas temu, kiedy wgrałem mój pierwszy PKGBUILD na AUR 🙂
Czy ktoś może mi wyjaśnić, co to jest, jestem nowy i nie wiem, czy to pomoże mi zainstalować pakiet .deb, ale lokalnie w manjaro, a dokładniej grze. Tak to działa?
Właśnie napisałem kolejny artykuł o tworzeniu pakietów dla arch / manjaro z pakietów .deb
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Tak, już to widziałem, ale jestem bardzo nowatorski i nie rozumiem, czy nie tylko ta kwestia
cd „$ {srcdir} /”
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
co masz za sobą
jeśli [«$ {CARCH}» = 'x86_64 ′]; następnie
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
zależy = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686']; następnie
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
zależy = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Nie rozumiem, wygląda to na bardzo skomplikowane, to wspólne kroki lub pierwsza część
cd „$ {srcdir} /”
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
można to zrobić samodzielnie, aby przekonwertować plik .deb. .tar.gz?