Archlinux:從.deb包創建跨平台的包

大約一年前,我解釋了 為Archlinux創建軟件包。 好吧,今天我將解釋如何從包中創建它們 德布。,用於 Debian / Mint / Ubuntu /等.
閱讀論壇中用戶的問題後出現了這篇文章 豪爾赫格 因為我無法從AUR安裝軟件包,主要是因為它已過時並使用了一個版本 已停產 PKGBUILD(幸運的是,我以前已經以這種方式製作過程序包),我還將說明如何製作需要程序的程序包 32位庫封閉碼 o 已經編譯 並且有不同的軟件包可供下載。

PKGBUILD的基礎是相同的,只是有一些變化。
第一個變化是句子的使用 如果是小精靈 由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")

在此示例中,已定義了一個變量,以後將使用該變量來更改 網址 軟件包在哪裡(在這種情況下為要下載的軟件包的體系結構)。
此外,根據架構, 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. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   尤利西斯 他說:

    使用checkinstall難道不是很容易嗎?

  2.   盧西亞諾·拉加薩(Luciano Lagassa) 他說:

    你好我有一些bash腳本。 一種生成deb軟件包的基本文件夾和文件。 最後一個從所有文件和文件夾生成軟件包。 如果您有興趣,我可以分享。

    1.    豪爾赫格 他說:

      當然,它至少對我感興趣。

      現在,我與Manjaro在一起,我感謝所有可能的信息。

  3.   豪爾赫格 他說:

    夥伴,您真棒。

    我本來在論壇上告訴過您的,如果您可以向我解釋如何編譯.deb軟件包,並且我沒有告訴您任何事情,以免濫用您的慷慨……。 然後轉到該頁面,我發現您上傳了一篇說明整個過程的文章。

    這說明你是一個大方的人。

    我說,你真是個裂縫。

    問候

  4.   阿尼巴爾 他說:

    這是個很好的朋友,一旦我嘗試了一個軟件,就不記得從.deb轉換為.rpm的名稱了,但是它對我來說效果不佳。

    可以用拱門測試該軟件是否很好地通過了rpm並可以很好地打開安裝嗎?

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

    它是在雲中備份,我已經花了一段時間,並且云中有40GB以上=)

  5.   他說:

    大! 我總是告訴自己,有一天我想製作一個包裝,即使要知道如何做:)。

    在這些類型的帖子中,我希望博客能夠實現在我帳戶的“收藏夾”中添加此類條目的選項

    1.    欽諾洛科 他說:

      完全同意,我種植了它,但沒有nothing
      能夠關注某些用戶也很好

  6.   拉巴 他說:

    偉大的老人,我已經使用manjaro幾天了,為了研究我需要從cisco安裝Packet Tracer,但是它只有最新版本的.deb軟件包,並且ke在AUR中總是在編譯時給我一個錯誤,我希望通過這些步驟我可以安裝它自從我被強制使用Linux Mint以來,一千個感謝

  7.   米科斯 他說:

    看看是否有人敢放入AUR Multisystem

    取決於不在arch中的deb庫

    但是,如果可行,它的功能是用grub2創建多個ISO筆式驅動器,而不是只做一個的unetbootin。

    目前,我在裡面有她的ubuntu ISO,可以根據需要通過在USB本身上從中啟動來添加映像

    但是如果沒人敢保存我的票

  8.   米科斯 他說:

    抱歉,已經有一個多系統了,我想不是

    1.    米科斯 他說:

      在多系統中...

      但因為yaourt出現問題,所以發胖了,他們把它作為可選項

  9.   馬科斯 他說:

    😀非常推薦使用“ Purrr”程序來批量重命名文件。

  10.   Apr4xas 他說:

    問候,

    當前在AUR中,他們正在刪除不具有package()函數的軟件包,我怎麼知道要放在哪裡? 就是說,我有幾個包裹,我是這樣做的,但我不知道這是否可以 https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD 我真正做的是將build()中的內容傳遞給package(),但正如我所說,我不知道這是否可以...您能給我您的意見和建議嗎?

    謝謝😀

  11.   阿撒瀉勒 他說:

    感謝您提供的信息,我會將其添加為書籤,以備將來參考。

  12.   腿骨 他說:

    有人可以向我解釋一下這是什麼嗎,我是新手,我不知道這是否有助於我安裝.deb軟件包,但可以在manjaro本地安裝,確切地說是一款遊戲。 是的,行得通嗎?

    我在尋找,他們告訴我安裝deb2targz軟件包,但是從終端安裝它時出現錯誤,然後我不知道它是否可以

    1.    蓋爾曼 他說:

      我也一樣我需要在基於Arch的Kademar上安裝; 我只在.deb中得到的幾個軟件包
      有人能幫我嗎?

      1.    瓦爾多 他說:

        如果您的意思是deb2targz安裝失敗,那麼我剛剛使用命令yaourt -S deb2targz完成了安裝。 當然,在ArchLinux中。

  13.   免費云存儲 他說:

    非常翔實的帖子。 感謝分享。

  14.   憤怒的小鳥 他說:

    好帖子。 感謝您分享這些有用的信息。

  15.   PC應用 他說:

    感謝您的幫助。 這將有很大幫助。

  16.   雅各 他說:

    嗨,您能留下腳本進行轉換以及如何使用它嗎? 只是部分混淆了,我已經有了要轉換的deb,並且我知道這是可能的,因為AUR的google chrome是deb,但是我不知道如何用另一個deb製作“ MAKEPKG SI”