Archlinux: Opret pakker på tværs af platforme og fra .deb-pakker

For omkring et år siden forklarede jeg hvordan Opret pakker til Archlinux. Nå, i dag vil jeg forklare, hvordan jeg opretter dem fra pakker deb, dem der bruges i Debian / Mint / Ubuntu / osv.
Denne artikel opstod efter at have læst et spørgsmål fra brugeren i forummet jorgegc fordi jeg ikke kunne installere en pakke fra AUR, primært fordi den er forældet og brugt en version ophørt af PKGBUILD (heldigvis har jeg tidligere lavet pakker på denne måde), vil jeg også forklare, hvordan man laver pakker med programmer, der har brug for 32-bit biblioteker, af lukket kode o allerede kompileret og at den har forskellige pakker til download.

Grundlaget for PKGBUILD er det samme, kun med få ændringer.
Den første ændring vil være brugen af ​​en sætning hvis elif af 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")

I dette eksempel er der defineret en variabel, som senere vil blive brugt til at ændre URL hvor er pakken (i dette tilfælde pakken, der skal downloades).
Derudover afhænger arkitekturen af MD5 summer så vi vil ændre disse til de tilsvarende.

Når du bruger makepkg -g til at generere MD5summer Dette genererer kun den, der svarer til den arkitektur, du bruger. For at kende MD5-summen af ​​den anden pakke skal du downloade den og bruge kommandoen md5sum fil.deb at kende din

Endelig ser vi, at vi i eksemplet ændrer afhængighederne. I nogle 64-bit programmer er det nødvendigt at installere 32-bit versioner af nogle biblioteker så vi er nødt til at angive dem. Hvis de ikke er nødvendige, skal du blot definere variablen på den sædvanlige måde.

Nu til .deb-pakker har vi kun brug for følgende linjer inde i funktionen pakke ():

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

Som du kan se, har vi i dette tilfælde kun brug for 3 linjer for at generere pakken. Hvis noget andet er nødvendigt (for eksempel at kopiere en fil, der ikke følger med pakken eller ændre indholdet af en), skal du bare sætte den som med enhver anden pakke.

Det samme kunne gælde (med nogle ændringer), hvis vi i stedet for .deb bruger pakker rpm eller andre typer pakker. Funktionen bygge () er ikke nødvendigt, så vi behøver ikke tilføje det.

Og voila, vi har en multilib-pakke eller oprettet fra en deb-pakke klar til brug.
Jeg håber, du kan lide det, og at det har forklaret mig godt 😀


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   uvæsent sagde han

    Er det ikke nemmere at bruge checkinstallation?

  2.   Luciano Lagassa sagde han

    Hej. Jeg har nogle bash-scripts. En til at generere de grundlæggende mapper og filer til en deb-pakke. Og den sidste, der genererer pakken fra alle filer og mapper. Hvis du er interesseret, kan jeg dele det.

    1.    jorgecg sagde han

      Naturligvis interesserer det ... i det mindste for mig.

      Nu hvor jeg er hos Manjaro, sætter jeg pris på al mulig information.

  3.   jorgecg sagde han

    Hvor stor du er, partner.

    Jeg ville have fortalt dig i forummet, at hvis du kunne forklare mig, hvordan jeg kompilerer .deb-pakker, og jeg har ikke fortalt dig noget for ikke at misbruge din generøsitet…. og jeg går til siden, og jeg ser, at du har uploadet en artikel, der forklarer hele processen.

    Dette viser, at du er en generøs person.

    Jeg sagde, du er en knæk.

    hilsener

  4.   Anibal sagde han

    Det er en god ven, når jeg først prøvede en soft, at jeg ikke kan huske navnet, der konverterede fra .deb til .rpm, men det fungerede ikke godt for mig.

    nogen med bue kunne teste, om denne bløde overføres godt til rpm, og installationen åbner godt?

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

    Det er at tage backup i skyen, jeg har allerede betalt et stykke tid, og jeg har mere end 40 GB i skyen =)

  5.   Inspiron sagde han

    Store! Jeg sagde altid til mig selv, at jeg en dag ville lave en pakke, selvom det er at vide, hvordan man gør det :).

    I disse typer indlæg vil jeg sætte pris på, at bloggen implementerer muligheden for at tilføje poster som denne i "favoritter" på min konto

    1.    chinoloco sagde han

      Helt enig, jeg plantede det, men intet 🙂
      Det ville også være godt at kunne følge bestemte brugere

  6.   Rabba sagde han

    Stor gammel mand, jeg har brugt manjaro i et par dage, og til undersøgelser er jeg nødt til at installere pakkespor fra cisco, men den har kun en .deb-pakke i den nyeste version, og ke er i AUR giver mig altid en fejl under kompilering, jeg håber med disse trin kan jeg installere det siden jeg med magt har brugt linux mynte, mange tak

  7.   mitcoes sagde han

    for at se om nogen tør at sætte AUR Multisystem i

    afhænger af deb-biblioteker, der ikke er i buen

    Men hvis det fungerer, er dets funktion at skabe flere ISO-pendrives med grub2 bedre end unetbootin, der kun gør en.

    I øjeblikket har jeg en ubuntu-ISO indeni, der giver mig mulighed for at tilføje billeder, hvis jeg vil, ved at starte fra det på selve USB-en

    men hvis ingen tør gemme billetten

  8.   mitcoes sagde han

    Beklager, der er allerede et multisystem, og det tror jeg ikke

    1.    mitcoes sagde han

      I multisystem ...

      men fatresize, da yaourt giver problemer, og de har sagt det som valgfrit

  9.   marcos sagde han

    Fantastisk 😀 at godkende et program til at omdøbe filer i bulk med "Purrr".

  10.   Apr4xas sagde han

    Regards,

    I øjeblikket i AUR fjerner de de pakker, der ikke har funktionen package (), hvordan kan jeg vide, hvilke linjer der skal placeres der? Det vil sige, jeg har flere pakker, og jeg gjorde det på denne måde, men jeg ved ikke, om det er okay https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD hvad jeg virkelig gjorde, er at videregive det, der var i build () til at pakke (), men som sagt, jeg ved ikke, om det er ok ... Kan du give mig dine kommentarer og forslag?

    Tak 😀

  11.   Azazel sagde han

    Tak for de oplysninger, jeg vil bogmærke det til fremtidig reference.

  12.   clerafel sagde han

    Kan nogen forklare, hvad det er for mig, jeg er ny, og jeg ved ikke, om dette hjælper mig med at installere en .deb-pakke, men lokalt i manjaro, et spil for at være nøjagtigt. Ja, det virker?

    Jeg leder efter, og de fortæller mig at installere deb2targz-pakken, men jeg får en fejl, når jeg installerer den fra terminalen, og jeg ved ikke, om den kan

    1.    ghermain sagde han

      Det samme sker for mig; Jeg har brug for at installere på Kademar, som er baseret på Arch; et par pakker, som jeg kun får i .deb
      Kan nogen hjælpe mig?

      1.    Valdo sagde han

        Hvis hvad du mener er en fiasko i deb2targz-installationen, er jeg lige færdig med at installere den med kommandoen yaourt -S deb2targz. Selvfølgelig i ArchLinux.

  13.   Gratis skyopbevaring sagde han

    Meget informativt indlæg. Tak fordi du delte.

  14.   Vrede fugle sagde han

    Godt indlæg. Tak fordi du delte disse nyttige oplysninger.

  15.   Apps til pc sagde han

    Tak for dette nyttige indlæg. Det vil hjælpe meget.

  16.   jacob sagde han

    hej, kan du efterlade scriptet til konvertering, og hvordan man bruger det? Det er, at det i dele forvirrer lidt, jeg har allerede den deb, som jeg vil konvertere, og jeg ved, at det er muligt, fordi AURs Google-krom er en deb, men jeg ved ikke, hvordan man gør "MAKEPKG SI" med en anden deb