Archlinux: Створення міжплатформенних пакетів та пакетів .deb

Близько року тому я пояснив, як створювати пакунки для Archlinux - -. Ну, сьогодні я збираюся пояснити, як їх створювати з пакетів дебютантка, що використовуються в Debian / Mint / Ubuntu / тощо.
Ця стаття виникла після прочитання запитання користувача на форумі jorgegc тому що я не міг встановити пакет з AUR, головним чином тому, що він застарів і використовує версію припинено PKGBUILD (на щастя, я вже робив пакунки таким чином), я також пояснити, як зробити пакети програм, які потребують 32-розрядні бібліотеки, з закритий код o вже складено і що у нього є різні пакети для завантаження.

Основа PKGBUILD однакова, лише з невеликими змінами.
Першою зміною буде використання речення якщо elif від Баша


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 ми будемо використовувати пакети оборотів в хвилину або інші типи пакетів. Функція будувати () не потрібен, тому нам не потрібно його додавати.

І вуаля, у нас вже є пакет multilib або створений із пакета deb, готового до використання.
Сподіваюся, вам сподобалось і що це мені добре пояснило 😀


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Улісс - сказав він

    Чи не простіше скористатися checkinstall?

  2.   Лучано Лагасса - сказав він

    Привіт. У мене є кілька сценаріїв bash. Один для створення основних папок і файлів для пакета deb. І останній, який генерує пакет із усіх файлів і папок. Якщо вам цікаво, я можу поділитися цим.

    1.    jorgecg - сказав він

      Звичайно, це цікавить ... принаймні мені.

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

  3.   jorgecg - сказав він

    Який ти чудовий, партнере.

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

    Це свідчить про те, що ви щедра людина.

    Я сказав, ти тріщина.

    вітання

  4.   Anibal - сказав він

    Це чудовий друг, одного разу я спробував софт, який я не пам’ятаю, ім’я, яке перетворилося з .deb на .rpm, але мені це не вдалося.

    Чи міг хтось із тестом на арку, якщо цей софт передається добре на об / хв, а інсталяція добре відкривається?

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

    Це резервне копіювання в хмарі, я вже деякий час платив, і у мене більше 40 Гб в хмарі =)

  5.   Інспірон - сказав він

    Чудово! Я завжди говорив собі, що одного разу я хочу зробити пакет, навіть якщо він знає, як це зробити :).

    У цих типах публікацій я був би вдячний, що блог реалізував опцію додавання подібних записів у "вибране" мого акаунта

    1.    хінолоко - сказав він

      Повністю згоден, я його посадив, але нічого 🙂
      Також непогано було б мати можливість стежити за певними користувачами

  6.   РабБа - сказав він

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

  7.   мітко - сказав він

    щоб перевірити, чи наважується хтось розмістити AUR Multisystem

    залежить від бібліотек deb, яких немає в arch

    Але якщо це спрацьовує, його функція полягає у створенні декількох накопичувачів ISO із grub2 краще, ніж unetbootin, який виконує лише один.

    На даний момент у мене всередині є ubuntu ISO, що дозволяє мені додавати зображення, якщо я хочу завантажитися з нього на самому USB

    але якщо ніхто не наважується врятувати мій квиток

  8.   мітко - сказав він

    Вибачте, мультисистема вже існує, і я думаю, ні

    1.    мітко - сказав він

      У мультисистемі ...

      але жирний розмір, оскільки yourt дає проблеми, і вони поставили це як необов’язковий

  9.   Маркос - сказав він

    Чудово 😀 схвалити за допомогою "Purrr" програму для перейменування файлів масово.

  10.   Квітня4xas - сказав він

    З повагою,

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

    Дякую 😀

  11.   Азазель - сказав він

    Дякую за інформацію, яку я додаю у закладки для подальшого використання.

  12.   клерафел - сказав він

    Хтось може пояснити, що це для мене, я новачок, і я не знаю, чи це допомагає мені встановити пакет .deb, але локально в манджаро, точніше гру. Так, це працює?

    Я шукаю, і вони кажуть мені встановити пакет deb2targz, але я отримую помилку під час встановлення його з терміналу, і я не знаю, чи може він

    1.    Гермен - сказав він

      Те саме трапляється і зі мною; Мені потрібно встановити на Kademar, який базується на Arch; кілька пакетів, які я отримую лише в .deb
      Хтось може мені допомогти?

      1.    valdo - сказав він

        Якщо ви маєте на увазі помилку в установці deb2targz, я щойно закінчив її встановлення за допомогою команди yaourt -S deb2targz. Звичайно, в ArchLinux.

  13.   Безкоштовне хмарне зберігання - сказав він

    Дуже інформативний пост. Дякую, що поділились.

  14.   Злі птахи - сказав він

    Хороший пост. Дякуємо, що поділилися цією корисною інформацією.

  15.   Програми для ПК - сказав він

    Дякуємо за цей корисний допис. Це дуже допоможе.

  16.   Джекоб - сказав він

    привіт, ти можеш залишити сценарій для перетворення і як ним користуватися? Це те, що по частинах це трохи заплутує, у мене вже є деб, який я хочу конвертувати, і я знаю, що це можливо, оскільки google chrome AUR - це деб, але я не знаю, як зробити "MAKEPKG SI" з черговий деб