Archlinux: Skapa plattformspaket och från .deb-paket

För ungefär ett år sedan förklarade jag hur skapa paket för Archlinux. Tja, idag ska jag förklara hur man skapar dem från paket . Deb, de som används i Debian / Mint / Ubuntu / etc.
Denna artikel uppstod efter att ha läst en fråga från användaren i forumet jorgegc eftersom jag inte kunde installera ett paket från AUR, främst för att det är föråldrat och använde en version upphört av PKGBUILD (lyckligtvis har jag tidigare gjort paket på detta sätt) kommer jag också att förklara hur man gör paket med program som behöver 32-bitars bibliotek, av stängd kod o redan sammanställt och att den har olika paket för nedladdning.

Grunden för PKGBUILD är densamma, bara med några få ändringar.
Den första ändringen är användningen av en mening om 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 detta exempel har en variabel definierats som senare kommer att användas för att ändra URL var är paketet (i det här fallet arkitekturen för paketet som ska laddas ner).
Dessutom, beroende på arkitektur, MD5-summor så vi kommer att ändra dessa till motsvarande.

När du använder makepkg -g för att generera MD5summor Detta genererar bara den som motsvarar den arkitektur du använder. För att känna till MD5-summan för det andra paketet, ladda ner den och använd kommandot md5sum file.deb att känna din

Slutligen ser vi att vi i exemplet ändrar beroenden. I vissa 64-bitarsprogram är det nödvändigt att installera 32-bitarsversioner av vissa bibliotek så vi måste ange dem. Om de inte är nödvändiga definierar du helt enkelt variabeln på vanligt sätt.

Nu för .deb-paket behöver vi bara följande rader inuti funktionen paket ():

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

Som du kan se behöver vi bara tre rader i det här fallet för att generera paketet. Om något annat är nödvändigt (till exempel att kopiera en fil som inte följer med paketet eller ändra innehållet i en) måste du bara lägga den som med alla andra paket.

Detsamma kan gälla (med vissa ändringar) om vi istället för .deb ska använda paket rpm eller andra typer av paket. Funktionen bygga () behövs inte, så vi behöver inte lägga till det.

Och voila, vi har redan ett multilib-paket eller skapat från ett deb-paket som är klart att användas.
Jag hoppas att du gillar det och att det har förklarat mig bra 😀


32 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   lysande sade

    Är det inte lättare att använda checkinstallation?

  2.   Luciano Lagassa sade

    Hej. Jag har några bash-skript. En för att skapa de grundläggande mapparna och filerna för ett deb-paket. Och den sista som genererar paketet från alla filer och mappar. Om du är intresserad kan jag dela det.

    1.    jorgecg sade

      Naturligtvis intresserar det ... åtminstone för mig.

      Nu när jag är med Manjaro uppskattar jag all möjlig information.

  3.   jorgecg sade

    Hur bra du är, partner.

    Jag skulle ha sagt till dig i forumet att om du kunde förklara för mig hur man kompilerar .deb-paket och jag har inte sagt något för att inte missbruka din generositet .... och jag går till sidan och jag ser att du har laddat upp en artikel som förklarar hela processen.

    Detta visar att du är en generös person.

    Jag sa, du är en spricka.

    hälsningar

  4.   Anibal sade

    Det är bra vän, när jag en gång försökte en mjuk att jag inte kommer ihåg namnet som konverterade från .deb till .rpm, men det fungerade inte bra för mig.

    Kan någon med bågtest testa om den här mjukheten passerar bra till varvtal och installationen öppnar bra?

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

    Det är att säkerhetskopiera i molnet, jag har redan betalat ett tag och jag har mer än 40 GB i molnet =)

  5.   inspiron sade

    Bra! Jag sa alltid till mig själv att jag en dag ville göra ett paket, även om det är att veta hur man gör det :).

    I dessa typer av inlägg skulle jag uppskatta att bloggen implementerar möjligheten att lägga till inlägg som detta i "favoriter" på mitt konto

    1.    chinoloco sade

      Helt överens, jag planterade den, men ingenting 🙂
      Det skulle också vara bra att kunna följa vissa användare

  6.   Rabba sade

    Bra gammal man, jag har använt manjaro i några dagar och för studier måste jag installera paketspårare från Cisco men det har bara ett .deb-paket av den senaste versionen och ke är i AUR ger mig alltid ett fel när jag kompilerar, Jag hoppas att jag med de här stegen kan installera den eftersom jag har använt linux mynta med kraft, tack så mycket

  7.   mitcoes sade

    för att se om någon vågar sätta in AUR Multisystem

    beror på deb-bibliotek som inte finns i arch

    Men om det fungerar är dess funktion att skapa flera ISO-pennor med grub2 bättre än unetbootin som bara gör en.

    Just nu har jag en ubuntu ISO av hans insida som gör att jag kan lägga till bilder om jag vill starta från den på själva USB

    men om ingen vågar spara min biljett

  8.   mitcoes sade

    Tyvärr finns det redan ett multisystem, och jag tror inte det

    1.    mitcoes sade

      I multisystem ...

      men fettstorlek eftersom yaourt ger problem, och de har uttryckt det som valfritt

  9.   marcos sade

    Bra 😀 att godkänna ett program för att byta namn på filer i bulk med "Purrr".

  10.   Apr4xas sade

    hälsningar,

    För närvarande i AUR tar de bort paket som inte har funktionen package (), hur kan jag veta vilka rader jag ska lägga där? Det vill säga, jag har flera paket och jag gjorde det på det här sättet men jag vet inte om det är okej https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD vad jag verkligen gjorde är att skicka det som fanns i build () till paketet () men som sagt, jag vet inte om det är ok ... Kan du ge mig dina kommentarer och förslag?

    Tack 😀

  11.   Azazel sade

    Tack för den information jag bokmärker för framtida referens.

  12.   clerafel sade

    Kan någon förklara vad det är för mig, jag är ny och jag vet inte om det hjälper mig att installera ett .deb-paket men lokalt i manjaro, ett spel för att vara exakt. Ja det funkar?

    Jag tittar och de säger till mig att installera deb2targz-paketet men jag får ett fel när jag installerar det från terminalen och jag vet inte om det kan vara

    1.    Ghermain sade

      Detsamma händer mig; Jag måste installera på Kademar som är baserad på Arch; ett par paket som jag bara får i .deb
      Kan någon hjälpa mig?

      1.    valdo sade

        Om det du menar är ett fel i installationen av deb2targz, har jag precis avslutat installationen med kommandot yaourt -S deb2targz. Naturligtvis i ArchLinux.

  13.   Gratis molnlagring sade

    Mycket informativt inlägg. Tack för att du delar med dig.

  14.   Angry Birds sade

    Bra inlägg. Tack för att du delar den här användbara informationen.

  15.   Appar för PC sade

    Tack för det här hjälpsamma inlägget. Det kommer att hjälpa mycket.

  16.   Jacob sade

    hej, kan du lämna skriptet för konvertering och hur man använder det? Det är att det i delar förvirrar lite, jag har redan den deb som jag vill konvertera och jag vet att det är möjligt eftersom AURs Google Chrome är en deb men jag vet inte hur man gör "MAKEPKG SI" med en annan deb 🙁