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

pkg專題之Arch Linux 軟件包制作入門

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

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

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

PKGBUILD 基礎(chǔ)知識(shí)

對(duì)于那些熟悉 Bash 或其他 shell 的人來(lái)說(shuō),你可能知道,PKGBUILD就是一個(gè)帶有一些變量的 shell 腳本。

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

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

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

準(zhǔn)備

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

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

你需要做的另一個(gè)文件是一個(gè)叫 的文件。我稍后會(huì)解釋它的用途。

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

touch PKGBUILD

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

然后你就可以開(kāi)始了!

設(shè)置你的 PKGBUILD 文件

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

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

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

pkgname

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

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

要設(shè)置包的名稱,請(qǐng)?jiān)?PKGBUILD中輸入以下內(nèi)容:

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

pkgver

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

要設(shè)置版本號(hào),請(qǐng)?jiān)?PKGBUILD中輸入以下內(nèi)容(在前一行之后):

pkgver="1.0.0"

pkgrel

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

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

要設(shè)置這個(gè)變量,請(qǐng)?jiān)?PKGBUILD中輸入以下內(nèi)容:

pkgver="1"

這個(gè)變量應(yīng)該 總是從1開(kāi)始,然后一次一次地向上移動(dòng)。當(dāng)pkgver本身向上移動(dòng)時(shí),這個(gè)變量可以(也應(yīng)該)重置為1,因?yàn)?code>pkgver本身會(huì)通知用戶升級(jí)。

pkgdesc

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

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

pkgdesc="Hello world in your terminal!"

arch

這個(gè)變量設(shè)置軟件包所兼容的 硬件架構(gòu)。如果你不明白什么是架構(gòu),那也沒(méi)關(guān)系,因?yàn)樵诖蠖鄶?shù)情況下,這個(gè)變量幾乎是無(wú)用的。

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

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

要設(shè)置它,請(qǐng)?jiān)?PKGBUILD中輸入以下內(nèi)容:

arch=("x86_64")

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

depends

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

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

optdepends

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

這與 depends的語(yǔ)法相同。

conflicts

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

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

這與 depends的語(yǔ)法相同。

license

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

這與 archdepends的語(yǔ)法相同:

license=("custom")

source

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

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

PKGBUILD src

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

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

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

這個(gè)變量也使用與 archdepends相同的語(yǔ)法:

source=("")

sha512sums

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

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

sha512sums=("SKIP")

package

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

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

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

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

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

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

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

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

要做到這一點(diǎn),請(qǐng)?jiā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)制作了你的第一個(gè) PKGBUILD!你走在了為自己甚至是為 AUR 制作實(shí)際的軟件包的路上。

有什么問(wèn)題,或者有什么地方不對(duì)嗎?請(qǐng)隨時(shí)在下面的評(píng)論區(qū)發(fā)表。

via:

作者:Hunter Wittenborn選題:lujun9972譯者:wxy校對(duì):wxy

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

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

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

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/gl/2560808.html

上一篇

快播的再一次上熱搜,卻是最后一次

pkg文件怎么打開(kāi)看這里!最詳細(xì)教程:最新ACR14.2獨(dú)立安裝包(Win+Mac)

pkg文件怎么打開(kāi)看這里!最詳細(xì)教程:最新ACR14.2獨(dú)立安裝包(Win+Mac)

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

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

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

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

【pkg文件怎么打開(kāi)】1分鐘視頻解決mac軟件已損壞,打不開(kāi),來(lái)自身份不明的開(kāi)發(fā)者問(wèn)題

【pkg文件怎么打開(kāi)】1分鐘視頻解決mac軟件已損壞,打不開(kāi),來(lái)自身份不明的開(kāi)發(fā)者問(wèn)題

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

【pkg文件怎么打開(kāi)】專題自己動(dòng)手:智能電視機(jī)升級(jí)失敗后的刷機(jī)修復(fù)

【pkg文件怎么打開(kāi)】專題自己動(dòng)手:智能電視機(jī)升級(jí)失敗后的刷機(jī)修復(fù)

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

pkg專題之微軟OneDrive for Mac客戶端不久后將以.pkg格式提供

pkg專題之微軟OneDrive for Mac客戶端不久后將以.pkg格式提供

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

【pkg】Wells Fargo & Company:維持Packaging Corp of America(PKG)為持股觀望評(píng)級(jí),目標(biāo)價(jià)為155.00美元

【pkg】Wells Fargo & Company:維持Packaging Corp of America(PKG)為持股觀望評(píng)級(jí),目標(biāo)價(jià)為155.00美元

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

pkg文件怎么打開(kāi)專題之Mac 安裝軟件那些事

pkg文件怎么打開(kāi)專題之Mac 安裝軟件那些事

pkg文件怎么打開(kāi)相關(guān)介紹,有的朋友說(shuō)不知道怎么安裝Mac軟件,也不知道從哪里下載。 這次再來(lái)詳細(xì)聊聊 macOS 安裝軟件那些事。 安裝篇 App Store 直接安裝 Mac 有自己的應(yīng)用商店 App Store??梢栽诶锩?..

【pkg文件怎么打開(kāi)】專題YouTube mac(YouTube客戶端)

【pkg文件怎么打開(kāi)】專題YouTube mac(YouTube客戶端)

pkg文件怎么打開(kāi)相關(guān)介紹,Clicker for YouTube MAC edition是一款YouTube視頻播放器,可在基于Swift的高效應(yīng)用程序中提供與網(wǎng)站相同的功能,并內(nèi)置廣告攔截器、睡眠計(jì)時(shí)器、彈出播放器和Touc...