Archlinux: Creați pachete multi-platformă și din pachete .deb

Acum aproximativ un an am explicat cum creați pachete pentru Archlinux. Ei bine, astăzi voi explica cum să le creez din pachete .deb, cele utilizate în Debian / Mint / Ubuntu / etc..
Acest articol a apărut după ce a citit o întrebare a utilizatorului pe forum jorgegc deoarece nu am putut instala un pachet de la AUR, în principal pentru că este depășit și a folosit o versiune întrerupt din PKGBUILD (din fericire am făcut anterior pachete în acest fel), voi explica și cum să fac pachete de programe care au nevoie Biblioteci pe 32 de bițiDe cod închis o deja compilat și că are diferite pachete pentru descărcare.

Baza pentru PKGBUILD este aceeași, doar cu câteva modificări.
Prima modificare va fi utilizarea unei propoziții dacă elif lui 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")

În acest exemplu a fost definită o variabilă care va fi folosită ulterior pentru a schimba fișierul URL-ul unde este pachetul (în acest caz arhitectura pachetului de descărcat).
În plus, în funcție de arhitectură, Sume MD5 deci le vom schimba pe cele corespunzătoare.

Când utilizați makepkg -g pentru a genera fișierul Sume MD5 Acest lucru îl va genera doar pe cel corespunzător arhitecturii pe care o utilizați. Pentru a cunoaște suma MD5 a celuilalt pachet, descărcați-l și utilizați comanda md5sum file.deb să-l cunoști pe al tău

În cele din urmă vedem că în exemplu schimbăm dependențele. În unele programe pe 64 de biți este necesară instalarea Versiuni pe 32 de biți ale unor biblioteci deci trebuie să le indicăm. Dacă nu sunt necesare, definiți variabila în mod obișnuit.

Acum pentru pachetele .deb vom avea nevoie doar de următoarele linii în interiorul funcției pachet ():

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

După cum puteți vedea, avem nevoie doar de 3 linii în acest caz pentru a genera pachetul. Dacă este necesar altceva (de exemplu, copiați un fișier care nu vine cu pachetul sau modificați conținutul unuia) trebuie doar să îl puneți ca la orice alt pachet.

Același lucru s-ar putea aplica (cu unele modificări) dacă în loc de .deb vom folosi pachete rpm sau alte tipuri de pachete. Functia construi () nu este necesar, deci nu este nevoie să-l adăugăm.

Și voila, avem deja un pachet multilib sau creat dintr-un pachet deb gata de utilizare.
Sper să vă placă și că mi-a explicat bine 😀


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Ulise el a spus

    Nu este mai ușor să folosiți checkinstall?

  2.   Luciano Lagasa el a spus

    Salut. Am câteva scripturi bash. Unul pentru a genera folderele și fișierele de bază pentru un pachet deb. Și ultimul care a generat pachetul din toate fișierele și folderele. Dacă sunteți interesat, îl pot împărtăși.

    1.    jorgecg el a spus

      Bineînțeles că mă interesează ... cel puțin mie.

      Acum că sunt cu Manjaro, apreciez toate informațiile posibile.

  3.   jorgecg el a spus

    Cât de grozav ești, partener.

    Aveam să-ți spun în forum că dacă îmi poți explica cum să compilez pachetele .deb și nu ți-am spus nimic pentru a nu-ți abuza generozitatea ... și mă duc la pagină și văd că ați încărcat un articol care explică întregul proces.

    Acest lucru arată că sunteți o persoană generoasă.

    Am spus, ești un crack.

    Un saludo

  4.   Anibal el a spus

    Este un prieten grozav, odată ce am încercat un soft care nu-mi amintesc numele care s-a convertit de la .deb la .rpm, dar nu a funcționat bine pentru mine.

    Ar putea cineva cu test de arc dacă acest soft este trecut bine la rpm și instalarea se deschide bine?

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

    Este să fac backup în cloud, am plătit deja o vreme și am mai mult de 40gb în cloud =)

  5.   inspirație el a spus

    Grozav! Întotdeauna mi-am spus că într-o zi am vrut să fac un pachet, chiar dacă este să știu cum se face :)

    În aceste tipuri de postări aș aprecia că blogul pune în aplicare opțiunea de a adăuga intrări de acest fel în „Favorite” din contul meu

    1.    chinoloco el a spus

      Total de acord, l-am plantat, dar nimic 🙂
      De asemenea, ar fi bine să poți urmări anumiți utilizatori

  6.   Rabba el a spus

    Bătrân grozav, folosesc manjaro de câteva zile și pentru studii trebuie să instalez pachetul de urmărire de la cisco, dar are doar un pachet .deb cu cea mai recentă versiune și ke este în AUR îmi dă întotdeauna o eroare la compilare, sper că cu acești pași îl pot instala deoarece cu forța am folosit linux mint, vă mulțumesc foarte mult

  7.   mitcoe el a spus

    pentru a vedea dacă cineva îndrăznește să pună în AUR Multisystem

    depinde de bibliotecile deb care nu sunt în arhivă

    Dar dacă funcționează, funcția sa este de a crea mai multe pandere ISO cu grub2 mai bine decât unetbootin care face doar una.

    În acest moment am un ubuntu ISO din interiorul său care îmi permite să adaug imagini dacă vreau să pornesc de pe el chiar pe USB

    dar dacă nimeni nu îndrăznește să-mi salveze biletul

  8.   mitcoe el a spus

    Ne pare rău, există deja un multisistem și cred că nu

    1.    mitcoe el a spus

      În multisistem ...

      dar fatresize deoarece yaourt dă probleme și au pus-o ca opțională

  9.   marcos el a spus

    Excelent 😀 pentru a aproba cu „Purrr” un program pentru redenumirea fișierelor în bloc.

  10.   Apr4xas el a spus

    Salutari,

    În prezent, în AUR elimină pachetele care nu au funcția package (), cum pot să știu ce linii să pun acolo? Adică am mai multe pachete și am făcut-o așa, dar nu știu dacă este în regulă https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD ceea ce am făcut cu adevărat este să trec ceea ce era în build () la package (), dar așa cum am spus, nu știu dacă este în regulă ... Îmi puteți da comentarii și sugestii?

    Mulțumesc 😀

  11.   Azazel el a spus

    Vă mulțumim pentru informații, o voi marca ca referință pentru referințe viitoare.

  12.   clerafel el a spus

    Cineva îmi poate explica ce este, sunt nou și nu știu dacă acest lucru mă ajută să instalez un pachet .deb, dar local în manjaro, un joc mai exact. Da, functioneaza?

    Mă uit și îmi spun să instalez pachetul deb2targz, dar primesc o eroare la instalarea de la terminal și nu știu dacă poate fi

    1.    ghermain el a spus

      La fel mi se întâmplă și mie; Am nevoie să instalez Kademar care se bazează pe Arch; câteva pachete pe care le primesc doar în .deb
      Ma poate ajuta cineva?

      1.    Valdo el a spus

        Dacă ceea ce vrei să spui este un eșec în instalarea deb2targz, tocmai am terminat de instalat cu comanda yaourt -S deb2targz. Desigur, în ArchLinux.

  13.   Spațiu gratuit de stocare în cloud el a spus

    Post foarte informativ. Vă mulțumim pentru distribuire.

  14.   Păsări supărate el a spus

    Post bun. Vă mulțumim că ne-ați împărtășit aceste informații utile.

  15.   Aplicații pentru PC el a spus

    Vă mulțumim pentru această postare utilă. Va ajuta foarte mult.

  16.   Iacov el a spus

    salut, poți lăsa scriptul pentru conversie și cum să-l folosești? Este că în anumite părți se încurcă puțin, am deja deb-ul pe care vreau să-l convertesc și știu că este posibil, deoarece google chrome-ul AUR este un deb, dar nu știu cum să fac „MAKEPKG SI” cu un alt deb 🙁