[Howto]生成Arch Linux軟件包和派生版本

關於Arch Linux及其衍生產品,我最喜歡的一件事是 極大的方便 創建軟件包以稍後安裝在系統上,與已知的軟件包不同 德布。 Debian / Ubuntu / Linux Mint / etc的混亂(如果它們是庫,我不會告訴你)。

基本模板是這樣的:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

現在,我將解釋每個參數:

  • #維護者: 其中包含軟件包維護者的名稱
  • pkgname: 包的名稱。 它只能包含字母,數字,-,_和+
  • pkver: 軟件包版本。 pe 1.0.0
  • pkgrel: 審查程序或程序包。 pe 1
  • pkgdesc: 包裝說明。
  • 拱: 程序的體系結構:它可以是任何(對於所有人),i686和x86_64,適用於不需要編譯的軟件包,例如bash或python中的程序。 如果確實需要它(例如C或C ++中的程序),則應指示i686是32位還是x86_64 64位。 通常,如果兩者兼容,則將其設置為(i686,x86_64)
  • 網址: 該程序官方頁面的網址。 建議把它放進去。
  • 授權方式: 程序許可證。 例如GPL3
  • 組: 程序包所屬的組。 組=('系統')
  • 依靠: 在其中,我們指出了執行程序所需的軟件包。 pependens =('python2''pygtk')
  • makedepends: 僅編譯包所需的依賴項。 如果要從版本管理器中下載代碼,建議放置它。 pe:makedepends =('git')
  • 來源: 在其中,我們指出了創建包所需的文件。 通常,包含代碼,補丁,.desktopt文件,圖標等的是軟件包的URL。 pe:來源=(pacsyu.desktop)
  • md5sums: 這是源中指示的文件的md5總和。 要知道我們是從PKGBUILD所在的文件夾中的終端運行的(已在源代碼中寫入了文件路徑) makepkg -g 和將顯示在屏幕上。
    也可以使用其他總和,例如sh1。
  • 建立: 在此功能中,我們將 繼續編譯軟件所需的命令。 如果不需要編譯,則僅需要以下函數)
  • 軟件包:在該其他功能中,程序安裝命令將執行。 例如,如果我們在這裡編譯C代碼,則將進行make install。

最後,我們只需要執行 製作包 驗證軟件包是否已生成。
如您所見,這對我們來說很困難。 然後我給你留一些額外的參數 makepkg:

  • -一世: 指示makepkg在創建軟件包後安裝它。
  • -s: 如果軟件包依賴項位於存儲庫中,請安裝它們。
  • -F: 如果已經有帶有該參數的名稱,版本和修訂的軟件包,我們會告訴您覆蓋它。
  • -C: 完成後,清理工作文件夾(pkg和源)。
  • -R: 重新打包該軟件包,而無需重新編譯。

我建議查看更多PKGBUILD文件以查看更多示例,執行命令 makepkg -h 除了查看 在Arch Linux Wiki上的makepkg官方文檔 你能找到什麼 這裡


14條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   傑明·塞繆爾 他說:

    很好 …

    可以讓.exe程序包管理(編譯)為Arch程序包嗎?

    例如著名的下載管理器 米波尼 ??

    1.    正確 他說:

      據我所知,這是不可能的,請記住.exe是二進製文件而不是源代碼。 但是有JDownloader。

    2.    v3on 他說:

      有人使用linux卻錯過了Myponi…jijijijiji

      jDownloader在Java中,並且眾所周知Java會導致肺癌...

  2.   銀河系28 他說:

    有趣的是,我們將不得不測試軟件包,我想我會傾向於從yaourt中下載qbittorrent haha​​ha中的一個軟件包,但是擁有自己的版本將很不錯,感謝您提供的信息和問候。

  3.   MSX 他說:

    輸入不錯,+ 1
    我想補充一點,它們也比Gentoo ebuilds更易於創建和維護!

    關於Debian,我認為該發行版將僅通過現代化或遷移到更現代的軟件包和軟件包管理系統而大大增加其障礙,我不知道dpkg / apt集的最後一次更新何時,但該概念應該已經擁有輕鬆的15年,事實是今天已經過時了。

  4.   腐爛87 他說:

    非常感謝,我在Wiki上查找時花了一點時間,但我不了解其結構(我想更新PlayonLinux的結構),但我仍然放棄了……在某些事情上,我想有一個助手或類似的東西(別開槍打我),但仍然...隨著時間的流逝沒有工具,我會看看我是否創建

    1.    MSX 他說:

      感謝您的指導,我開始創建Zeya的PKGBUILD(http://web.psung.name/zeya/),完成後立即將其上傳到AUR🙂

  5.   hypersayan_x 他說:

    不像Debian / Ubuntu / Linux Mint等著名的.deb

    完全同意,前一陣子我試圖為Ubuntu創建一個軟件包,但我不可能找到關於如何製作軟件包的易懂的信息,最後我放棄並大致安裝了該程序。
    用於Arch的同一程序用了不到5分鐘的時間就將軟件包打包在一起。
    而且我不確定,但我認為RPM比DEB稍微容易些,但比Arch難。

  6.   黑客775 他說:

    非常好又容易,至於.deb並不難,對於iOS

    問候

  7.   卡洛斯 他說:

    我認為,前一段時間我將第一個PKGBUILD上傳到AUR時,這對我有用

  8.   腿骨 他說:

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