Archlinux: Twórz pakiety międzyplatformowe iz pakietów .deb

Około rok temu wyjaśniłem, jak to zrobić tworzyć pakiety dla Archlinux. Cóż, dzisiaj wyjaśnię, jak je utworzyć z pakietów deb, te używane w Debian / Mint / Ubuntu / etc.
Ten artykuł powstał po przeczytaniu pytania od użytkownika na forum jorgegc ponieważ nie mogłem zainstalować pakietu z AUR, głównie dlatego, że jest nieaktualny i używał wersji przerwane PKGBUILD (na szczęście wcześniej robiłem pakiety w ten sposób), wyjaśnię również, jak tworzyć pakiety programów, które wymagają Biblioteki 32-bitowez zamknięty kod o już skompilowane i że ma różne pakiety do pobrania.

Podstawa PKGBUILD jest taka sama, z kilkoma zmianami.
Pierwszą zmianą będzie użycie zdania jeśli elif przez 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")

W tym przykładzie została zdefiniowana zmienna, która będzie później używana do zmiany URL gdzie jest pakiet (w tym przypadku architektura pakietu do pobrania).
Ponadto w zależności od architektury Sumy MD5 więc zmienimy je na odpowiednie.

Podczas używania makepkg -g do generowania pliku Sumy MD5 Spowoduje to wygenerowanie tylko tej, która odpowiada używanej architekturze. Aby poznać sumę MD5 innego pakietu, pobierz go i użyj polecenia md5sum plik.deb znać swoje

Wreszcie widzimy, że w przykładzie zmieniamy zależności. W niektórych programach 64-bitowych konieczna jest instalacja 32-bitowe wersje niektórych bibliotek więc musimy je wskazać. Jeśli nie są potrzebne, wystarczy zdefiniować zmienną w zwykły sposób.

Teraz dla pakietów .deb będziemy potrzebować tylko następujących wierszy wewnątrz funkcji pakiet ():

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

Jak widać, w tym przypadku potrzebujemy tylko 3 wierszy, aby wygenerować pakiet. Jeśli konieczne jest coś innego (na przykład skopiowanie pliku, który nie jest dołączony do pakietu lub modyfikacja zawartości jednego z nich), wystarczy umieścić go tak, jak w przypadku każdego innego pakietu.

To samo może dotyczyć (z pewnymi zmianami), jeśli zamiast pliku .deb będziemy używać pakietów rpm lub inne rodzaje opakowań. Funkcja budować () nie jest potrzebne, więc nie musimy go dodawać.

I voila, mamy już pakiet multilib lub utworzony z pakietu deb gotowego do użycia.
Mam nadzieję, że Ci się spodoba i że dobrze mi to wyjaśniło 😀


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   ulisses powiedział

    Czy nie jest łatwiej używać checkinstall?

  2.   Luciano Lagassa powiedział

    Cześć. Mam kilka skryptów basha. Jeden do generowania podstawowych folderów i plików dla pakietu deb. I ostatni, który generuje pakiet ze wszystkich plików i folderów. Jeśli jesteś zainteresowany, mogę to udostępnić.

    1.    jorgekg powiedział

      Oczywiście, że to interesuje ... przynajmniej mnie.

      Teraz, gdy jestem z Manjaro, doceniam wszystkie możliwe informacje.

  3.   jorgekg powiedział

    Jaki jesteś wspaniały, partnerze.

    Chciałem ci powiedzieć na forum, że gdybyś mógł mi wytłumaczyć, jak skompilować pakiety .deb, a nie powiedziałem ci nic, aby nie nadużywać twojej hojności…. i przechodzę na stronę i widzę, że wgrałeś artykuł wyjaśniający cały proces.

    To pokazuje, że jesteś hojną osobą.

    Powiedziałem, że jesteś crack.

    pozdrowienia

  4.   Anibal powiedział

    To świetny przyjaciel, raz wypróbowałem soft, którego nazwy nie pamiętam, która zmieniła się z .deb na .rpm, ale nie działała dobrze dla mnie.

    Mógłby ktoś z testem łuku, czy ten soft jest dobrze przekazany do rpm i instalacja dobrze się otwiera?

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

    To kopia zapasowa w chmurze, już od jakiegoś czasu zapłaciłem i mam ponad 40 GB w chmurze =)

  5.   Inspiron powiedział

    Świetny! Zawsze powtarzałem sobie, że pewnego dnia chciałem zrobić paczkę, choćby po to, żeby wiedzieć, jak to zrobić :).

    W tego typu postach byłbym wdzięczny za to, że blog zaimplementował opcję dodawania takich wpisów w "ulubionych" na moim koncie

    1.    Chinoloco. powiedział

      Całkowicie się zgadzam, zasadziłem to, ale nic
      Dobrze byłoby też móc śledzić niektórych użytkowników

  6.   Rabba powiedział

    Świetny staruszku, używam manjaro od kilku dni i do badań muszę zainstalować pakiet śledzenia pakietów z cisco, ale ma on tylko pakiet .deb najnowszej wersji, a ke jest w AUR zawsze daje mi błąd podczas kompilacji , Mam nadzieję, że dzięki tym krokom uda mi się go zainstalować, ponieważ siłą używam linux mint, dziękuję bardzo

  7.   Mitkoy powiedział

    aby sprawdzić, czy ktoś odważy się wprowadzić AUR Multisystem

    zależy od bibliotek deb, które nie są w archiwum

    Ale jeśli to działa, jego funkcją jest tworzenie wielu pendrive'ów ISO z grub2 lepiej niż unetbootin, który robi tylko jeden.

    W tej chwili mam ubuntu ISO w jego wnętrzu, które pozwala mi dodawać obrazy, jeśli chcę uruchomić z niego na samym USB

    ale jeśli nikt nie odważy się zachować mojego biletu

  8.   Mitkoy powiedział

    Przepraszam, jest już multisystem i myślę, że nie

    1.    Mitkoy powiedział

      W multisystemie ...

      ale fatresize, ponieważ twój stwarza problemy, a oni uznają to za opcjonalne

  9.   Marcos powiedział

    Świetnie 😀 zatwierdzić za pomocą "Purrr" program do masowej zmiany nazw plików.

  10.   Apr4xas powiedział

    Pozdrawiam,

    Obecnie w AUR eliminują pakiety, które nie mają funkcji package (), skąd mam wiedzieć, jakie linie tam umieścić? To znaczy, mam kilka paczek i zrobiłem to w ten sposób, ale nie wiem, czy jest w porządku https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD to, co naprawdę zrobiłem, to przekazanie tego, co było w build () do package (), ale jak powiedziałem, nie wiem, czy wszystko jest w porządku ... Czy możesz przekazać mi swoje komentarze i sugestie?

    Dzięki 😀

  11.   Azazel powiedział

    Dziękuję za informację, którą dodam do zakładek do wykorzystania w przyszłości.

  12.   Clerafel powiedział

    Ktoś może mi wyjaśnić, co to jest, jestem nowy i nie wiem, czy to pomoże mi zainstalować pakiet .deb, ale lokalnie w manjaro, a dokładniej grze. Tak to działa?

    Szukam i każą mi zainstalować pakiet deb2targz ale wyskakuje mi błąd przy instalacji go z terminala i nie wiem czy da się

    1.    Germaine powiedział

      To samo dzieje się ze mną; Muszę zainstalować program Kademar oparty na Arch; kilka pakietów, które dostaję tylko w .deb
      Czy ktoś może mi pomóc?

      1.    valdo powiedział

        Jeśli masz na myśli awarię w instalacji deb2targz, właśnie skończyłem ją instalować poleceniem yaourt -S deb2targz. Oczywiście w ArchLinux.

  13.   Bezpłatne miejsce w chmurze powiedział

    Bardzo pouczający post. Dzięki za udostępnienie.

  14.   Wściekłe Ptaki powiedział

    Dobry post. Dziękujemy za podzielenie się tą przydatną informacją.

  15.   Aplikacje na PC powiedział

    Dzięki za ten pomocny post. To bardzo pomoże.

  16.   Jakub powiedział

    cześć, czy możesz zostawić skrypt do konwersji i jak go używać? jest to ze tak w czesciach to troche mylace, mam juz deb ktory chce przekonwertowac i wiem ze jest to mozliwe bo Google chrome z AUR to deb ale nie wiem jak zrobic "MAKEPKG SI" z inny deb 🙁