Archlinux: crea pacchetti multipiattaforma e da pacchetti .deb

Circa un anno fa ho spiegato come creare pacchetti per Archlinux. Bene, oggi spiegherò come crearli dai pacchetti . Deb, quelli utilizzati in Debian / Mint / Ubuntu / ecc.
Questo articolo è nato dopo aver letto una domanda dell'utente nel forum jorgegc perché non ho potuto installare un pacchetto da AUR, principalmente perché è obsoleto e utilizzava una versione interrotto del PKGBUILD (fortunatamente ho già realizzato pacchetti in questo modo), spiegherò anche come realizzare pacchetti di programmi che necessitano Librerie a 32 bit, di codice chiuso o già compilato e che ha diversi pacchetti per il download.

La base per PKGBUILD è la stessa, solo con poche modifiche.
Il primo cambiamento sarà l'uso di una frase se elif di Bash


if [ "${CARCH}" = 'x86_64' ]; then
ARCH='amd64'
md5sums=('192a0a222893d59d95f00c34f3c8a674')
depends=('openal' 'lib32-openal')
elif [ "${CARCH}" = 'i686' ]; then
ARCH='i386'
md5sums=('047c670443124193c5cc3dd54da99925')
depends=('openal')
fi
source=("http://www.unaurl.com/files/${name}.$ARCH.deb")

In questo esempio è stata definita una variabile che verrà successivamente utilizzata per modificare il file URL dov'è il pacchetto (in questo caso l'architettura del pacchetto da scaricare).
Inoltre, a seconda dell'architettura, il Somme MD5 quindi li cambieremo con quelli corrispondenti.

Quando si usa makepkg -g per generare il file MD5somme Questo genererà solo quello corrispondente all'architettura che stai utilizzando. Per conoscere la somma MD5 dell'altro pacchetto scaricalo e usa il comando md5sum file.deb per conoscere il tuo

Infine vediamo che nell'esempio cambiamo le dipendenze. In alcuni programmi a 64 bit è necessario installare Versioni a 32 bit di alcune librerie quindi dobbiamo indicarli. Se non sono necessari, è sufficiente definire la variabile nel solito modo.

Ora per i pacchetti .deb avremo bisogno solo delle seguenti righe all'interno della funzione pacchetto ():

cd "${srcdir}/"
tar xvzf data.tar.gz -C .
cp -r usr ${pkgdir}

Come puoi vedere, in questo caso abbiamo bisogno solo di 3 righe per generare il pacchetto. Se è necessario qualcos'altro (ad esempio, copiare un file che non viene fornito con il pacchetto, o modificare il contenuto di uno) devi solo metterlo come con qualsiasi altro pacchetto.

Lo stesso potrebbe applicarsi (con alcune modifiche) se invece di un .deb usassimo i pacchetti rpm o altri tipi di pacchetti. La funzione costruire () non è necessario, quindi non è necessario aggiungerlo.

E voilà, abbiamo già un pacchetto multilib o creato da un pacchetto deb pronto per l'uso.
Spero che ti piaccia e che mi abbia spiegato bene 😀


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   ulisse suddetto

    Non è più facile usare checkinstall?

  2.   Luciano Lagassa suddetto

    Ciao. Ho alcuni script bash. Uno per generare le cartelle ei file di base per un pacchetto deb. E l'ultimo a generare il pacchetto da tutti i file e le cartelle. Se sei interessato, posso condividerlo.

    1.    jorgecg suddetto

      Certo che interessa ... almeno a me.

      Ora che sono con Manjaro apprezzo tutte le informazioni possibili.

  3.   jorgecg suddetto

    Quanto sei grande, partner.

    Ti avrei detto nel forum che se tu potessi spiegarmi come compilare pacchetti .deb e non ti ho detto niente per non abusare della tua generosità…. e vado alla pagina e vedo che hai caricato un articolo che spiega l'intero processo.

    Questo dimostra che sei una persona generosa.

    Ho detto, sei un crack.

    saluti

  4.   Anibal suddetto

    È un grande amico, una volta che ho provato un software di cui non ricordo il nome che è stato convertito da .deb a .rpm, ma non ha funzionato bene per me.

    Qualcuno con un arch test se questo software è passato bene a rpm e l'installazione si apre bene?

    http://www.justcloud.com/download/linux-64

    È per il backup nel cloud, ho già pagato per un po 'e ho più di 40 GB nel cloud =)

  5.   Inspiron suddetto

    Grande! Mi sono sempre detto che un giorno avrei voluto fare un pacco, anche se è sapere come farlo :).

    In questi tipi di post gradirei che il blog implementasse l'opzione per aggiungere voci come questa nei "preferiti" del mio account

    1.    chinoloco suddetto

      Totalmente d'accordo, l'ho piantato, ma niente 🙂
      Sarebbe anche bello poter seguire determinati utenti

  6.   Rabba suddetto

    Grande vecchio, utilizzo manjaro da alcuni giorni e per studi devo installare packet tracer da cisco ma ha solo un pacchetto .deb dell'ultima versione e ke è in AUR mi dà sempre un errore durante la compilazione , Spero con questi passaggi di poterlo installare poiché per forza sto usando linux mint, grazie mille

  7.   micetti suddetto

    per vedere se qualcuno osa mettere in AUR Multisystem

    dipende dalle librerie deb che non sono in arch

    Ma se funziona, la sua funzione è creare più pendrive ISO con grub2 meglio di unetbootin che ne fa solo uno.

    Al momento ho al suo interno una sua ISO Ubuntu che mi permette di aggiungere immagini se voglio fare il boot da essa sulla stessa USB

    ma se nessuno osa salvare il mio biglietto

  8.   micetti suddetto

    Scusate, esiste già un multisistema e credo di no

    1.    micetti suddetto

      In multisistema ...

      ma fatresize poiché yaourt dà problemi, e l'hanno messo come opzionale

  9.   quadri suddetto

    Ottimo 😀 per approvare con "Purrr" un programma per rinominare i file in blocco.

  10.   Apr4xas suddetto

    Saluti,

    Attualmente in AUR stanno rimuovendo pacchetti che non hanno la funzione package (), come posso sapere quali righe mettere lì? Cioè, ho diversi pacchetti e l'ho fatto in questo modo ma non so se va bene https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD quello che ho fatto veramente è passare quello che era in build () a package () ma come ho detto, non so se va bene ... Potete darmi i vostri commenti e suggerimenti?

    Grazie 😀

  11.   Azazel suddetto

    Grazie per le informazioni lo aggiungerò ai preferiti per riferimento futuro.

  12.   clerafel suddetto

    Qualcuno può spiegarmi di cosa si tratta, sono nuovo e non so se questo mi aiuti a installare un pacchetto .deb ma localmente in manjaro, un gioco per la precisione. Sì funziona?

    Cerco e mi dicono di installare il pacchetto deb2targz ma ottengo un errore quando lo installo da terminale e quindi non so se può essere

    1.    ghermain suddetto

      Lo stesso accade a me; Devo installare su Kademar che è basato su Arch; un paio di pacchetti che ottengo solo in .deb
      Qualcuno può aiutarmi?

      1.    valdo suddetto

        Se quello che intendi è un errore nell'installazione di deb2targz, ho appena finito di installarlo con il comando yaourt -S deb2targz. Ovviamente in ArchLinux.

  13.   Cloud Storage gratuito suddetto

    Post molto informativo. Grazie per la condivisione.

  14.   Angry Birds suddetto

    Buon post. Grazie per aver condiviso queste informazioni utili.

  15.   App per PC suddetto

    Grazie per questo utile post. Aiuterà molto.

  16.   Giacobbe suddetto

    ciao, puoi lasciare lo script per la conversione e come usarlo? è che così in alcune parti confonde un po ', ho già il deb che voglio convertire e so che è possibile perchè il google chrome di AUR è un deb ma non so come fare "MAKEPKG SI" con un altro deb 🙁