Archlinux: Creëer platformonafhankelijke pakketten en van .deb-pakketten

Ongeveer een jaar geleden heb ik uitgelegd hoe maak pakketten voor Archlinux. Nou, vandaag ga ik uitleggen hoe je ze uit pakketten kunt maken . Deb, die worden gebruikt in Debian / Mint / Ubuntu / enz.
Dit artikel is ontstaan ​​na het lezen van een vraag van de gebruiker in het forum jorgc omdat ik een pakket van AUR niet kon installeren, voornamelijk omdat het verouderd is en een versie heeft gebruikt Stopgezet van de PKGBUILD (gelukkig heb ik al eerder pakketten op deze manier gemaakt), zal ik ook uitleggen hoe je pakketten kunt maken van programma's die 32-bits bibliotheken, gesloten code o al samengesteld en dat het verschillende pakketten heeft om te downloaden.

De basis voor de PKGBUILD is hetzelfde, alleen met een paar wijzigingen.
De eerste wijziging is het gebruik van een zin als elif door 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 dit voorbeeld is een variabele gedefinieerd die later zal worden gebruikt om de URL waar is het pakket (in dit geval de architectuur van het te downloaden pakket).
Bovendien, afhankelijk van de architectuur, de MD5 sommen dus we zullen deze veranderen in de overeenkomstige.

Als u makepkg -g gebruikt om het MD5sommen Dit genereert alleen degene die overeenkomt met de architectuur die u gebruikt. Om de MD5-som van het andere pakket te kennen, downloadt u het en gebruikt u de opdracht md5sum-bestand.deb om de jouwe te kennen

Ten slotte zien we dat we in het voorbeeld de afhankelijkheden veranderen. Bij sommige 64-bits programma's is het nodig om 32-bits versies van sommige bibliotheken dus we moeten ze aangeven. Als ze niet nodig zijn, definieer dan de variabele op de gebruikelijke manier.

Voor .deb-pakketten hebben we nu alleen de volgende regels nodig binnen de functie pakket ():

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

Zoals u kunt zien, hebben we in dit geval slechts 3 regels nodig om het pakket te genereren. Als er iets anders nodig is (bijvoorbeeld het kopiëren van een bestand dat niet met het pakket wordt meegeleverd, of het wijzigen van de inhoud van een bestand), moet u het gewoon plaatsen zoals bij elk ander pakket.

Hetzelfde zou kunnen gelden (met enkele wijzigingen) als we in plaats van een .deb pakketten gaan gebruiken rpm of andere soorten pakketten. De functie bouwen () is niet vereist, dus we hoeven het niet toe te voegen.

En voila, we hebben al een multilib-pakket of zijn gemaakt op basis van een deb-pakket dat klaar is voor gebruik.
Ik hoop dat je het leuk vindt en dat het me goed heeft uitgelegd 😀


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   ulysses zei

    Is het niet gemakkelijker om checkinstall te gebruiken?

  2.   Luciano Lagassa zei

    Hoi. Ik heb een paar bash-scripts. Een om de basismappen en bestanden voor een deb-pakket te genereren. En de laatste die het pakket uit alle bestanden en mappen genereert. Als je interesse hebt, kan ik het delen.

    1.    jorgecg zei

      Natuurlijk interesseert het ... althans voor mij.

      Nu ik bij Manjaro ben, waardeer ik alle mogelijke informatie.

  3.   jorgecg zei

    Wat ben je geweldig, partner.

    Ik zou je op het forum hebben verteld dat als je me zou kunnen uitleggen hoe je .deb-pakketten moet compileren en ik je niets heb verteld om je vrijgevigheid niet te misbruiken…. en ik ga naar de pagina en ik zie dat je een artikel hebt geüpload waarin het hele proces wordt uitgelegd.

    Dit toont aan dat u een genereus persoon bent.

    Ik zei, je bent een crack.

    groeten

  4.   Anibal zei

    Het is een geweldige vriend, toen ik een keer een soft probeerde waarvan ik de naam niet meer weet, die is omgezet van .deb naar .rpm, maar het werkte niet goed voor mij.

    Iemand met een boog zou kunnen testen of deze software goed doorgaat naar rpm en de installatie goed opent?

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

    Het is om een ​​back-up te maken in de cloud, ik heb al een tijdje betaald en ik heb meer dan 40GB in de cloud =)

  5.   Inspiron zei

    Super goed! Ik zei altijd tegen mezelf dat ik op een dag een pakket wilde maken, ook al is het om te weten hoe ik het moet doen :).

    In dit soort berichten zou ik het waarderen dat de blog de optie implementeert om dit soort items toe te voegen aan "favorieten" van mijn account

    1.    chinoloco zei

      Helemaal mee eens, ik heb het geplant, maar niets 🙂
      Het zou ook goed zijn om bepaalde gebruikers te kunnen volgen

  6.   Rabba zei

    Zeer goede oude man, ik gebruik manjaro nu een paar dagen en voor studies moet ik packet tracer van Cisco installeren, maar het heeft alleen een .deb-pakket van de nieuwste versie en de ke is in AUR geeft me altijd een fout bij het compileren, ik hoop dat ik het met deze stappen kan installeren omdat ik met geweld linux mint gebruik, hartelijk dank

  7.   mitcoes zei

    om te zien of iemand het aandurft om AUR Multisystem in te voeren

    is afhankelijk van deb-bibliotheken die niet in arch

    Maar als het werkt, is het de functie om multi-ISO-pen-drives te maken met grub2, beter dan unetbootin die er maar één doet.

    Op dit moment heb ik een ubuntu ISO van zijn binnenkant waarmee ik afbeeldingen kan toevoegen als ik er vanaf wil opstarten op de USB zelf

    maar als niemand het kaartje durft te redden

  8.   mitcoes zei

    Sorry, er is al een multisysteem, en ik denk van niet

    1.    mitcoes zei

      In multisysteem ...

      maar fatresize aangezien yaourt problemen geeft, en zij hebben het als optioneel gesteld

  9.   kaders zei

    Geweldig 😀 om goed te keuren met "Purrr" een programma om bestanden in bulk te hernoemen.

  10.   Apr4xas zei

    Met vriendelijke groet,

    Momenteel elimineren ze in AUR de pakketten die niet de functie package () hebben, hoe kan ik weten welke regels ik daar moet plaatsen? Dat wil zeggen, ik heb verschillende pakketten en ik heb het op deze manier gedaan, maar ik weet niet of het oké is https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD wat ik echt deed is doorgeven wat er in build () was naar package (), maar zoals ik al zei, ik weet niet of het in orde is ... Kun je me je opmerkingen en suggesties geven?

    Bedankt 😀

  11.   Azazel zei

    Bedankt voor de informatie. Ik zal er een bladwijzer voor maken voor toekomstig gebruik.

  12.   clerafel zei

    Kan iemand mij uitleggen wat het is, ik ben nieuw, en ik weet niet of dit me helpt om een ​​.deb-pakket te installeren, maar lokaal in manjaro, een spel om precies te zijn. Ja het werkt?

    Ik zoek en ze vertellen me dat ik het deb2targz-pakket moet installeren, maar ik krijg een foutmelding wanneer ik het vanaf de terminal installeer en ik weet niet of het kan zijn

    1.    Germaine zei

      Hetzelfde overkomt mij; Ik moet installeren op Kademar die is gebaseerd op Arch; een paar pakketten die ik alleen in .deb krijg
      Kan iemand mij helpen?

      1.    valdo zei

        Als wat je bedoelt een fout is in de deb2targz-installatie, heb ik het net geïnstalleerd met het commando yaourt -S deb2targz. Natuurlijk in ArchLinux.

  13.   Gratis cloudopslag zei

    Zeer informatieve post. Bedankt voor het delen.

  14.   Boze vogels zei

    Goed bericht. Bedankt voor het delen van deze nuttige informatie.

  15.   Apps voor pc zei

    Bedankt voor dit nuttige bericht. Het gaat veel helpen.

  16.   Jakob zei

    hoi, kun je het script voor de conversie laten staan ​​en hoe je het kunt gebruiken? is dat zo in delen dat het een beetje verwart, ik heb al het deb dat ik wil converteren en ik weet dat het mogelijk is omdat de google chrome van AUR een deb is, maar ik weet niet hoe ik "MAKEPKG SI" moet maken met een ander deb 🙁