Una delle cose che mi piacciono di più di Arch Linux e dei suoi derivati è il file enorme facilità per creare pacchetti da installare successivamente sul sistema, a differenza di quelli conosciuti . Deb di Debian / Ubuntu / Linux Mint / ecc che è un caos (e se sono librerie non te lo dico nemmeno).
Un modello di base sarebbe questo:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Ora spiegherò ogni parametro:
- # Manutentore: In esso è inserito il nome del manutentore del pacchetto
- nomepacchetto: Il nome del pacchetto. Può contenere solo lettere, numeri, -, _ e +
- pkver: versione del pacchetto. pe 1.0.0
- pacchetto: revisione del programma o del pacchetto. pe 1
- pacchettodesc: descrizione del pacchetto.
- arco: l'architettura del programma: può essere qualsiasi (per tutti), i686 e x86_64, essendo qualsiasi per i pacchetti che non richiedono compilazione, come i programmi in bash o python. Se è un programma che ne ha bisogno (ad esempio, programmi in C o C ++), è necessario indicare i686 se è per 32 bit o x86_64 per 64 bit. In generale, se è compatibile con entrambi, viene impostato (i686, x86_64)
- URL: l'url alla pagina ufficiale del programma. Si consiglia di metterlo.
- licenza: la licenza del programma. ad esempio GPL3
- gruppi: i gruppi a cui appartiene il pacchetto. gruppi = ('sistema')
- dipende: in esso indichiamo i pacchetti necessari per l'esecuzione del programma. pependens = ('python2' 'pygtk')
- dipende: le dipendenze necessarie solo per compilare il pacchetto. Se il codice deve essere scaricato da un gestore di versioni, è consigliabile inserirlo. pe: makedepends = ('git')
- fonte: in esso indichiamo i file necessari alla creazione del pacchetto. Come regola generale, è l'URL del pacchetto che contiene il codice, una patch, un file .desktopt, icone, ecc. pe: source = (pacsyu.desktop)
- somme md5: ecco le somme md5 dei file indicati in source. Per sapere quali eseguiamo da un terminale nella cartella in cui si trova il PKGBUILD (dopo aver scritto i percorsi dei file nel sorgente) makepkg -g e le somme appariranno sullo schermo.
È anche possibile utilizzare altre somme come sh1. - costruire: in questa funzione metteremo il file comandi necessari per procedere alla compilazione del software. Se non è necessario compilare è necessaria solo la seguente funzione)
- pacchetto: in quest'altra funzione andranno i comandi di installazione del programma. Ad esempio, se stiamo compilando codice C qui, il make install andrebbe.
E per finire non ci resta che eseguire makepkg per verificare che il pacchetto venga generato.
Come puoi vedere, è difficile per noi. Quindi vi lascio con alcuni parametri extra di confezione:
- -io: Indica a makepkg di installare il pacchetto dopo che è stato creato.
- -S: Installa le dipendenze del pacchetto se si trovano nei repository.
- -F: Se esiste già un pacchetto con quel nome, versione e revisione con questo parametro ti diciamo di sovrascriverlo.
- -C: Pulisci le cartelle di lavoro (pkg e sorgente) una volta terminato.
- -UN: Reimballare il pacchetto senza dover ricompilare.
Consiglio di vedere più file PKGBUILD per vedere più esempi, eseguire il comando makepkg -h per vedere il resto dei parametri del programma, oltre a vedere il file documentazione ufficiale di makepkg su Arch Linux Wiki cosa puoi trovare qui
Molto buona …
Puoi fare in modo che un pacchetto .exe gestisca (compili) un pacchetto Arch?
Come ad esempio il famoso download manager Mipony ??
Per quanto ne so non è possibile, ricorda che i file .exe sono binari e non codice sorgente. Ma c'è JDownloader.
Come dici tu, non puoi ricompilare un exe poiché è codice binario.
Puoi creare un pacchetto che lo installa e lo esegue con Wine, così come il pacchetto nell'AUR del noto programma P2P Ares.
qualcuno usa Linux e manca Myponi… jijijijiji
jDownloader è in java, ed è ben noto a tutti che java provoca il cancro ai polmoni ...
interessante, dovremmo testare i pacchetti penso che sarò propenso a fare quello da qbittorrent hahaha esiste già in te ma avere una tua versione non sarà male da testare, grazie per le informazioni, saluti.
Buon input, +1
Voglio aggiungere che sono anche più facili da creare e mantenere rispetto agli ebuild di Gentoo!
Per quanto riguarda Debian, penso che questa distro aumenterebbe enormemente il suo handicap semplicemente modernizzando o migrando a un pacchetto e un sistema di gestione dei pacchetti più moderno, non so quando sarà l'ultimo aggiornamento del set dpkg / apt ma il concetto dovrebbe già essere facilmente 15 anni e la verità è che oggi è anacronistico.
Grazie mille, solo di recente, lo cercavo nel wiki e non avevo capito la struttura (volevo aggiornare quello di PlayonLinux) ma ho comunque rinunciato ... ci sono cose in cui mi piacerebbe avere un assistente o qualcosa del genere (non spararmi) ma comunque ... in assenza di strumenti nel tempo vedrò se ne creo
Grazie alla tua guida ho iniziato a creare il PKGBUILD di Zeya (http://web.psung.name/zeya/), non appena lo finisco, lo carico su AUR 🙂
Totalmente d'accordo, tempo fa ho provato a creare un pacchetto per Ubuntu ed era impossibile per me trovare informazioni comprensibili su come realizzarne uno, alla fine ho rinunciato e ho installato il programma più o meno.
Lo stesso programma per Arch mi ha richiesto meno di 5 minuti per mettere insieme il pacchetto.
E non ne sono sicuro, ma penso che gli RPM siano leggermente più facili da fare rispetto ai DEB, ma più difficili di Arch.
Molto buono e facile, e per quanto riguarda il .deb non è poi così difficile, beh quello per iOS
saluti
Penso che questo mi sarebbe servito qualche tempo fa quando ho caricato il mio primo PKGBUILD su AUR 🙂
Qualcuno può dirmi di cosa si tratta, sono nuovo e non so se questo mi aiuta a installare un pacchetto .deb ma localmente in manjaro, un gioco per la precisione. Sì funziona?
Ho appena scritto un altro articolo su come creare pacchetti per arch / manjaro da pacchetti .deb
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Sì, l'avevo già visto, ma sono molto novello e non capisco se non solo è questa linea
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
quello che hai dietro
se [«$ {CARCH}» = 'x86_64 ′]; poi
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
dipende = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; poi
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
dipende = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Non lo capisco, sembra molto complesso, sono passaggi comuni o la prima parte
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
può essere fatto da solo per convertire .deb. .tar.gz?