丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 攻略

關(guān)于pkg我想說Arch Linux 軟件包制作入門

PKGBUILD文件是為衍生版本(如Arch Linux和Manjaro)創(chuàng)建和創(chuàng)建軟件包的方法。

如果你曾經(jīng)使用過 AUR(即 Arch Linux 的用戶維護(hù)的PKGBUILD存儲庫),你甚至可能也遇到過它們。

但是,到底是如何從 PKGBUILD到可安裝軟件包的呢?這兩者之間到底發(fā)生了什么,如何把自己的軟件制作成軟件包呢?你將在這篇文章中了解這些。

PKGBUILD 基礎(chǔ)知識

對于那些熟悉 Bash 或其他 shell 的人來說,你可能知道,PKGBUILD就是一個帶有一些變量的 shell 腳本。

PKGBUILD文件由變量和函數(shù)組成,所有這些都是用來定義軟件包本身,以及如何構(gòu)建它。

為了從 PKGBUILD中創(chuàng)建一個軟件包,需要使用makepkg命令行工具。在獲得PKGBUILD文件后,你只需在包含PKGBUILD的目錄中運(yùn)行 `makepkg',就可以得到一個可安裝的軟件包了。

在本教程中,你將會看到我剛剛制作的軟件包,它在運(yùn)行時打印出 “Hello World!”。

準(zhǔn)備

為了繼續(xù)學(xué)習(xí)本教程,你需要創(chuàng)建幾個文件。

首先,你需要創(chuàng)建一個名為 PKGBUILD的文件,它將作為構(gòu)建你的軟件包的“配方”。

你需要做的另一個文件是一個叫 的文件。我稍后會解釋它的用途。

你也可以用一個命令來創(chuàng)建這兩個文件:

touch PKGBUILD

你可以用 ls命令檢查這些文件是否被創(chuàng)建。

然后你就可以開始了!

設(shè)置你的 PKGBUILD 文件

我不會讓你復(fù)制粘貼整個文件,而是和你一起鍵入每一行,這樣你就能更好地理解每一行的目的。如果你不喜歡這種學(xué)習(xí)方式,我強(qiáng)烈推薦 Arch 維基中為 Arch Linux 創(chuàng)建軟件包的文章。

這篇文章也沒有介紹 PKGBUILD中可以設(shè)置的每一個選項,只是介紹了一些常用的選項,以便你能盡快上手。

說完了這些,打開你的文本編輯器,讓我們直接進(jìn)入正題吧。

pkgname

首先是 pkgname變量。這是安裝時定義軟件包名稱的東西,也是Arch Linux 的軟件包管理器 pacman跟蹤軟件包的方式。

這個變量(以及其他一些變量)的格式是 variable=value,變量名在左邊,變量的值在右邊,用等號隔開。

要設(shè)置包的名稱,請在 PKGBUILD中輸入以下內(nèi)容:

pkgname="hello-world"
  • 要設(shè)置一個不同的軟件包名稱,用你的軟件包的名稱替換 hello-world
  • 這并不設(shè)置用于運(yùn)行程序的命令,這將在下面的 package部分中處理。

pkgver

正如變量名稱本身所述,它設(shè)置了你的軟件包的版本(即 1.0.0)。這在用戶更新他們的系統(tǒng)時很有用,因為設(shè)置更高的版本會提示用戶升級。

要設(shè)置版本號,請在 PKGBUILD中輸入以下內(nèi)容(在前一行之后):

pkgver="1.0.0"

pkgrel

這與 pkgver變量有關(guān),通常不需要知道。不過和pkgver變量一樣,如果它被換到一個更高的數(shù)字,就將通知用戶進(jìn)行升級。

它適用于任何需要保持 pkgver不變的情況下,例如PKGBUILD本身發(fā)生了變化。如果你為一個你使用的程序創(chuàng)建了一個PKGBUILD(并希望保持軟件包的版本相同),而你需要修復(fù)PKGBUILD本身的一個錯誤,這將是非常有用的。

要設(shè)置這個變量,請在 PKGBUILD中輸入以下內(nèi)容:

pkgver="1"

這個變量應(yīng)該 總是從1開始,然后一次一次地向上移動。當(dāng)pkgver本身向上移動時,這個變量可以(也應(yīng)該)重置為1,因為pkgver本身會通知用戶升級。

pkgdesc

這將設(shè)置軟件包的描述,用于幫助更好地識別該軟件包。

要設(shè)置它,只需將描述放在引號內(nèi):

pkgdesc="Hello world in your terminal!"

arch

這個變量設(shè)置軟件包所兼容的 硬件架構(gòu)。如果你不明白什么是架構(gòu),那也沒關(guān)系,因為在大多數(shù)情況下,這個變量幾乎是無用的。

無論如何,makepkg仍然需要設(shè)置它,這樣它就知道這個軟件包與我們的系統(tǒng)是兼容的。

這個變量支持設(shè)置多個值,所以 makepkg需要一個不同的語法,如下所示。

要設(shè)置它,請在 PKGBUILD中輸入以下內(nèi)容:

arch=("x86_64")

如果你要設(shè)置多個值,需要用空格和引號分隔每個值,像這樣。arch=(“x86_x64" "arm")。

depends

這列出了提供了我們的軟件包所需功能的所有軟件包。與 arch一樣,它也可以包含多個值,因此必須使用括號語法。

由于我們的軟件包沒有任何依賴關(guān)系,所以我們不需要在 PKGBUILD中輸入這個字段。然而,如果我們的軟件包有依賴關(guān)系,我們就會使用與arch相同的語法。

optdepends

這里列出了那些并不是提供所需功能而是額外功能的軟件包。

這與 depends的語法相同。

conflicts

這告訴 pacman哪些軟件包會導(dǎo)致我們的軟件包出現(xiàn)問題,或者以我們不希望的方式行事。

這里列出的任何軟件包都會在我們的軟件包被安裝之前被卸載。

這與 depends的語法相同。

license

這定義了你的程序所采用的 軟件許可證。如果你需要幫助你選擇一個許可證,Arch 維基提供了一些信息。如果你不知道該怎么設(shè)置,將其設(shè)置為custom也可以。

這與 archdepends的語法相同:

license=("custom")

source

這就是 makepkg如何知道要用什么文件來構(gòu)建我們的軟件包。它可以包含各種不同類型的源,包括本地文件和 URL。

在添加本地文件時,要輸入相對于 PKGBUILD文件的文件路徑,比如以下目錄布局:

PKGBUILD src

如果你想在我們的 PKGBUILD中包括,你需要輸入src作為其名稱。

當(dāng)輸入 URL 時,你只需輸入完整的 URL,即

你的這個軟件包只需要 文件,由于它和PKGBUILD在同一個目錄中,你只需輸入它的名字作為source的值。

這個變量也使用與 archdepends相同的語法:

source=("")

sha512sums

這是用來驗證 source中的文件沒有被修改或下載錯誤。如何獲得這個值的信息可以在Arch 維基關(guān)于 PKGBUILD 的文章中找到。

如果你寧愿不設(shè)置這個(或者你只是不需要,例如對于本地文件),你可以為 source變量中的每個文件輸入SKIP

sha512sums=("SKIP")

package

這是最后一個,也是實(shí)際制作我們的包的最重要的部分。在處理這個問題時,知道兩個變量很重要。

  • ${srcdir}:這是makepkg放置source變量中文件的地方。在這個目錄中,你可以與這些文件進(jìn)行交互,并對文件進(jìn)行任何其他需要的修改。
  • ${pkgdir}:這是我們放置將被安裝在系統(tǒng)中的文件的地方。${pkgdir}的文件夾結(jié)構(gòu)是按照實(shí)際系統(tǒng)中的情況設(shè)置的(例如,使用pacman安裝時,${pkgdir}/usr/bin/hello-world會創(chuàng)建文件/usr/bin/hello-world)。

package包含一個用于創(chuàng)建軟件包的命令列表。

因此,如果(假設(shè))你需要有個在 /usr/share寫著 “Linux is superior to Windows ”的文件,你會運(yùn)行這樣的東西:

package { mkdir -p "${pkgdir}/usr/share" echo "Linux is superior to Windows" | tee "${pkgdir}/usr/share" }

關(guān)于上述命令的一些說明:

  • ${pkgdir}里面最初是不包含目錄的。如果你跳過了mkdir 命令,tee會輸出一個錯誤,說這個目錄不存在。
  • 在指定目錄時,總是在它們前面加上${pkgdir}${srcdir}變量。如果輸入/usr/share,就會按照字面意義指向你當(dāng)前運(yùn)行的系統(tǒng)中的/usr/share。

對于你的 PKGBUILD,你將把文件放在目標(biāo)系統(tǒng)的/usr/bin/hello-world中。你還將使該文件在運(yùn)行時說 “Hello to you!”。

要做到這一點(diǎn),請在 PKGBUILD中輸入以下內(nèi)容:

package { echo 'Hello to you!' > "${srcdir}/" mkdir -p "${pkgdir}/usr/bin" cp "${srcdir}/" "${pkgdir}/usr/bin/hello-world" chmod +x "${pkgdir}/usr/bin/hello-world" }

然后就完成了!用 makepkg -si構(gòu)建和安裝軟件包,然后在終端運(yùn)行hello-world,查看其輸出。

總結(jié)

就這樣,你已經(jīng)制作了你的第一個 PKGBUILD!你走在了為自己甚至是為 AUR 制作實(shí)際的軟件包的路上。

有什么問題,或者有什么地方不對嗎?請隨時在下面的評論區(qū)發(fā)表。

via:

作者:Hunter Wittenborn選題:lujun9972譯者:wxy校對:wxy

本文由 LCTT原創(chuàng)編譯,Linux中國榮譽(yù)推出

1.《關(guān)于pkg我想說Arch Linux 軟件包制作入門》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《關(guān)于pkg我想說Arch Linux 軟件包制作入門》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2499104.html

上一篇

快播怎么看這里!快播的再一次上熱搜,卻是最后一次

下一篇

【傳奇賭博外掛】熱血傳說:早期便衣市場混亂,外掛也滿天飛。

關(guān)于pkg文件怎么打開我想說最詳細(xì)教程:最新ACR14.2獨(dú)立安裝包(Win+Mac)

關(guān)于pkg文件怎么打開我想說最詳細(xì)教程:最新ACR14.2獨(dú)立安裝包(Win+Mac)

pkg文件怎么打開相關(guān)介紹,三天前,PS2022的最新版本(包括ACR14.2)推送后,很多人認(rèn)為,整個PS2022升級安裝包太大,下載起來不僅麻煩,而且安裝整個PS coverage太難。 我不想重新安裝PS2022,只想把A...

【pkg】專題在FreeBSD中pkg包管理器使用實(shí)例

【pkg】專題在FreeBSD中pkg包管理器使用實(shí)例

pkg相關(guān)介紹,本文件說明如何在PKG套件管理員的協(xié)助下管理安裝套件 系統(tǒng)環(huán)境 Freebsd 12.2-版本 使用PKG命令搜索軟件 1.在FreeBSD中搜索應(yīng)用程序的最簡單方法是使用PKG命令行。 語法格式:p...

pkg文件怎么打開專題之1分鐘視頻解決mac軟件已損壞,打不開,來自身份不明的開發(fā)者問題

pkg文件怎么打開專題之1分鐘視頻解決mac軟件已損壞,打不開,來自身份不明的開發(fā)者問題

pkg文件怎么打開相關(guān)介紹,安裝Mac應(yīng)用程序時,“軟件損壞,無法打開。 您應(yīng)該將它移到廢紙簍」,有的提示:「打不開該軟件,因為它來自身份不明的開發(fā)者」,有沒有什么解決方法呢?別著急,其實(shí)解決辦法非常簡單!一串代碼就能搞定。 您...

pkg看這里!微軟OneDrive for Mac客戶端本月將以.pkg格式提供

pkg看這里!微軟OneDrive for Mac客戶端本月將以.pkg格式提供

pkg相關(guān)介紹,IT家庭7月12日消息是今年4月,微軟不久將在蘋果Mac平臺上發(fā)布。宣布將以pkg格式提供OneDrive客戶端。 微軟表示,這種格式將提供更快的更新和更好的安全性。 然而,早前微軟推遲了上述更新。不...

【pkg文件怎么打開】自己動手:智能電視機(jī)升級失敗后的刷機(jī)修復(fù)

【pkg文件怎么打開】自己動手:智能電視機(jī)升級失敗后的刷機(jī)修復(fù)

pkg文件怎么打開相關(guān)介紹,這段時間,家里的智能互聯(lián)網(wǎng)電視在升級過程中因為中途停電升級失敗,系統(tǒng)受損。 打開電視機(jī),屏幕上出現(xiàn)“升級失敗,將進(jìn)入Recovery模式!”的錯誤提示,并且電視機(jī)會不停地自動重啟,一直在反復(fù)地循環(huán)。此...

【pkg】微軟OneDrive for Mac客戶端不久后將以.pkg格式提供

【pkg】微軟OneDrive for Mac客戶端不久后將以.pkg格式提供

pkg相關(guān)介紹,早在4月份,微軟就在蘋果Mac平臺上。宣布將以pkg格式提供OneDrive客戶端。 微軟表示,這種格式將允許更快的更新并帶來更好的安全性。隨后更新的推出被推遲了,但今天微軟宣布,常規(guī)供應(yīng)應(yīng)該在7月中...

【pkg文件怎么打開】Dark Reader for Safari mac(適用于Safari瀏覽器的深色模式插件)

【pkg文件怎么打開】Dark Reader for Safari mac(適用于Safari瀏覽器的深色模式插件)

pkg文件怎么打開相關(guān)介紹,內(nèi)容介紹 Dark Reader for Safari edition是專為Safari瀏覽器設(shè)計的黑暗模式插件,可應(yīng)用于所有網(wǎng)頁或單個網(wǎng)頁,只需按Dark Reader for Safari工具欄按...

pkg,干貨看這篇!Wells Fargo & Company:維持Packaging Corp of America(PKG)為持股觀望評級,目標(biāo)價為155.00美元

pkg,干貨看這篇!Wells Fargo & Company:維持Packaging Corp of America(PKG)為持股觀望評級,目標(biāo)價為155.00美元

pkg相關(guān)介紹,Wells Fargo Company6于6月21日發(fā)表了投資研究報告,維持了Packaging Corp of America...