Se lo usi makepkgdirettamente, inquina in qualche modo il tuo sistema. Il base-develgruppo di pacchetti deve essere installato. In questo modo, per impostazione predefinita, le dipendenze necessarie solo per compilare il pacchetto, ma non necessarie per usarlo, vengono lasciate installate. Questo comportamento predefinito può essere modificato, ma comporta l'installazione e la disinstallazione di pacchetti e l'inquinamento di /var/log/pacman.log.
Fare riferimento a questo articolo per comprendere e utilizzare l'AUR in generale, incluso ottenere PKGBUILD. Questo documento mostra solo i passaggi specifici makepkg, se è il metodo scelto per compilare un pacchetto.
Compilazione con Makepkg
Se il base-develgruppo di pacchetti non è già installato, è necessario installarlo. In caso contrario, makepkgsupporrà che sia già installato, e se un pacchetto è richiesto ma non installato, semplicemente fallirà invece di installarlo per te. makepkgstesso fa parte del pacmanpacchetto, già installato.
# pacman -S base-devel
È necessario eseguire makepkgnella directory con PKGBUILDla directory creata da git clone. Per impostazione predefinita, scaricherà il codice sorgente effettivo, compilerà il pacchetto e lo impacchetterà.
Esistono molte opzioni makepkg, tra cui quelle comunemente usate:
-s, --syncdeps : Installa automaticamente le dipendenze mancanti necessarie per la creazione e l'utilizzo del pacchetto.
- Nota se
PKGBUILDha dipendenze dai pacchetti AUR, devi prima installarli o averli disponibili in un repository locale per poterli trovare.
-r, --rmdeps : Se viene compilato correttamente, disinstalla automaticamente le dipendenze non più necessarie, tra cui:
- Quelli richiesti per la costruzione ma non per l'utilizzo del pacchetto
- Se utilizzato senza l'
--installopzione, quelli richiesti per l'utilizzo del pacchetto.
-i, --install : Se viene compilato correttamente, installa / aggiorna automaticamente il pacchetto.
-c, --clean : Elimina automaticamente i file di build temporanei, in genere necessari solo durante il debug di una build che è andata male.
Per installare / aggiornare automaticamente il pacchetto, lasciare le dipendenze installate per l'utilizzo del pacchetto e rimuovere le dipendenze necessarie solo durante la creazione, eseguire:
# makepkg -sri
In alternativa, puoi scegliere di non installarlo automaticamente e lasciare tutte le dipendenze installate, quindi se un giorno impacchetterai un aggiornamento, sono già installate:
# makepkg -s
È quindi possibile utilizzare un repository locale come spiegato qui oppure installare direttamente il file:
# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
Pacchetto più veloce
Per impostazione predefinita, makepkgcombina un intero pacchetto in un formato di archivio; fare un .tar.xzfile usando un singolo thread per la xzcompressione.
Su sistemi con più CPU, è possibile consentire xzl'utilizzo di più thread modificando /etc/makepkg.confe modificando la seguente riga:
COMPRESSXZ=(xz -c -z -)
È possibile consentire tutti i thread quanti sono i core virtuali:
COMPRESSXZ=(xz -c -z - --threads=0)
Per consentire l'utilizzo di più core virtuali, ma non tutti, ad esempio per ridurre l'impatto sulle prestazioni complessive del sistema, aggiungere un numero specifico, come il seguente:
COMPRESSXZ=(xz -c -z - --threads=21)
Nota: la specifica di più thread rispetto al numero di core virtuali disponibili riduce le prestazioni.
Se non ti dispiace che il file del pacchetto sia (potenzialmente molto) più grande, disabilita la compressione modificando /etc/makepkg.confe modifica la seguente riga:
PKGEXT='.pkg.tar.xz'
Dovrebbe apparire come segue:
PKGEXT='.pkg.tar'
Salta verifica firma PGP
Si consiglia di verificare e aggiungere correttamente tutte le firme PGP utilizzate, come spiegato qui nella sezione "Errore firma PGP".
Tuttavia, se si esegue makepkgdirettamente, è possibile dargli la --skippgpcheckpossibilità di saltare la verifica della firma PGP.