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, гатовага да выкарыстання.
Спадзяюся, вам спадабалася і што гэта мне добра патлумачыла 😀


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

32 каментарыяў, пакіньце свой

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны.

*

*

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

  1.   улісес сказаў

    Ці не прасцей выкарыстоўваць праверку?

  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, якіх няма ў арх

    Але калі ён працуе, яго функцыя складаецца ў тым, каб стварыць некалькі ISO-пендыраў з grub2 лепш, чым unetbootin, які робіць толькі адзін.

    На дадзены момант у мяне ёсць унутры ISO унутры, што дазваляе мне дадаваць выявы, калі я хачу загрузіцца з яго на самім USB

    але калі ніхто не адважыцца захаваць мой білет

  8.   міткой сказаў

    На жаль, мультысістэма ўжо ёсць, і я думаю, што не

    1.    міткой сказаў

      У мультысістэме ...

      але fatresize, так як yourt стварае праблемы, і яны паставілі яго як неабавязковы

  9.   Маркас сказаў

    Выдатна 😀 зацвердзіць "Purrr" праграму для перайменавання файлаў масава.

  10.   Apr4xas сказаў

    З павагай,

    У цяперашні час у 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.    Валдо сказаў

        Калі вы маеце на ўвазе няўдачу пры ўсталёўцы deb2targz, я толькі што скончыў яго ўсталёўкай з дапамогай каманды yaourt -S deb2targz. Зразумела, у ArchLinux.

  13.   Бясплатнае сховішча ў воблаку сказаў

    Вельмі пазнавальны пост. Дзякуй за абмен.

  14.   Злыя Птушкі сказаў

    Добры пост. Дзякуй, што падзяліліся гэтай карыснай інфармацыяй.

  15.   Праграмы для ПК сказаў

    Дзякуй за гэты карысны пост. Гэта вельмі дапаможа.

  16.   Якоб сказаў

    прывітанне, вы можаце пакінуць сцэнар для пераўтварэння і як ім карыстацца? Гэта тое, што па частках гэта бянтэжыць, у мяне ўжо ёсць дэб, які я хачу пераўтварыць, і я ведаю, што гэта магчыма, таму што Google Chrome AUR - гэта дэб, але я не ведаю, як зрабіць "MAKEPKG SI" з яшчэ адзін дэб 🙁