การสร้างแพ็คเกจบน Arch Linux (รวมถึง AUR)

บน Arch Linux ที่เก็บอย่างเป็นทางการคือ: core, extra และ community แพ็คเกจเหล่านี้ได้รับการรวบรวมและติดตั้งผ่านpacmanแล้ว ส่วนใหญ่ผู้ใช้ทั่วไปสามารถเพิกเฉยได้ว่าที่เก็บข้อมูลอย่างเป็นทางการ 3 แห่งนี้แยกจากกัน แกนหลักประกอบด้วยแพ็คเกจที่สำคัญที่สุดเช่นเคอร์เนลกระบวนการบูตระบบเครือข่ายการจัดการแพ็คเกจ openssh และอื่น ๆ นอกจากนี้ยังมีข้อกำหนดที่เข้มงวดในการทดสอบอย่างละเอียดมากขึ้นก่อนที่จะมีการเปิดตัวเวอร์ชั่นใหม่ Extra มีแพ็คเกจยอดนิยมอื่น ๆ ที่ไม่สำคัญเช่น X server, window manager หรือเว็บเบราว์เซอร์ ชุมชนมีแพ็คเกจยอดนิยมน้อยกว่า เฉพาะผู้ใช้ที่เชื่อถือได้ (ผู้ใช้ที่ใช้งานประมาณ 60 คนซึ่งได้รับการโหวตจากผู้ใช้ที่เชื่อถือได้รายอื่น) สามารถเข้าถึงเพื่อทำการเปลี่ยนแปลงที่เก็บข้อมูลอย่างเป็นทางการ

ใน 2019 มีประมาณ 11,000 แพคเกจในที่เก็บอย่างเป็นทางการที่https://www.archlinux.org/packages แต่มีอีกหลายโปรแกรมบน Linux ดังนั้น AUR (Arch Linux User Repository) จึงมีอยู่เพื่อให้ผู้ใช้ Arch สามารถเพิ่มโปรแกรมใหม่และเป็นผู้ดูแลหรือใช้แพ็คเกจ "orphaned" โดยไม่มีผู้ดูแลปัจจุบัน มีประมาณ 55,000 แพคเกจอยู่ใน AUR ที่https://aur.archlinux.org/

มีความแตกต่างที่สำคัญ 3 ประการกับ AUR:

  1. อีกครั้งแพคเกจเหล่านี้สามารถผลิตได้โดยผู้ใช้ใด ๆ แม้แต่ใหม่
  2. AUR มีเพียงPKGBUILDเชลล์เชลล์สคริปต์ที่สร้างแพ็กเกจโดยอัตโนมัติไม่ใช่ไบนารีที่รวบรวม (บางครั้งมันยังมีแพตช์ข้อความขนาดเล็กหรือติดตั้ง / อัพเกรด / ถอนการติดตั้งเชลล์สคริปต์) สิ่งนี้ทำหน้าที่ได้อย่างยอดเยี่ยมทำให้ผู้ใช้สามารถมีส่วนร่วมในขณะที่ลดโอกาสของคนที่สามารถแจกจ่ายรหัสที่เป็นอันตรายได้ ชุมชน Arch ยังมีประโยชน์ค่อนข้างมากเกี่ยวกับปัญหาเกี่ยวกับแพ็คเกจ AUR แต่มีข้อสังเกตว่าการใช้งานเหล่านี้เป็นความเสี่ยงของคุณเอง เพราะสิ่งที่มีให้คือ a PKGBUILD, ในที่สุดมันก็เป็นความรับผิดชอบของคุณในการตรวจสอบPKGBUILDคุณจะใช้ (ได้รับผู้ใช้จำนวนมากไม่ทำเช่นนี้และพึ่งคนอื่น ๆ เพื่อเฝ้าดู)
  3. เนื่องจากpacmanไม่ได้โต้ตอบโดยตรงกับ AUR คุณมีหน้าที่รับผิดชอบในการอัปเดตแพ็คเกจ AUR เมื่อคุณอัปเกรดทั้งระบบเป็นระยะpacmanจะไม่ดาวน์โหลดการอัปเดตเป็นPKGBUILDไฟล์AUR โดยอัตโนมัติรวบรวมและติดตั้งให้คุณ

แม้ว่าบทความนี้จะเน้นไปที่การสร้างแพ็คเกจจาก AUR แต่สามารถใช้เทคนิคเดียวกันนี้เพื่อสร้างแพ็คเกจจากที่เก็บอย่างเป็นทางการด้วยตัวคุณเอง

PKGBUILD

เปรียบเทียบกับ.specไฟล์ที่มีการแจกแจงอื่น ๆ ใช้ a PKGBUILDคือเชลล์สคริปต์สั้นและง่าย แม้ว่าบางแพคเกจจะมีความซับซ้อนมากกว่า แต่ก็สามารถคล้ายกันได้ดังต่อไปนี้:

pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc='DESCRIPTION'
url=http://example.com/
arch=('x86_64')
license=('GPL2')
source=(http://example.com/downloads/${pkgname}-${pkgver}.tar.gz)
sha256sums=('f0a90db8694fb34685ecd645d97d728b880a6c15c95e7d0700596028bd8bc0f9')

build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure
   make
}

package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   make install
}

เอกสารนี้หมายถึง:

  • PKGNAME: ชื่อของแพ็คเกจ
  • PKGVER: รุ่นของแพ็คเกจ (มักจะตรงกับหมายเลขเวอร์ชั่นของ upstream เสมอ)
  • PKGREL: Arch "version" ของPKGBUILDสำหรับเฉพาะPKGVER(ปกติ 1 แต่เพิ่มขึ้นหากจำเป็นต้องทำการเปลี่ยนแปลงPKGBUILDระหว่างการปล่อยอัปสตรีม)
  • ARCH: สถาปัตยกรรมที่แพ็กเกจสามารถสร้างขึ้นได้ (ค่อนข้างเก่าเนื่องจากที่เก็บอย่างเป็นทางการของ Arch Linux สนับสนุนเฉพาะ "x86_64" (64- บิตซีพียู) แต่ AUR แพ็คเกจยังสามารถรองรับ "i686" (32- บิตซีพียู) หรือ "ใด ๆ " การกำหนดสถาปัตยกรรมไม่เกี่ยวข้อง)
  • PKGBUILD/ETC: ไฟล์ใด ๆ จริง ๆ ในที่เก็บ AUR; PKGBUILDและอื่น ๆ แพทช์ข้อความขนาดเล็กหรือติดตั้งอัพเกรด / / ถอนการติดตั้งเชลล์สคริปต์ ไม่รวมไฟล์อัปสตรีมในsourceอาร์เรย์

แม้ว่า AUR ได้รับการพิสูจน์แล้วว่ามีความน่าเชื่อถืออย่างมาก แต่ก็เป็นความคิดที่ดีที่PKGBUILD/ETCจะตรวจสอบให้แน่ใจว่าได้รับแหล่งที่มาจากสถานที่ที่คุณต้องการเชื่อถือ (ตัวอย่างเช่นตำแหน่งต้นน้ำอย่างเป็นทางการซึ่งอาจมาจาก GitHub - แต่ไม่เพียงแค่พื้นที่เก็บข้อมูล GitHub แบบสุ่มของบุคคลที่ไม่เกี่ยวข้องกับแพคเกจอัปสตรีม) และPKGBUILD/ETCไม่มีรหัสข้อสงสัยใด ๆ

การได้รับ PKGBUILD/ETC

จาก AUR

หากเก็บอย่างเป็นทางการไม่ได้มีแพคเกจที่คุณกำลังมองหาที่จะติดตั้งให้ค้นหาได้ที่https://aur.archlinux.org/ หวังว่าคุณจะพบว่าสิ่งที่คุณกำลังมองหาอยู่นั้นเป็นปัจจุบันและได้รับการปรับปรุง

วิธีที่ดีที่สุดที่จะได้รับPKGBUILD/ETCจาก AUR gitคือการโคลนผ่านทาง

ติดตั้งgitหากยังไม่ได้ดำเนินการ:

# pacman -S git

ใช้ "Git Clone URL" ที่แสดงบนเว็บไซต์ AUR สำหรับแพ็คเกจดังกล่าว:

$ git clone https://aur.archlinux.org/fslint.git

ป้อนไดเรกทอรีและดูเนื้อหา (ทุกอย่างอยู่ที่นี่ยกเว้น. .. .gitเป็นPKGBUILD/ETC):

$ cd <PKGNAME>
$ ls -a
.  ..  .git  PKGBUILD  .SRCINFO

หากคุณตรวจสอบPKGBUILDคุณหวังว่าจะเห็นม���นใช้ซอร์สโค้ดอัปสตรีมอย่างเป็นทางการและดำเนินการตามขั้นตอนทั่วไปเพื่อสร้างแพ็คเกจดังนั้นจึงน่าเชื่อถือ .SRCINFOเพียงแค่มีข้อมูลที่แสดงบนเว็บไซต์เกี่ยวกับแพคเกจเพื่อให้ไม่น่าเป็นห่วง หากมีไฟล์อื่น ๆ อยู่ที่นี่ไฟล์เหล่านั้นจะไม่ได้PKGBUILDรับการตรวจสอบโดย upstream โดยตรงดังนั้นควรตรวจสอบไฟล์และวิธีการใช้งานไฟล์เหล่านั้นเพื่อให้แน่ใจว่าไม่มีสิ่งที่น่าสงสัย

จากคลังเก็บอย่างเป็นทางการ

แม้ว่าจะต้องการบ่อยครั้งมาก แต่คุณสามารถสร้างแพคเกจที่มีอยู่แล้วในที่เก็บอย่างเป็นทางการเพื่อรวมแพตช์ใหม่สร้างเวอร์ชั่นใหม่ ฯลฯ

ได้รับPKGBUILD/ETCจากที่เก็บหลักและที่เก็บเพิ่มเติม:

$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/packages.git "<PKGNAME>"

จากที่เก็บชุมชน:

$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/community.git "<PKGNAME>"

การอัพเกรด PKGBUILD/ETC

หากการอัปเกรดPKGBUILD/ETCได้รับการเผยแพร่คุณสามารถกลับมาที่ไดเรกทอรีนี้โดยใช้git cloneและอัปเดตพวกเขา:

$ git pull

จากนั้นทำการคอมไพล์ใหม่และอัพเกรดแพ็คเกจโดยใช้วิธีการที่คุณเลือกด้านล่าง

การรวบรวม

มีหลายวิธีในการรวบรวมแพ็คเกจ makepkgในท้ายที่สุดทุกอย่างใช้ มี 2 ​​วิธีที่รองรับอย่างเป็นทางการ:

  • กับการใช้งานโดยตรงmakepkgดูhttps://www.vultr.com/docs/using-makepkg-on-arch-linux
  • ที่จะใช้ทางอ้อมmakepkgในการทำความสะอาดchrootดูhttps://www.vultr.com/docs/using-devtools-on-arch-linux

มีหลายโปรแกรมผู้ช่วย AUR (เหมือนมีmakepkgเสื้อคลุม) ที่ไม่ได้รับการสนับสนุนอย่างเป็นทางการโดย Arch เช่นaurutils, yayและหยุดเมื่อเร็ว ๆ นี้และaurman yaourtแม้ว่าคุณจะใช้หนึ่งในโปรแกรมช่วยเหลืออื่น ๆ เหล่านี้ขอแนะนำอย่างยิ่งให้ทำความคุ้นเคยกับวิธีการที่ได้รับการสนับสนุนอย่างเป็นทางการว่าจะมีประสิทธิภาพมากขึ้นเมื่อมีสิ่งผิดปกติเกิดขึ้น

ส่วนที่เหลือของเอกสารนี้จะใช้YOUR BUILDERเพื่อหมายถึงวิธีการที่คุณเลือก

ที่เก็บในเครื่อง

คุณสามารถตั้งค่าที่เก็บภายในเครื่องให้เป็นตำแหน่งศูนย์กลางสำหรับแพ็คเกจทั้งหมดที่คุณสร้าง

วางที่เก็บในเครื่องได้ทุกที่ที่คุณต้องการ:

# mkdir /archLocalRepo

ทำงานYOUR BUILDERโดยไม่มีตัวเลือกการติดตั้งอัตโนมัติและคัดลอกแพ็คเกจลงในที่เก็บในเครื่องของคุณ

# cp <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz /archLocalRepo

เพิ่มแพ็กเกจใหม่เข้ากับดัชนีที่เก็บ:

# repo-add /archLocalRepo/archLocalRepo.db.tar.gz /archLocalRepo/<PACKAGE-FILE-NAME>

ในการลบแพ็กเกจออกจากดัชนีของที่เก็บและไฟล์แพ็กเกจเอง:

# repo-remove /archLocalRepo/archLocalRepo.db.tar.gz <PKGNAME>
# rm /archLocalRepo/<PACKAGE-FILE-NAME>

หากคุณต้องการแทนที่ไฟล์แพ็กเกจที่มีอยู่คุณต้องลบไฟล์ที่ถูกแทนที่แยกต่างหากจากนั้นเพิ่มไฟล์ใหม่ คุณไม่สามารถคัดลอกไฟล์ใหม่ทับไฟล์เก่าได้

กำหนดค่าpacmanให้ใช้ที่เก็บในเครื่องของคุณโดยแก้ไข/etc/pacman.confและเพิ่มรายการต่อไปนี้ในตอนท้าย:

[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo

คุณต้องpacmanรีเฟรชความรู้ของที่เก็บ (รวมถึงหนึ่งในพื้นที่ของคุณ) ฐานข้อมูล; เพื่อดูแพ็คเกจที่คุณได้เพิ่ม:

# pacman -Sy

จากนั้นคุณสามารถติดตั้งแพ็กเกจไม่แตกต่างจากแพคเกจอย่างเป็นทางการ:

# pacman -S <PKGNAME>

หมายเหตุหากแพ็คเกจเป็นเพียงการอ้างอิงของแพ็คเกจอื่นที่คุณกำลังจะติดตั้งคุณไม่จำเป็นต้องติดตั้งโดยตรง เมื่อคุณติดตั้งแพคเกจอื่นนี้pacmanจะค้นหาและติดตั้งแพคเกจการอ้างอิงโดยอัตโนมัติในที่เก็บในเครื่องของคุณ

รวบรวมได้เร็วขึ้น

โดยค่าเริ่มต้นYOUR BUILDERรวบรวมโดยใช้หัวข้อเดียว บนระบบหลาย CPU คุณสามารถอนุญาตให้ใช้หลายเธรดหากเป็นไปได้ ระบบบิลด์จะรวบรวมส่วนต่าง ๆ ของซอร์สโค้ดแบบขนานเมื่อทำได้ บางครั้งส่วนของรหัสจำเป็นต้องมีส่วนอื่น ๆ ที่มันโต้ตอบกับการรวบรวมแล้วดังนั้นคุณจะไม่เห็นหลายกระทู้ใช้ตามที่ได้รับอนุญาต /etc/makepkg.confแก้ไข

ในการอนุญาตให้ใช้เธรดได้มากเท่าที่คุณมีคอร์เสมือนให้เพิ่มรายการต่อไปนี้:

MAKEFLAGS="-j$(nproc)"

หมายเหตุ: สิ่งนี้จะรันคำสั่งnprocทุกครั้งดังนั้นมันจะใช้จำนวนแกนปัจจุบันเสมอในกรณีที่คุณอัพเกรดเซิร์ฟเวอร์ Vultr ของคุณ

หากต้องการอนุญาตให้ใช้หลายแกนประมวลผลเสมือน แต่ไม่สามารถใช้ได้ทั้งหมดเช่นเพื่อลดผลกระทบต่อประสิทธิภาพของระบบโดยรวมให้เพิ่มหมายเลขเฉพาะ ตัวอย่างเช่นหากคุณมี 24 แกนคุณสามารถอนุญาตให้ใช้ 21:

MAKEFLAGS="-j21"

การระบุเธรดมากกว่าจำนวนแกนประมวลผลเสมือนที่คุณมีจะลดประสิทธิภาพ

มันค่อนข้างหายาก แต่ระบบการสร้างแพคเกจบางตัวมีปัญหาเกี่ยวกับการคอมไพล์แบบขนานจากการกำหนดการพึ่งพาระหว่างส่วนต่าง ๆ ของรหัสไม่ถูกต้อง โดยทั่วไปPKGBUILDไฟล์แพคเกจเหล่านั้นจะจัดการสิ่งนี้ให้คุณโดยการเรียกใช้make -j1ซึ่งจะแทนที่ค่าเริ่มต้นที่คุณตั้งไว้ หากต้องการสิ่งนี้และหายไปให้รายงานไปยังผู้ดูแลแพคเกจ Arch

ข้อผิดพลาดลายเซ็น PGP

PKGBUILDอาร์เรย์แหล่งที่สามารถมี.ascหรือ.sigไฟล์ พวกเขามักจะรวมถึงการใช้การขยายตัวของ bash brace ดังนั้นจึงเป็นเรื่องง่ายที่จะพลาด:

source=("http://example.com/downloads/${pkgname}-${pkgver}.tar.gz{,.sig}")

หากรูปแบบของไฟล์ลายเซ็นอย่างใดอย่างหนึ่งเหล่านี้รวมอยู่ในอาร์เรย์ต้นทางให้YOUR BUILDERพยายามตรวจสอบลายเซ็นของไฟล์เก็บถาวรต้นฉบับ upstream คีย์ PGP ของลายเซ็นต้องอยู่ในพวงกุญแจของผู้ใช้ มิฉะนั้นจะยกเลิกด้วยข้อผิดพลาด:

==> Verifying source file signatures with gpg...
    <SOURCE-FILE> ... FAILED (unknown public key 1234567890ABCDEF)
==> ERROR: One or more PGP signatures could not be verified!

สิ่งสำคัญคือต้องเข้าใจว่าคีย์ GPG สามารถแสดงได้หลายวิธี ลายนิ้วมือของมันคือ 40 อักขระเลขฐานสิบหกและเป็นสิ่งที่คุณควรใช้ รหัสคีย์ยาวคือ 16 หลักสุดท้ายและรหัสคีย์สั้นคือ 8 หลักสุดท้าย แม้ว่าความสั้นจะสะดวก แต่ก็อนุญาตให้ซ้ำได้ซึ่งทำให้เกิดการให้เหตุผลทั้งหมดที่อยู่เบื้องหลังการตรวจสอบลายเซ็น ยิ่งไปกว่านั้นผู้โจมตีรู้ว่าสร้างคีย์ปลอมที่ตรงกับคีย์ที่มีความยาวน้อยกว่าสำหรับนักพัฒนาซอฟต์แวร์ระดับสูง

จัดหาและตรวจสอบลายนิ้วมือคีย์ PGP

หากคุณยังไม่ได้สร้างแพ็คเกจให้ดาวน์โหลดแหล่งข้อมูลซึ่งจะรวมไฟล์ลายเซ็น: (หากคุณลองสร้างมันจะมีอยู่แล้ว)

$ makepkg --nobuild --noextract

วิธีรับลายนิ้วมือแบบเต็ม:

$ gpg <ASC-OR-SIG-FILENAME>
...
gpg:                using RSA key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE
...

เป็นการดีที่คุณควรตรวจสอบลายนิ้วมือนี้จากต้นน้ำ เพื่อความปลอดภัยอัปสตรีมควรให้รหัสของผู้ดูแลบางแห่งบนเว็บไซต์หรือในแหล่งที่มา การค้นหาคีย์บนเซิร์ฟเวอร์คีย์เพียงอย่างเดียวไม่ได้ทำอะไรเลย ผู้โจมตีสามารถส่งคีย์ปลอมได้ง่าย ๆ เนื่องจากเซิร์ฟเวอร์คีย์ไม่ยืนยันความถูกต้อง คีย์สามารถลงนามโดยคีย์อื่น ๆ ดังนั้นหากคุณมีคีย์ที่คุณเชื่อถืออยู่แล้วคุณควรจะไว้ใจคีย์ใด ๆ ที่พวกเขาได้ลงนามไว้อย่างปลอดภัย

ซึ่งอาจเป็นงานค่อนข้างน้อยโดยเฉพาะเมื่อ upstream ไม่พิมพ์ลายนิ้วมือหรือวางไว้ที่ไหนสักแห่งที่หาง่าย PKGBUILDจะมีvalidpgpkeysอาร์เรย์ที่ถูกเพิ่มเข้ามาโดยผู้ดูแล Arch หากแพ็คเกจเป็นที่เก็บข้อมูลอย่างเป็นทางการนั่นหมายความว่าผู้ใช้ที่ไว้วางใจได้จะอยู่ที่นั่นและคุณควรจะปลอดภัยพอที่จะเชื่อใจในสิ่งที่อยู่ในรายการ หากแพ็กเกจอยู่ใน AUR โปรดจำไว้ว่านั่นหมายความว่าผู้ใช้ Arch รายอื่นวางไว้ที่นั่น หากคุณกังวลเกี่ยวกับการไว้วางใจคุณสามารถดูผู้ใช้เสมอเพื่อดูสิ่งที่พวกเขาทำในอดีตด้วย Arch

เพิ่มคีย์ PGP ให้กับพวงกุญแจของคุณ

วิธีเพิ่มลายนิ้วมือในพวงกุญแจของคุณ:

$ gpg --recv-keys <FINGERPRINT>

ตอนนี้คุณสามารถเรียกใช้YOUR BUILDERและมันจะไว้วางใจลายนิ้วมือ

แพ็คเกจพัฒนา AUR

แพคเกจ AUR ที่มีชื่อลงท้าย-git, -svn, -bzrหรือ-hgเป็นรุ่นพัฒนาซึ่งใช้ระบบการควบคุมเวอร์ชันล่าสุดของต้นน้ำกระทำแทนต้นน้ำเป็นรุ่นล่าสุด ตัวอย่างเช่น-gitแพ็คเกจจะใช้ความมุ่งมั่นล่าสุดของอัปสตรีมในสาขาหลัก (หรือสาขาที่เทียบเท่า) นี่เป็นวิธีที่ยอดเยี่ยมสำหรับการเรียกใช้การแก้ไขข้อบกพร่องต้นน้ำและคุณสมบัติใหม่ที่ยังไม่ได้เปิดตัวและเมื่อทำงานกับอัปสตรีมในข้อบกพร่องที่คุณรายงาน คุณต้องยืนยันว่าไม่ใช่ข้อผิดพลาดที่ได้รับการแก้ไขโดยคอมมิชชันที่ยังไม่วางจำหน่าย แพ็คเกจเ���ล่านี้ควรได้รับการพิจารณาว่าไม่เสถียร ที่กล่าวว่าน่าเสียดายที่บางครั้งไม่มีทางเลือกเพราะผู้ดูแลระบบต้นน้ำบางคนไม่เคยติดแท็กเผยแพร่หรือใช้เวลานานเกินไประหว่างการติดแท็กที่วางจำหน่ายและคาดว่าทุกคนจะใช้ความมุ่งมั่นล่าสุดของพวกเขา ขึ้นอยู่กับแพ็คเกจคุณอาจเป็นคนแรกที่ลองใช้การยืนยัน ความมุ่งมั่นล่าสุดของพวกเขาอาจไม่ได้รวบรวม

สิ่งสำคัญคือต้องเข้าใจข้อผิดพลาดทั่วไป อย่าตั้งค่าสถ��นะแพคเกจการพัฒนา AUR ล้าสมัยเพียงเพราะมันแสดงหมายเลขรุ่นเก่า! PKGBUILDไฟล์แพคเกจการพัฒนามีฟังก์ชั่นเพิ่มเติมpkgver()ซึ่งใช้ในการแยกวิเคราะห์อัปเดตโดยอัตโนมัติPKGVERจากซอร์สโค้ดของ upstream รูปแบบที่พบบ่อยสำหรับแพคเกจ-git <TYPICAL-VERSION-NUMBER>.r<COMMITS-SINCE-LAST-RELEASE>.<GIT-COMMIT>-<PKGREL>แพคเกจอาจมีการระบุไว้ใน AUR เป็น5.0.0.r102.8d7b42ac21-1เพราะนั่นคือสิ่งที่PKGBUILDมี แต่เมื่อคุณสร้างแพ็คเกจYOUR BUILDERจะอัปเดตโดยอัตโนมัติPKGVERเพื่อแสดงซอร์สโค้ดที่ดาวน์โหลดใหม่ ในความเป็นจริงหากมีการเปิดตัวเวอร์ชันใหม่จำนวนมาก แต่ไม่มีการเปลี่ยนแปลงใด ๆ ในกระบวนการสร้างการแสดงPKGBUILDรายชื่อเวอร์ชันเก่าอาจทำให้การสร้างสิ่งใหม่ ๆ เช่น9.1.2.r53.2c9a41b723-1. สำหรับแพคเกจเหล่านี้รุ่นที่ระบุไว้บนเว็บไซต์เป็นเพียงรุ่นล่าสุดในขณะที่ผู้ดูแล AUR PKGBUILDมีสุดท้ายที่จะปรับปรุง

ผู้ดูแล AUR ไม่ควรอัปเดตPKGVERเพื่อสะท้อนเวอร์ชั่นใหม่ พวกเขาควรจะทำเช่นนั้นก็ต่อเมื่อการส่งอัปสตรีมรุ่นใหม่นั้นต้องการสิ่งอื่นในการPKGBUILDเปลี่ยน

ทำเครื่องหมายเฉพาะแพ็คเกจ AUR ที่ล้าสมัยหากคุณรู้ว่ามีบางอย่างผิดปกติ หมายความว่าคุณลองใช้แล้วและไม่สามารถรวบรวมหรือแยกวิเคราะห์รูปแบบใหม่ที่PKGVERเหมาะสม บางครั้งสิ่งต่าง ๆ เกิดขึ้นที่บังคับให้ผู้ดูแล AUR อัปเดตการPKGBUILDเปลี่ยนแปลง upstream dependencies เช่นการเปลี่ยนแปลงconfigureตัวเลือกรุ่น GCC ใหม่รับข้อผิดพลาดในซอร์สโค้ดที่คนก่อนหน้าไม่ได้เปลี่ยนตำแหน่งที่เก็บอัปสตรีม อยู่ในรหัสที่มาทำลายPKGVERฟังก์ชันการแยกวิเคราะห์ เข้าใจว่าแม้ว่ามันจะล้มเหลวในการรวบรวมหรือการทำงานนี่อาจหมายความว่าผู้ดูแลระบบ AUR จำเป็นต้องเปลี่ยนแปลงกระบวนการสร้างหรืออาจเป็นปัญหาต้นน้ำที่มีซอร์สโค้ดซึ่งผู้ดูแล AUR ไม่มีส่วนรับผิดชอบ

แพคเกจที่ล้าสมัย

อย่าลืมอ่านส่วน "แพคเกจการพัฒนาของ AUR" ด้านบนก่อนรายงานแพคเกจว่าล้าสมัย!

หากอัพสตรีมเปิดตัวเวอร์ชันที่ใหม่กว่าสำหรับแพ็คเกจที่ไม่ใช่การพัฒนากว่าในPKGBUILDคุณสามารถคลิก "ตั้งค่าสถานะแพ็คเกจล้าสมัย" แล้วพิมพ์ข้อความไปยังผู้ดูแล ใช้https://packages.archlinux.orgสำหรับแพ็คเกจที่เก็บข้อมูลอย่างเป็นทางการและhttps://aur.archlinux.orgสำหรับแพ็คเกจ AUR ข้อความที่เป็นประโยชน์อาจเป็นหมายเลขเวอร์ชันใหม่และอาจเป็นลิงก์ไปยังประกาศการเปิดตัวหรือซอร์สโค้ด คุณสมบัติการติดธงทำเครื่องหมายส่งอีเมลข้อความของคุณไปยังผู้ดูแลโดยอัตโนมัติ

ในแพ็คเกจ AUR หากไม่มีการตอบกลับหลังจาก 2 สัปดาห์คุณสามารถคลิก "ส่งคำขอ" ด้วยประเภท "เด็กกำพร้า" หากคุณต้องการขอให้ผู้ใช้ที่เชื่อถือได้ทำการลบผู้ดูแลปัจจุบันและทำแพ็คเกจกำพร้าถ้า ผู้ดูแลไม่ตอบสนองต่อคำขอเด็กกำพร้า โดยทั่วไปแล้วผู้คนจะยื่นคำร้องขอเด็กกำพร้าหากพวกเขาสามารถและเต็มใจที่จะครอบครองแพ็คเกจและโดยเฉพาะอย่างยิ่งถ้าพวกเขามีกระแสงานอยู่PKGBUILDแล้ว

ในระหว่างนี้คุณสามารถอัปเดตแพ็คเกจที่ล้าสมัยด้วยตัวเองได้บ่อยครั้ง บ่อยครั้งที่คุณต้องเปลี่ยนPKGBUILDโดยการอัปเดตเป็นPKGVERหมายเลขเวอร์ชันใหม่และผลรวมความสมบูรณ์จะได้รับการอัปเดต โปรแกรมupdpkgsumsมีอยู่ในแพ็คเกจpacman-contribซึ่งจะคำนวณผลรวมและอัปเดตให้PKGBUILDคุณโดยอัตโนมัติ ควรตรวจสอบบันทึกประจำรุ่นของอัปสตรีมเพื่อดูว่าพวกเขาพูดถึงอะไรที่จำเป็นต้องเปลี่ยนแปลงในระหว่างกระบวนการติดตั้งของเวอร์ชันใหม่ บางครั้งการเปลี่ยนแปลงต้นน้ำจำเป็นต้องมีการเปลี่ยนแปลงหรือยกเครื่องให้PKGBUILD/ETCมากขึ้น บ่อยครั้งที่sourceอาร์เรย์ฝังPKGVERอยู่ภายในบ่อยครั้งที่ไม่จำเป็นต้องอัพเดต



Leave a Comment

การติดตั้ง 2019 Arch Linux บน Vultr Server

การติดตั้ง 2019 Arch Linux บน Vultr Server

เกริ่นนำ Arch Linux มีขนาดเล็กลง แต่ยังคงแข็งแกร่งต่อไปนี้มากกว่าการกระจายความนิยมมากขึ้น ปรัชญาของมันแตกต่างกันมากโดยมีข้อดีและ

ติดตั้ง Mumble Server บน Arch Linux

ติดตั้ง Mumble Server บน Arch Linux

บทช่วยสอนนี้อธิบายวิธีตั้งค่าเซิร์ฟเวอร์ Mumble (Murmur) บน Arch Linux ทุกอย่างที่ทำในบทช่วยสอนนี้ทำในฐานะผู้ใช้รูท การติดตั้งและ

วิธีการติดตั้ง PostgreSQL 11.1 บน Arch Linux

วิธีการติดตั้ง PostgreSQL 11.1 บน Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เข้าถึง Sudo คำสั่งที่ต้องรันในฐานะรูทจะขึ้นต้นด้วย # และอีกหนึ่งคำสั่ง

วิธีการติดตั้ง Nginx 1.14 บน Arch Linux

วิธีการติดตั้ง Nginx 1.14 บน Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เข้าถึง Sudo คำ���ั่งที่ต้องรันในขณะที่รูทนำหน้าด้วย # Th

ติดตั้ง Arch Linux ด้วย Btrfs Snapshotting

ติดตั้ง Arch Linux ด้วย Btrfs Snapshotting

คำนำ Arch Linux เป็นการกระจายทั่วไปที่รู้จักกันดีสำหรับเทคโนโลยีที่ทันสมัยและการกำหนดค่าที่ยืดหยุ่น ด้วยสแน็ปช็อต Btrfs เราสามารถรับได้

วิธีการติดตั้ง PHP 7.3 บนเว็บเซิร์ฟเวอร์ Arch Linux

วิธีการติดตั้ง PHP 7.3 บนเว็บเซิร์ฟเวอร์ Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เว็บเซิร์ฟเวอร์ที่ใช้งานไม่ว่าจะเป็นการเข้าถึง Apache หรือ Nginx Sudo ต้องการคำสั่ง

ใช้ Makepkg บน Arch Linux

ใช้ Makepkg บน Arch Linux

หากคุณใช้ makepkg โดยตรงมันค่อนข้างจะสร้างความเสียหายให้กับระบบของคุณ กลุ่มแพ็กเกจฐาน devel ต้องถูกติดตั้ง วิธีนี้โดยค่าเริ่มต้นการอ้างอิงที่จำเป็น ONL

การติดตั้ง Arch Linux บนเซิร์ฟเวอร์ Vultr

การติดตั้ง Arch Linux บนเซิร์ฟเวอร์ Vultr

Vultr มอบฟังก์ชั่นการใช้งานที่ยอดเยี่ยมให้คุณใช้ภาพที่กำหนดเองของคุณนอกเหนือไปจากเทมเพลตที่ยอดเยี่ยมซึ่งช่วยให้คุณเรียกใช้

ติดตั้ง Spigot Server บน Arch Linux

ติดตั้ง Spigot Server บน Arch Linux

บทช่วยสอนนี้อธิบายวิธีตั้งค่าเซิร์ฟเวอร์ Minecraft โดยใช้ Spigot บน Arch Linux บทช่วยสอนนี้ถือว่าคุณเป็นผู้ใช้ปกติ (ไม่ใช่รูท) และ hav

วิธีใช้ HTTPS บน Arch Linux Webserver

วิธีใช้ HTTPS บน Arch Linux Webserver

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เว็บเซิร์ฟเวอร์ที่ใช้งานไม่ว่าจะเป็น Apache หรือ Nginx Sudo access คำสั่งที่จำเป็น

การใช้ Devtools บน Arch Linux

การใช้ Devtools บน Arch Linux

เดิมแพ็คเกจ Devtools สร้างขึ้นสำหรับผู้ใช้ที่เชื่อถือได้เพื่อสร้างแพ็คเกจสำหรับที่เก็บอย่างเป็นทางการ อย่างไรก็ตามผู้ใช้ทั่วไปสามารถใช้งานได้

วิธีการติดตั้ง Perl 5.28 บน Arch Linux Webserver

วิธีการติดตั้ง Perl 5.28 บน Arch Linux Webserver

เซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เว็บเซิร์ฟเวอร์ที่ใช้งานอยู่ไม่ว่าจะเป็นการเข้าถึง Apache หรือ Nginx Sudo: คำสั่งต้องการ

วิธีการติดตั้ง Python 3.7 บนเว็บเซิร์ฟเวอร์ Arch Linux

วิธีการติดตั้ง Python 3.7 บนเว็บเซิร์ฟเวอร์ Arch Linux

เซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) เว็บเซิร์ฟเวอร์ที่ใช้งานอยู่ไม่ว่าจะเป็นการเข้าถึง Apache หรือ Nginx Sudo: คำสั่งต้องการ

วิธีการติดตั้ง MongoDB 4.0 บน Arch Linux

วิธีการติดตั้ง MongoDB 4.0 บน Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ที่ใช้งานล่าสุดถึง Arch Linux (ดูบทความนี้) การเข้าถึง Sudo: คำสั่งที่ต้องรันในขณะที่รูทถูกขึ้นต้นด้วย # และหนึ่ง

ติดตั้ง Counter-Strike: เซิร์ฟเวอร์ Global Offensive (CSGO) บน Arch Linux

ติดตั้ง Counter-Strike: เซิร์ฟเวอร์ Global Offensive (CSGO) บน Arch Linux

บทช่วยสอนนี้อธิบายวิธีการตั้งค่าเซิร์ฟเวอร์ Counter-Strike: Global Offensive บน Arch Linux บทช่วยสอนนี้สมมติว่าคุณเข้าสู่ระบบด้วยการใช้มาตรฐาน

วิธีการติดตั้ง MariaDB 10.3 หรือ MySQL 8.0 บน Arch Linux

วิธีการติดตั้ง MariaDB 10.3 หรือ MySQL 8.0 บน Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux (ดูบทความนี้) การเข้าถึง Sudo: คำสั่งที่ต้องรันในขณะที่รูทถูกขึ้นต้นด้วย # และอีกหนึ่ง

ติดตั้งเซิร์ฟเวอร์ Team Fortress 2 บน Arch Linux

ติดตั้งเซิร์ฟเวอร์ Team Fortress 2 บน Arch Linux

บทช่วยสอนนี้อธิบายวิธีตั้งค่าเซิร์ฟเวอร์ Team Fortress 2 บน Arch Linux ฉันคิดว่าคุณเข้าสู่ระบบด้วยบัญชีผู้ใช้ที่ไม่ใช่รูทที่มีสิทธิ์เข้าถึง sudo

วิธีการติดตั้ง Apache 2.4 บน Arch Linux

วิธีการติดตั้ง Apache 2.4 บน Arch Linux

สิ่งที่จำเป็นต้องมีเซิร์ฟเวอร์ Vultr ทำงานล่าสุด Arch Linux ดูคู่มือนี้สำหรับข้อมูลเพิ่มเติม เข้าถึง Sudo คำสั่งที่จำเป็นต้องรันเป็นรูท ar

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน