Archlinux: Opprett plattformpakker og fra .deb-pakker

For omtrent et år siden forklarte jeg hvordan lage pakker for Archlinux. Vel, i dag skal jeg forklare hvordan jeg lager dem fra pakker . Deb, de som brukes i Debian / Mint / Ubuntu / etc.
Denne artikkelen oppstod etter å ha lest et spørsmål fra brukeren i forumet jorgegc fordi jeg ikke kunne installere en pakke fra AUR, hovedsakelig fordi den er utdatert og brukt en versjon avviklet av PKGBUILD (heldigvis har jeg tidligere laget pakker på denne måten), vil jeg også forklare hvordan jeg lager pakker med programmer som trenger 32-biters biblioteker, av lukket kode o allerede kompilert og at den har forskjellige pakker for nedlasting.

Grunnlaget for PKGBUILD er det samme, bare med noen få endringer.
Den første endringen vil være bruk av en setning hvis elif av 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 eksemplet er det definert en variabel som senere vil bli brukt til å endre URL hvor er pakken (i dette tilfellet arkitekturen til pakken som skal lastes ned).
I tillegg avhenger av arkitekturen MD5 summer så vi vil endre disse til de tilsvarende.

Når du bruker makepkg -g til å generere MD5 -summer Dette genererer bare den som tilsvarer arkitekturen du bruker. For å kjenne MD5-summen av den andre pakken, last ned den og bruk kommandoen md5sum file.deb å kjenne din

Til slutt ser vi at i eksemplet endrer vi avhengighetene. I noen 64-biters programmer er det nødvendig å installere 32-biters versjoner av noen biblioteker så vi må indikere dem. Hvis de ikke er nødvendige, definerer du bare variabelen på vanlig måte.

Nå for .deb-pakker trenger vi bare følgende linjer inne i funksjonen pakke ():

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

Som du kan se, trenger vi bare 3 linjer i dette tilfellet for å generere pakken. Hvis noe annet er nødvendig (for eksempel å kopiere en fil som ikke følger med pakken, eller endre innholdet i en), må du bare legge den som med alle andre pakker.

Det samme kan gjelde (med noen endringer) hvis vi i stedet for en .deb skal bruke pakker rpm eller andre typer pakker. Funksjonen bygge () er ikke nødvendig, så vi trenger ikke legge det til.

Og voila, vi har allerede en multilib-pakke eller opprettet fra en deb-pakke klar til bruk.
Jeg håper du liker det og at det har forklart meg godt 😀


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ulysses sa

    Er det ikke enklere å bruke sjekkinstallasjon?

  2.   Luciano Lagassa sa

    Hei. Jeg har noen bash-skript. En for å generere de grunnleggende mappene og filene for en deb-pakke. Og den siste som genererer pakken fra alle filer og mapper. Hvis du er interessert, kan jeg dele det.

    1.    jorgecg sa

      Selvfølgelig interesserer det ... i det minste for meg.

      Nå som jeg er sammen med Manjaro setter jeg pris på all mulig informasjon.

  3.   jorgecg sa

    Hvor flott du er, partner.

    Jeg ville ha fortalt deg i forumet at hvis du kunne forklare meg hvordan jeg lager .deb-pakker, og jeg har ikke fortalt deg noe for ikke å misbruke din sjenerøsitet ... og jeg går til siden og ser at du har lastet opp en artikkel som forklarer hele prosessen.

    Dette viser at du er en sjenerøs person.

    Jeg sa, du er en sprekk.

    En hilsen

  4.   Anibal sa

    Det er en flott venn, en gang prøvde jeg en soft at jeg ikke kan huske navnet som konverterte fra .deb til .rpm, men det fungerte ikke bra for meg.

    Kan noen med buetest om dette myke passerer godt til rpm og installasjonen åpner bra?

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

    Det er å sikkerhetskopiere i skyen, jeg har allerede betalt en stund, og jeg har mer enn 40 GB i skyen =)

  5.   Inspiron sa

    Flott! Jeg sa alltid til meg selv at jeg en dag ville lage en pakke, selv om det er å vite hvordan jeg skal gjøre det :).

    I denne typen innlegg vil jeg sette pris på at bloggen implementerer muligheten til å legge til oppføringer som dette i "favoritter" på kontoen min

    1.    chinoloco sa

      Helt enig, jeg plantet den, men ingenting 🙂
      Det ville også være bra å kunne følge bestemte brukere

  6.   Rabba sa

    Flott gammel mann, jeg har brukt manjaro i noen dager, og for studier må jeg installere pakkespor fra cisco, men den har bare en .deb-pakke av den nyeste versjonen, og ke er i AUR gir meg alltid en feil når jeg kompilerer Jeg håper med disse trinnene kan jeg installere det siden jeg med makt har brukt Linux mynte, tusen takk

  7.   mitcoes sa

    for å se om noen tør å sette inn AUR Multisystem

    avhenger av deb-biblioteker som ikke er i buen

    Men hvis det fungerer, er dets funksjon å lage flere ISO-pendrives med grub2 bedre enn unetbootin som bare gjør en.

    For øyeblikket har jeg en ubuntu ISO av henne inne som lar meg legge til bilder hvis jeg vil ved å starte fra den på selve USB-en

    men hvis ingen tør lagre billetten min

  8.   mitcoes sa

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

    1.    mitcoes sa

      I multisystem ...

      men fettstørrelse siden yaourt gir problemer, og de har sagt det som valgfritt

  9.   rammeverk sa

    Flott 😀 å godkjenne et program for å gi nytt navn til filer i bulk med "Purrr".

  10.   Apr4xas sa

    hilsen,

    For tiden i AUR fjerner de pakker som ikke har package () -funksjonen. Hvordan kan jeg vite hvilke linjer jeg skal legge der? Det vil si at jeg har flere pakker, og jeg gjorde det på denne måten, men jeg vet ikke om det er greit https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD det jeg virkelig gjorde er å overføre det som var i build () til pakke (), men som sagt, jeg vet ikke om det er ok ... Kan du gi meg dine kommentarer og forslag?

    Takk 😀

  11.   Azazel sa

    Takk for informasjonen. Jeg vil legge den til bokmerke for fremtidig referanse.

  12.   klerafel sa

    Noen kan forklare hva det er for meg, jeg er ny, og jeg vet ikke om dette hjelper meg å installere en .deb-pakke, men lokalt i manjaro, et spill for å være nøyaktig. Ja, det fungerer?

    Jeg ser etter og de ber meg om å installere deb2targz-pakken, men jeg får en feil når jeg installerer den fra terminalen, og da vet jeg ikke om det kan være

    1.    ghermain sa

      Det samme skjer med meg; Jeg må installere Kademar som er basert på Arch; et par pakker som jeg bare får i .deb
      Kan noen hjelpe meg?

      1.    Valdo sa

        Hvis det du mener er en feil i deb2targz-installasjonen, har jeg akkurat installert den med kommandoen yaourt -S deb2targz. Selvfølgelig, i ArchLinux.

  13.   Gratis skylagring sa

    Veldig informativt innlegg. Takk for at du delte.

  14.   Sinte fugler sa

    Bra innlegg. Takk for at du delte denne nyttige informasjonen.

  15.   Apper for PC sa

    Takk for dette nyttige innlegget. Det kommer til å hjelpe mye.

  16.   jacob sa

    hei, kan du legge igjen skriptet for konvertering og hvordan du bruker det? Det er at det i deler forvirrer litt, jeg har allerede deb som jeg vil konvertere, og jeg vet at det er mulig fordi Google-kromen til AUR er en deb, men jeg vet ikke hvordan jeg skal lage "MAKEPKG SI" med en annen deb 🙁