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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

      улисс сказал

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

         Они ссылка сказал

      Checkinstall используется для упрощения создания пакетов deb, rpm или Slackware.

           элиотайм3000 сказал

        Хорошо. Посмотрим, найду ли я время, чтобы добавить Iceweasel в репозиторий slacky.eu.

             урХ сказал

          Что не так с Firefox? : п

               Зиг84 сказал

            чего нет в Debian: p

               урХ сказал

            Я не совсем это имел ввиду xD

               элиотайм3000 сказал

            Поскольку у Firefox нет официальной версии для Debian, и если я использую репозитории Ubuntu или Mint, им потребуется то же время, что и Iceweasel, чтобы опубликовать их; Кроме того, они время от времени спрашивают вас, хотите ли вы отправлять свои данные или нет (действительно тривиальная функция для браузера, который защищает конфиденциальность).

            Я не против Firefox, и, по правде говоря, я почти не использую Firefox ESR в Slackware и Firefox Release в Windows (Iceweasel я использую только в Debian, но поскольку Arch дает мне прекрасное преимущество в виде его установки, я установите его). Дело вкуса, не более того.

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

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

         Они ссылка сказал

      Конечно можно, при оплате XD

         Хорхе сказал

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

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

      Хорхе сказал

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

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

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

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

    приветствия

         Они ссылка сказал

      Спасибо, и еще раз спасибо, потому что ваш вопрос подсказал мне идею ^^

      Anibal сказал

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

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

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

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

         Они ссылка сказал

      Это следовало бы попробовать людям, использующим Fedora, Red Hat или другие производные.
      Из описания, которое вы даете, я полагаю, вы имеете в виду инопланетян (и это не имеет ничего общего с определенной ксеноформой)

      Inspiron сказал

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

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

         Chinoloco сказал

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

      РабБа сказал

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

      митко сказал

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

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

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

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

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

      митко сказал

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

         митко сказал

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

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

      рамки сказал

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

      Апр 4xas сказал

    С уважением,

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

    Спасибо 😀

         Они ссылка сказал

      Внутри build () будет находиться часть компиляции программы, а в package () часть, которая генерирует пакет.

      Чтобы поместить короткий пример, в build () можно пойти ./configure, ./autogen.sh, cmake, make и в package () make install и т. Д.

           Апр 4xas сказал

        Привет, большое спасибо ... Я собираюсь редактировать свои пакеты 😀

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

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

      Clerafel сказал

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

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

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

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

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

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

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

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

      Angry Birds сказал

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

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

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

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

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