ฉันจะติดตั้งแพคเกจจาก AUR ได้อย่างไร


61

Arch Linux มี AUR (Arch User Repository) ซึ่งเป็นชุดของแพ็คเกจที่ผู้ใช้สร้างขึ้น ฉันจะติดตั้งแพ็กเกจเหล่านี้บน Arch Linux ARM ได้อย่างไร?


2
ดูเหมือนว่ามีแพคเกจ aur มากมายที่มีให้แล้วผ่าน repo "aur" ฉันพบมันโดยบังเอิญ pacman -S yourpackage อาจใช้งานได้จริง มันทำงานร่วมกับ cower และ gmrender-resurrect-git เป็นต้น
ลึกลับนัก

คำตอบ:


53

ตามหน้าBuilding Packagesจาก Arch Linux ARM คุณต้อง

  1. ติดตั้งสิ่งจำเป็นสำหรับการสร้าง สิ่งเหล่านี้จำเป็นสำหรับการรวบรวมแพ็คเกจบน Arch Linux ARM

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. PKGBUILDขอรับ คุณต้องดาวน์โหลด tarball ที่คุณต้องการ คุณสามารถค้นหา tarballs สำหรับโปรแกรมที่เอื้อ

  3. ทำแพ็คเกจ ถัดไปคุณต้องเรียกใช้makepkgเพื่อสร้างแพคเกจที่ pacman สามารถติดตั้งได้

    $ makepkg -Acs
    

    -Aตัวเลือกที่จะไม่สนใจเป้าหมายสถาปัตยกรรม Arch -cตัวเลือกทำความสะอาดขึ้นไดเรกทอรีหลังจากที่makepkgจะทำและ-sติดตั้งการอ้างอิงที่จำเป็น

    แนะนำว่าคุณไม่ได้ทำงานmakepkgเป็นรากที่จะสามารถทำให้เกิดความเสียหายถาวรให้ระบบของคุณ หากคุณจำเป็นต้องเรียกใช้เป็นรูทจริงๆให้ใช้--asrootตัวเลือก

  4. ติดตั้งแพ็คเกจ ควรจะมีการสร้างแฟ้มในไดเรกทอรีที่มีประเภทไฟล์makepkg .pkg.tar.xzคุณควรติดตั้งแพ็กเกจนี้โดยใช้ -Uตัวเลือกกับ pacman

    $ sudo pacman -U x.pkg.tar.xz
    

    ให้แน่ใจว่าคุณแทนที่x.pkg.tar.xzด้วยชื่อแพคเกจจริง


ไม่แนะนำให้ใช้แพ็คเกจอาคารด้วยตนเองสำหรับผู้ใช้มือใหม่ ในความเป็นจริงทุกคนควรใช้ Yaourt มันทำให้กระบวนการทั้งหมดง่าย
Jivings

คุณยังต้องการแพ็คเกจเหล่านั้นและเพื่อแก้ไข PKGBUILD เพื่อคอมไพล์สำหรับ armv6h arch
Anglepoise

5
@Jivings จริงๆแล้วเหตุผลทั้งหมดที่ yaourt และผู้ช่วย AUR คนอื่น ๆ ไม่ได้อยู่ใน repo อย่างเป็นทางการก็คือคุณควรจะเรียนรู้วิธีการติดตั้งแพ็คเกจต่างประเทศด้วยตนเองก่อนใช้เครื่องมืออัตโนมัติ
PyRulez

2
แพ็คเกจ 'abs' ไม่ปรากฏในที่เก็บ
dmnc

คือkernel26-headersยังคงเกิดขึ้นจริง? ไม่พบอะไรเกี่ยวกับมันด้วย google และกลุ่มที่มีbase-devel file
user3123159

34

ทางออกที่ง่ายที่สุดคือการใช้ Yaourt (อีกหนึ่งเครื่องมือที่เก็บผู้ใช้)

คุณสามารถติดตั้งด้วย:

pacman -S yaourt

จากนั้นซิงค์กับ AUR:

yaourt -Syy

จากนั้นคุณสามารถค้นหาแพ็คเกจ AUR:

yaourt package-name

ซึ่งจะให้พรอมต์แบบโต้ตอบสำหรับการติดตั้ง

หรือถ้าคุณรู้ชื่อแพคเกจอย่างแน่นอน:

yaourt -S package-name

คำสั่ง pacman ส่วนใหญ่เหมือนกันสำหรับ yaourt


ความแตกต่างระหว่างpacmanและyaourtคืออะไร?
Alex Chamberlain

Yaourt ยังตรวจสอบ AUR รวมถึงที่เก็บข้อมูลอย่างเป็นทางการ แพ็คเกจ AUR มีความเป็นไปได้ในการปรับแต่งที่มากขึ้นเช่นกัน
Jivings

สิ่งนี้ไม่ทำงานอีกต่อไป การแก้ปัญหาอย่างเป็นทางการคืออะไร?
tekknolagi

2
pacman -S yaourtไม่ทำงานและฉันไม่สามารถเพิ่มได้archlinuxfrเนื่องจากพวกเขาไม่ได้โฮสต์armv6h
tekknolagi

1
@tekknolagi yaourtเคยเป็นที่เก็บหลักสำหรับ Arch Arm บางทีพวกเขาอาจลบมันออก .... แต่คุณยังสามารถสร้างมันได้จากแหล่งที่มาซึ่งอธิบายไว้ในบทความ AURเกี่ยวกับ Arch Wiki และมีแฟ้มแพคเกจสำหรับมันนี่ ฉันหวังว่าจะช่วย!
Jivings

10

คำตอบทั้งหมดข้างต้นล้าสมัยแล้ว คำตอบของฉันไม่ดีมาก แต่หวังว่าจะหลีกเลี่ยงปัญหาที่จะล้าสมัย

วิกิพีเดียอย่างเป็นทางการอธิบายในรายละเอียดวิธีการหนึ่งที่ไปเกี่ยวกับการติดตั้ง / การสร้างแพคเกจที่ไม่เป็นส่วนหนึ่งของ pacman (บรรจุหีบห่อและ yaourt ณ วันนี้บริการ)

ทั้งผู้บรรจุหีบห่อและ yaourt ถูกตั้งค่าสถานะล้าสมัยใน AUR (อาจมีการเปลี่ยนแปลงในอนาคต)


คำตอบที่ดี! ฉันแนะนำให้ใช้ makepkg -si เช่นกัน (หลังจากตรวจสอบไฟล์ PKGBUILD)
smoothware

7

ฉันใช้เครื่องบรรจุหีบห่อเพื่อจุดประสงค์นี้ซึ่งในความคิดของฉันเป็นทางเลือกที่เร็วกว่าสำหรับ yaourt

เพียงเพิ่มสองบรรทัดนี้ใน/etc/pacman.conf:

[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

จากนั้นคุณสามารถติดตั้ง / ปรับปรุงบรรจุหีบห่อผ่าน pacman:

# pacman -Sy packer

และใช้เครื่องบรรจุหีบห่อในแบบเดียวกับที่คุณใช้ Pacman:

$ packer -S some_aur_package

นอกจากนี้หากคุณไม่ต้องการอัปเกรดแพ็คเกจทั้งหมดรวมถึงแพ็คเกจจาก AUR:

$ packer -Syu

Packer จะเริ่มทำงานpacman -Syuเพื่ออัพเกรดแพ็คเกจจากที่เก็บอย่างเป็นทางการจากนั้นจะอัพเกรดแพ็คเกจ AUR ทั้งหมด


4

สิ่งสำคัญ! yaourtไม่ปลอดภัยและเลิกใช้ตามวิกิ: https://wiki.archlinux.org/index.php/AUR_helpers

ในขณะที่ @Jivings คำตอบกลับมาดีที่สุดใน `12 แต่ฉันขอแนะนำให้ติดตั้งหนึ่งในผู้จัดการแพคเกจ arch arch ที่ปลอดภัยและมีคุณลักษณะมากขึ้น (และฉันขอแนะนำให้มีคนอัปเดต @Jivings คำตอบเนื่องจากมีการเปิดเผยมากที่สุด)

ฉันกำลังใช้aurmanและขุดมัน มีคุณสมบัติทั้งหมดมีความปลอดภัยและ cli ทำงานได้เกือบเหมือน pacman ติดตั้ง:

cd ~/Downloads
git clone https://aur.archlinux.org/aurman.git
cd aurman
makepkg -Acs
# Change xxx below to downloaded version
sudo pacman -U aurman-xxx.pkg.tar.xz

จากนั้นคุณสามารถทำตามคำแนะนำของ Pacman ได้เกือบทั้งหมด แต่ใช้aurmanแทน Pacman คำแนะนำต่อไปนี้ถูกนำมาจากhttps://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-managementและให้ฉันเริ่ม:


เริ่มต้นใช้งาน

Arch Linux ให้บริการการจัดการแพ็คเกจคล้ายกับที่พบในดิสทริบิวชั่นลีนุกซ์รุ่นอื่น ๆ นี่คือแนวทางการดำเนินการจัดการแพ็คเกจทั่วไป

ก่อนดำเนินการเพิ่มเติมตรวจสอบให้แน่ใจว่าฐานข้อมูลแพ็คเกจของคุณเป็นปัจจุบันด้วย:

sudo pacman -Sy

ค้นหา

การจัดการแพ็คเกจใน Arch Linux ส่วนใหญ่นั้นมีรูปแบบที่น่าพอใจ:

pacman -<a-z><a-z>.

ตัวอย่างเช่นคำสั่งปกติสำหรับการค้นหาที่เก็บ pacman คือ

pacman -Ss <package> 

...

หรือคุณสามารถใช้ pacman -Q ด้วยข้อเสียของการไม่เน้นสี

pacman -Qs linux

หากคุณต้องการเน้นสีด้วย pacman -S คุณสามารถยกเลิกการใส่เครื่องหมายสีจาก /etc/pacman.conf มันเน้นสิ่งที่แตกต่างจาก pacsearch ดังนั้นคุณอาจต้องการลองทั้งสองและดูว่าคุณชอบแบบไหนดีกว่า

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

การรับข้อมูล

pacman -Qi displays basic information about an installed package.

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

หาก pacman -Qi ถูกส่งผ่านโดยไม่มีอาร์กิวเมนต์มันจะส่งคืนแพ็กเกจทั้งหมดในระบบ คุณสามารถค้นหาเอาต์พุตนี้เพื่อรับข้อมูลพิเศษเกี่ยวกับแพ็กเกจที่ติดตั้ง

ตัวอย่างเช่นหากคุณต้องการได้รับแต่ละแพ็คเกจและขนาด:

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB

...

ขณะที่ pacman -Qi ให้ข้อมูลเกี่ยวกับแพ็กเกจที่ติดตั้ง pacman -Si เคียวรีฐานข้อมูลสำหรับข้อมูลที่ดึงข้อมูลล่าสุดเกี่ยวกับแพ็กเกจ

pacman -Si linux

pacman -Ql แสดงรายการไฟล์ทั้งหมดที่เกี่ยวข้องกับแพ็คเกจ

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi

...

ชื่อแพ็กเกจในแต่ละบรรทัดสามารถทำให้เอาต์พุตยากกว่าที่จะใช้ในสคริปต์ pacman -Qlq (เช่น "รายการค้นหา pacman, เงียบ") จะไม่พิมพ์ชื่อแพ็กเกจ

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi

...

คุณสามารถใช้ pacman -Qlq | grep bin เพื่อค้นหาไฟล์ทั้งหมดในแพ็คเกจที่อยู่ในโฟลเดอร์ bin (และอาจเป็นไฟล์เรียกทำงาน) สิ่งนี้มีประโยชน์เมื่อคำสั่งที่เกี่ยวข้องกับแพ็กเกจแตกต่างจากชื่อแพ็กเกจ

pacman -Qql pacman | grep bin

การติดตั้ง

วิธีทั่วไปในการติดตั้งหรืออัพเกรดแพ็คเกจมาตรฐานคือ pacman -S

sudo pacman -S <package>

แพคเกจมักจะมีรูปแบบที่คล้ายกันในชื่อของพวกเขา วงเล็บสามารถใช้เป็นทางลัดได้

sudo pacman -S lua-{sec,socket,zlib}

บางครั้งคุณอาจต้องการดาวน์โหลดแพ็คเกจเพื่อการเก็บถาวรโดยไม่ต้องติดตั้ง pacman -Sw จะดาวน์โหลดแพ็คเกจไปยังโฟลเดอร์แคช

sudo pacman -Sw <package>

หากมีการดาวน์โหลดแพคเกจหรือหากคุณทราบ URL คุณสามารถติดตั้งได้โดยตรง

sudo pacman -U <package_path>

อัพเกรด

เนื่องจาก pacman revolves รอบความคิดของ "ซิงค์" แพคเกจด้วยพื้นที่เก็บข้อมูลระยะไกลpacman -Sจะอัพเกรดแพคเกจหากมีการติดตั้งแล้ว

Pacman สามารถแสดงรายการแพ็คเกจที่ล้าสมัย

pacman -Qu

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

คุณสามารถรับเวอร์ชันจาก pacman -Qi หรือ pacman -Si โดยใช้นิพจน์ทั่วไป

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'

3.8.4-1

จากนั้นเขียนสคริปต์ที่แสดงเวอร์ชันต่างกัน

for i in $(pacman -Qqu)
do
  printf "$i: "
  printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
  echo   "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

Pacman มีวิธีในการอัพเกรดแพ็คเกจทั้งหมดของคุณในคราวเดียว แต่ไม่แนะนำให้ทำเพราะ Arch เป็นการแจกจ่ายแบบโรลลิ่ง หากมีปัญหาเกิดขึ้นอาจต้องใช้เวลาในการพิจารณาสาเหตุของปัญหา

sudo pacman -Syu

ปรับลดอันดับเครดิต

Arch Linux ไม่ได้ดูแลแพ็คเกจที่เลิกใช้อย่างเป็นทางการ แต่คุณจะต้องพึ่งพาแคชแพ็กเกจและสถานที่ต่างๆเช่น Arch Rollback Machine ขุมทรัพย์

ทุกแพ็คเกจที่ดาวน์โหลดด้วย pacman จะถูกเก็บไว้ใน / var / cache / pacman / pkg

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz

...

หากคุณต้องการเปลี่ยนกลับเป็นแพ็คเกจในแคชให้ติดตั้งโดยตรง

pacman -U <path_to_cached_file>

เครื่อง Arch ย้อนกลับ

Arch Rollback Machine เป็นชุดของภาพรวมของกระจก Arch Linux อย่างเป็นทางการ ขณะที่เขียนนี้มันกลับไปสี่เดือน ปัจจุบัน ARM มีโฮสต์ที่http://seblu.net/a/armแม้ว่าสิ่งนี้อาจเปลี่ยนแปลงได้ในอนาคต

สามารถติดตั้งแพ็คเกจ ARM ได้จากระยะไกลโดยใช้ pacman -U

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

มันไม่สะดวกที่จะเรียกดู ARM สำหรับแพ็คเกจเก่า ๆ โชคดีที่มีเครื่องมือที่ทำให้สิ่งนี้ง่ายขึ้น:

downgrade
downgrader

พวกเขาค้นหาเวอร์ชันที่เก่ากว่าในแคชและ ARM การใช้งานของพวกเขาคือสิ่งที่คุณคาดหวัง

downgrade <package>
downgrader <package>

เครื่องมือทั้งสองอยู่ใน AUR ดังนั้นวิธีที่ง่ายที่สุดในการติดตั้งจะมีผู้ช่วยอย่าง yaourt

หมายเหตุ: ARM เป็นโครงการที่ไม่เป็นทางการและถูกปิดในอดีตดังนั้นจึงเป็นความคิดที่ดีที่จะหลีกเลี่ยงการล้างแคชของคุณในกรณีที่ ARM หยุดทำงานหรือเปลี่ยนตำแหน่งอีกครั้ง หากคุณต้องการม้วนแขนของคุณเองดูเหมือนว่าจะมีโครงการ NodeJS บน github การถอด

ลบแพ็กเกจหากไม่มีสิ่งใดขึ้นอยู่กับมัน ปล่อยให้การพึ่งพาของมันติดตั้ง

sudo pacman -R <package>

ลบแพ็กเกจหากไม่มีสิ่งใดขึ้นอยู่กับมัน ลบการอ้างอิงที่ไม่ต้องการโดยสิ่งอื่นใด

sudo pacman -Rs <package>

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

sudo pacman -Rdd <package>

ในการลบแพ็คเกจออกโดยสมบูรณ์:aurman -Rsn <package>
mjd2

0

สิ่งแรกที่คุณต้องทำคือดาวน์โหลดแพ็คเกจจาก AUR ในการดำเนินการดังกล่าว: git clone http://aur.archlinux.org/package.gitแม้ว่าดูเหมือนว่าคุณกำลังดาวน์โหลด.gitไฟล์เอาต์พุตจะเป็นไดเรกทอรี

cd packageเพื่อค้นหาPKGBUILDไฟล์ สิ่งนี้จะถูกใช้ในขั้นตอนต่อไป

สุดท้ายให้รันคำสั่งนี้เพื่อรวบรวมและติดตั้งแพ็คเกจที่คุณเพิ่งดาวน์โหลด makepkg -Sri. หากคุณต้องการคำอธิบายที่ครอบคลุมเกี่ยวกับความหมายของตัวอักษรแต่ละตัวคุณสามารถเรียกใช้ตัวอักษรเหล่านั้นmakepkg -hเพื่ออธิบายได้


2
ยินดีต้อนรับสู่ Stack Exchange, Ashish .. คุณช่วยอธิบายเกี่ยวกับคำตอบของคุณได้เล็กน้อย - ทำไมต้องทำตามข้างต้นทำไมข้อความถึงทำเช่นนั้น?
Phil B.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.