Archlinux: создание кроссплатформенных пакетов и пакетов из .deb

Около года назад я объяснил, как создавать пакеты для Archlinux. Что ж, сегодня я собираюсь объяснить, как их создавать из пакетов. . Деб, используемые в Debian / Mint / Ubuntu / и т. Д..
Эта статья возникла после прочтения вопроса пользователя на форуме Jorgegc потому что я не мог установить пакет из AUR, в основном потому, что он устарел и использовал версию снято с производства PKGBUILD (к счастью, я ранее создавал пакеты таким образом), я также объясню, как создавать пакеты программ, которые нуждаются в 32-битные библиотекииз закрытый код o уже скомпилирован и что у него есть разные пакеты для загрузки.

Основа PKGBUILD такая же, только с небольшими изменениями.
Первым изменением будет использование предложения если Элиф по Баш


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")

В этом примере была определена переменная, которая позже будет использоваться для изменения URL где пакет (в данном случае архитектура пакета для загрузки).
Кроме того, в зависимости от архитектуры Суммы MD5 поэтому мы заменим их на соответствующие.

При использовании makepkg -g для генерации MD5суммы Это сгенерирует только тот, который соответствует используемой вами архитектуре. Чтобы узнать сумму MD5 другого пакета, загрузите его и используйте команду md5sum file.deb знать твой

Наконец, мы видим, что в примере мы меняем зависимости. В некоторых 64-битных программах необходимо установить 32-битные версии некоторых библиотек поэтому мы должны их указать. Если в них нет необходимости, просто определите переменную обычным способом.

Теперь для пакетов .deb нам понадобятся только следующие строки внутри функции пакет ():

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

Как видите, в этом случае нам нужно всего 3 строки для создания пакета. Если необходимо что-то еще (например, копирование файла, который не входит в пакет, или изменение его содержимого), вам просто нужно поместить его, как и любой другой пакет.

То же самое может применяться (с некоторыми изменениями), если вместо .deb мы собираемся использовать пакеты rpm или другие типы пакетов. Функция построить () не требуется, поэтому нам не нужно его добавлять.

И вуаля, у нас есть пакет Multilib или созданный из пакета deb, готовый к использованию.
Надеюсь, вам это нравится и что он хорошо меня объяснил 😀


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   улисс сказал

    Не проще ли использовать checkinstall?

  2.   Лучано Лагасса сказал

    Привет. У меня есть скрипты на bash. Один для создания основных папок и файлов для пакета deb. И последний, который сгенерирует пакет из всех файлов и папок. Если интересно, могу поделиться.

    1.    Хорхе сказал

      Конечно, это интересует ... по крайней мере, меня.

      Теперь, когда я с Манджаро, я ценю всю возможную информацию.

  3.   Хорхе сказал

    Как ты молодец, партнер.

    Я собирался сказать вам на форуме, что если бы вы могли объяснить мне, как компилировать пакеты .deb, и я не сказал вам ничего, чтобы не злоупотреблять вашей щедростью…. Я перехожу на страницу и вижу, что вы загрузили статью, объясняющую весь процесс.

    Это показывает, что вы щедрый человек.

    Я сказал, ты трещина.

    приветствия

  4.   Anibal сказал

    Это отличный друг, однажды я попробовал софт, имя которого не помню, которое преобразовалось из .deb в .rpm, но у меня это не сработало.

    Кто-нибудь с аркой мог бы проверить, хорошо ли этот софт передается на rpm и хорошо ли открывается установка?

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

    Это для бэкапа в облаке, я уже давно заплатил и у меня в облаке больше 40Гб =)

  5.   Inspiron сказал

    Большой! Я всегда говорил себе, что однажды я захочу сделать пакет, даже если он должен знать, как это сделать :).

    В сообщениях такого типа я был бы признателен, если бы в блоге реализована возможность добавления таких записей в «избранное» моей учетной записи.

    1.    Chinoloco сказал

      Полностью согласен, посадил, но ничего
      Также было бы хорошо иметь возможность следить за определенными пользователями

  6.   РабБа сказал

    Великий старик, я использую manjaro в течение нескольких дней, и для исследований мне нужно установить пакетный трассировщик из cisco, но у него есть только пакет .deb последней версии, а ke находится в AUR, всегда выдает ошибку при компиляции , Я надеюсь, что с помощью этих шагов я смогу установить его, поскольку я принудительно использовал linux mint, большое спасибо

  7.   митко сказал

    чтобы узнать, посмеет ли кто-нибудь поставить AUR Multisystem

    зависит от библиотек deb, которых нет в Arch

    Но если он работает, его функция состоит в том, чтобы создавать перьевые диски с несколькими ISO с помощью grub2 лучше, чем unetbootin, который делает только один.

    На данный момент у меня есть его внутренний ISO-образ ubuntu, который позволяет мне добавлять образы, если я хочу загрузиться с него на самом USB.

    но если никто не посмеет сохранить билет

  8.   митко сказал

    Извините, мультисистема уже есть, и я думаю, что нет

    1.    митко сказал

      В мультисистеме ...

      но fatresize, так как yaourt дает проблемы, и они поставили его как необязательный

  9.   рамки сказал

    Замечательно одобрить "Purrr" программу для массового переименования файлов.

  10.   Апр 4xas сказал

    С уважением,

    В настоящее время в AUR удаляются пакеты, в которых нет функции package (), как я могу узнать, какие строки туда поместить? То есть у меня есть несколько пакетов и я так и сделал но не знаю нормально ли https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD на самом деле я передал то, что было в build (), в package (), но, как я уже сказал, я не знаю, в порядке ли это ... Вы можете дать мне свои комментарии и предложения?

    Спасибо 😀

  11.   Азазель сказал

    Спасибо за информацию, я сохраню ее для использования в будущем.

  12.   Clerafel сказал

    Может ли кто-нибудь объяснить мне, что это такое, я новичок и не знаю, помогает ли это мне установить пакет .deb, но локально в manjaro, а точнее в игре. Да, это работает?

    Я смотрю, и они говорят мне установить пакет deb2targz, но я получаю сообщение об ошибке при его установке с терминала, и я не знаю, может ли это быть

    1.    Гермен сказал

      То же происходит и со мной; Мне нужно установить Kademar, основанный на Arch; пара пакетов, которые я получаю только в .deb
      Кто-нибудь может мне помочь?

      1.    Вальдо сказал

        Если вы имеете в виду ошибку при установке deb2targz, я только что завершил ее установку с помощью команды yaourt -S deb2targz. Конечно, в ArchLinux.

  13.   Бесплатное облачное хранилище сказал

    Очень информативный пост. Спасибо, что поделился.

  14.   Angry Birds сказал

    Хороший пост. Спасибо, что поделились этой полезной информацией.

  15.   Приложения для ПК сказал

    Спасибо за этот полезный пост. Это очень поможет.

  16.   Джекоб сказал

    привет, можно оставить скрипт на конвертацию и как им пользоваться? в том, что отчасти это немного сбивает с толку, у меня уже есть deb, который я хочу преобразовать, и я знаю, что это возможно, потому что Google Chrome AUR является deb, но я не знаю, как сделать "MAKEPKG SI" с другой деб 🙁