Làm cách nào để cài đặt các gói từ AUR?


61

Arch Linux có AUR (Kho lưu trữ người dùng Arch), một tập hợp các gói do người dùng tạo. Làm cách nào để cài đặt các gói này trên Arch Linux ARM?


2
Có vẻ như có nhiều gói aur đã được cung cấp thông qua repo "aur". Tôi tình cờ tìm thấy nó. pacman -S yourpackage thực sự có thể hoạt động. Nó hoạt động với cower và gmrender-resurrect-git, ví dụ.
enigmaticPhysicist

Câu trả lời:


53

Theo trang Building Building từ Arch Linux ARM, bạn cần phải.

  1. Cài đặt bản dựng cần thiết. Chúng cần thiết để biên dịch các gói trên Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Có được PKGBUILD. Bạn cần tải tarball mà bạn muốn. Bạn có thể tìm thấy tarball cho các chương trình tại AUR .

  3. Làm các gói. Tiếp theo, bạn cần chạy makepkgđể tạo gói mà pacman có thể cài đặt.

    $ makepkg -Acs
    

    Các -Atùy chọn bỏ qua các mục tiêu kiến trúc Arch. Các -ctùy chọn dọn dẹp các thư mục sau khi makepkgđược thực hiện, và -scài đặt các phụ thuộc cần thiết.

    Chúng tôi khuyên bạn KHÔNG nên chạy makepkgbằng root vì nó có thể gây ra thiệt hại vĩnh viễn cho hệ thống của bạn. Nếu bạn thực sự cần chạy nó dưới quyền root, hãy sử dụng --asroottùy chọn.

  4. Cài đặt gói. makepkgnên tạo một tập tin trong thư mục với filetype .pkg.tar.xz. Bạn nên cài đặt gói này bằng cách sử dụng -Utùy chọn với pacman.

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

    Hãy chắc chắn rằng bạn thay thế x.pkg.tar.xzbằng tên gói thực tế.


Xây dựng các gói thủ công chắc chắn không được khuyến khích cho người dùng mới làm quen. Trên thực tế, mọi người nên sử dụng Yaourt. Nó làm cho toàn bộ quá trình đơn giản.
Jivings

Bạn vẫn cần các gói đó và chỉnh sửa PKGBUILD để biên dịch cho archv6h arch.
Anglepoise

5
@Jivings Trên thực tế, toàn bộ lý do yaourt và những người trợ giúp AUR khác không có trong repo chính thức là bạn phải học cách cài đặt các gói nước ngoài một cách thủ công trước khi sử dụng một công cụ tự động.
PyRulez

2
Gói 'abs' không có trong kho lưu trữ
dmnc

kernel26-headersvẫn thực tế? Không tìm thấy bất cứ điều gì về nó với google. Và nhóm base-develchứa file.
dùng3123159

34

Giải pháp đơn giản nhất là sử dụng Yaourt (Công cụ lưu trữ người dùng Yet AnOther) .

Bạn có thể cài đặt với:

pacman -S yaourt

Và sau đó đồng bộ hóa với AUR:

yaourt -Syy

Sau đó, bạn có thể tìm kiếm các gói AUR:

yaourt package-name

Mà sẽ cung cấp nhắc nhở tương tác để cài đặt.

Hoặc nếu bạn biết chính xác tên gói:

yaourt -S package-name

Hầu hết các lệnh pacman đều giống nhau cho yaourt.


Sự khác biệt giữa pacmanvà là yaourtgì?
Alex Chamberlain

Yaourt cũng kiểm tra AUR cũng như các kho chính thức. Các gói AUR cũng có nhiều khả năng tùy biến hơn.
Jivings

Điều này không hoạt động nữa. Giải pháp chính thức là gì?
tekknolagi

2
pacman -S yaourtkhông hoạt động và tôi không thể thêm archlinuxfrvì dường như họ không lưu trữarmv6h
tekknolagi

1
@tekknolagi yaourttừng nằm trong kho lưu trữ chính của Arch Arm. Có lẽ họ đã gỡ bỏ nó .... Nhưng bạn vẫn có thể xây dựng nó từ nguồn, được giải thích trong bài viết AUR trên Arch Wiki. Và có một tập tin gói cho nó ở đây . Tôi hy vọng điều đó sẽ giúp!
Jivings

10

Tất cả các câu trả lời trên đã lỗi thời. Câu trả lời của tôi không tốt lắm, nhưng hy vọng sẽ tránh được vấn đề trở nên lỗi thời.

Các wiki chính thức trình bày tỉ mỉ, làm sao ta đi về cài đặt / xây dựng một gói đó không phải là một phần của pacman (đóng gói và yaourt vào ngày này).

Cả packer và yaourt đều được gắn cờ là lỗi thời trong AUR. (Nó có thể thay đổi tương lai).


Câu trả lời tốt! Tôi cũng khuyên bạn nên sử dụng makepkg -si (sau khi kiểm tra tệp PKGBUILD)
mềm trơn 31/12/18

7

Tôi sử dụng packer cho mục đích này mà theo tôi là một sự thay thế nhanh hơn cho yaourt.

Chỉ cần thêm hai dòng này vào /etc/pacman.conf:

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

Sau đó, bạn có thể cài đặt / cập nhật trình đóng gói qua pacman:

# pacman -Sy packer

Và sử dụng packer theo cách tương tự như cách bạn sử dụng pacman:

$ packer -S some_aur_package

Ngoài ra, nếu bạn không nâng cấp tất cả các gói, kể cả các gói từ AUR:

$ packer -Syu

Packer trước tiên sẽ chạy pacman -Syuđể nâng cấp các gói từ kho chính thức, sau đó nó sẽ nâng cấp tất cả các gói AUR.


4

QUAN TRỌNG! yaourtkhông an toàn và không được chấp nhận theo wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Mặc dù câu trả lời @Jivings trở lại tốt nhất trong `12, tôi khuyên bạn nên cài đặt một trong những trình quản lý gói vòm phong phú và an toàn hơn (và tôi khuyên ai đó nên cập nhật câu trả lời @Jivings vì nó có khả năng hiển thị cao nhất).

Tôi đang sử dụng aurmanvà đào nó. Có tất cả các tính năng, an toàn và cli hoạt động gần như chính xác như pacman. Để cài đặt:

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

Sau đó, bạn có thể làm theo hướng dẫn pacman gần như chính xác nhưng sử dụng aurmanthay vì pacman. Hướng dẫn sau đây được lấy từ https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-man quản lý và giúp tôi bắt đầu:


Bắt đầu

Arch Linux cung cấp các phương tiện quản lý gói tương tự như các phân phối được tìm thấy trong các bản phân phối Linux hiện đại khác. Đây là một hướng dẫn cho các hoạt động quản lý gói phổ biến.

Trước khi tiếp tục, hãy đảm bảo cơ sở dữ liệu gói của bạn được cập nhật với:

sudo pacman -Sy

Đang tìm kiếm

Yêu thích sự ngắn gọn về trực giác, hầu hết các hoạt động quản lý gói trong Arch Linux xuất hiện ở định dạng:

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

Ví dụ, lệnh bình thường để tìm kiếm kho lưu trữ pacman là

pacman -Ss <package> 

...

Ngoài ra, bạn có thể sử dụng pacman -Q với nhược điểm là không tô màu.

pacman -Qs linux

Nếu bạn muốn tô sáng màu bằng pacman -Ss, bạn có thể bỏ ghi chú Màu từ /etc/pacman.conf. Tuy nhiên, nó làm nổi bật những thứ khác với pacsearch, vì vậy bạn có thể muốn thử cả hai và xem cái nào bạn thích hơn.

sudo vi /etc/pacman.conf

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

Lấy thông tin

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

Nếu pacman -Qi được thông qua không có đối số, nó sẽ trả về tất cả các gói trong hệ thống. Bạn có thể tìm kiếm đầu ra này để có được thông tin chuyên biệt về các gói đã cài đặt.

Ví dụ: nếu bạn muốn nhận từng gói và kích thước của nó:

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

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

...

Trong khi pacman -Qi cung cấp thông tin về các gói đã cài đặt, pacman -Si truy vấn cơ sở dữ liệu để biết thông tin được truy xuất gần đây nhất về một gói.

pacman -Si linux

pacman -Ql liệt kê tất cả các tệp được liên kết với một gói.

pacman -Ql vi

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

...

Tên gói trên mỗi dòng có thể làm cho đầu ra khó sử dụng hơn trong tập lệnh. pacman -Qlq (tức là "danh sách truy vấn pacman, yên lặng") sẽ không in tên gói.

pacman -Qlq vi

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

...

Bạn có thể sử dụng pacman -Qlq | grep bin để tìm tất cả các tệp trong gói đó trong thư mục bin (và do đó có khả năng là các tệp thực thi). Điều này rất hữu ích khi lệnh được liên kết với một gói khác với tên gói.

pacman -Qql pacman | grep bin

Cài đặt

Cách điển hình để cài đặt hoặc nâng cấp gói tiêu chuẩn là pacman -S.

sudo pacman -S <package>

Các gói thường có một mô hình tương tự trong tên của họ. Chân đế có thể được sử dụng như một phím tắt.

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

Đôi khi bạn có thể chỉ muốn tải xuống một gói cho mục đích lưu trữ mà không cần cài đặt nó. pacman -Sw sẽ tải xuống một gói vào thư mục bộ đệm.

sudo pacman -Sw <package>

Nếu một gói đã được tải xuống, hoặc nếu bạn biết url, bạn có thể cài đặt trực tiếp.

sudo pacman -U <package_path>

Nâng cấp

Vì pacman xoay quanh ý tưởng "đồng bộ hóa" một gói với kho lưu trữ từ xa, pacman -Ssẽ nâng cấp một gói nếu nó đã được cài đặt.

Pacman có thể liệt kê các gói đã hết hạn.

pacman -Qu

Thật không may, nó không hiển thị phiên bản của gói trong kho lưu trữ, vì vậy bạn sẽ không thể biết được mỗi gói đã hết hạn sử dụng như thế nào. Nếu điều này quan trọng với bạn, bạn có thể muốn xem xét các nhà quản lý gói bên thứ 3 hoặc viết một tập lệnh liên kết với nhau phiên bản gói thu được từ pacman -Qi và pacman -Si.

Bạn có thể lấy phiên bản từ pacman -Qi hoặc pacman -Si bằng cách sử dụng biểu thức chính quy.

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

3.8.4-1

Và sau đó viết một kịch bản hiển thị các phiên bản cạnh nhau.

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 cung cấp một cách để nâng cấp tất cả các gói của bạn cùng một lúc, nhưng điều đó không được khuyến khích vì Arch là một bản phân phối phát hành. Nếu có vấn đề phát sinh, có thể mất thời gian để xác định nguyên nhân là gì.

sudo pacman -Syu

Hạ cấp

Arch Linux không chính thức duy trì các gói không dùng nữa. Thay vào đó, bạn sẽ cần phải dựa vào bộ đệm của gói và các vị trí như Arch Rollback Machine. Bộ nhớ cache

Mỗi gói được tải xuống với pacman được lưu trữ trong / 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

...

Nếu bạn muốn hoàn nguyên gói trong bộ đệm của mình, chỉ cần cài đặt trực tiếp.

pacman -U <path_to_cached_file>

Arch Rollback Máy

Arch Rollback Machine là một bộ ảnh chụp nhanh của máy nhân bản Arch Linux chính thức. Theo văn bản này, nó trở lại bốn tháng. ARM hiện được lưu trữ tại http://seblu.net/a/arm , mặc dù điều này có thể thay đổi trong tương lai.

Các gói ARM có thể được cài đặt từ xa bằng 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

Thật không thuận tiện khi duyệt ARM cho các gói cũ hơn. May mắn thay, có những công cụ giúp việc này dễ dàng hơn:

downgrade
downgrader

Họ tìm kiếm các phiên bản cũ hơn trong bộ đệm và ARM. Cách sử dụng của họ là những gì bạn mong đợi.

downgrade <package>
downgrader <package>

Cả hai công cụ đều nằm trong AUR, vì vậy cách dễ nhất để cài đặt chúng sẽ là với một người trợ giúp như yaourt.

Lưu ý: ARM là một dự án không chính thức và đã bị đóng trong quá khứ, vì vậy có thể là một ý tưởng tốt để tránh xóa bộ nhớ cache của bạn trong trường hợp ARM bị hỏng hoặc thay đổi vị trí một lần nữa. Nếu bạn muốn cuộn ARM của riêng mình, dường như có một dự án NodeJS trên github. Gỡ bỏ

Hủy bỏ một gói, miễn là không có gì là tùy thuộc vào nó. Để lại các phụ thuộc của nó được cài đặt.

sudo pacman -R <package>

Hủy bỏ một gói, miễn là không có gì là tùy thuộc vào nó. Loại bỏ các phụ thuộc của nó mà không cần bất cứ điều gì khác.

sudo pacman -Rs <package>

Buộc loại bỏ một gói. Đây là lệnh bạn sẽ đạt được để chỉ xóa gói khỏi hệ thống của bạn và cài đặt lại khi cài đặt lại một mình là không đủ.

sudo pacman -Rdd <package>

Để xóa hoàn toàn gói:aurman -Rsn <package>
mjd2

0

Điều đầu tiên bạn cần làm là tải xuống gói từ AUR. Để thực hiện việc đó: git clone http://aur.archlinux.org/package.gitMặc dù có vẻ như bạn đang tải xuống một .gittệp, đầu ra sẽ là một thư mục.

cd packageđể tìm một PKGBUILDtập tin Điều này sẽ được sử dụng trong bước tiếp theo.

Cuối cùng, chạy lệnh này để biên dịch và cài đặt gói bạn vừa tải xuống. makepkg -Sri. Nếu bạn muốn giải thích toàn diện về ý nghĩa của từng chữ cái đó, bạn có thể chạy makepkg -hở nơi tất cả chúng sẽ được giải thích.


2
Chào mừng bạn đến với Stack Exchange, Ashish .. bạn có thể giải thích một chút về câu trả lời của mình không - tại sao những điều trên cần phải được thực hiện, những tuyên bố làm gì, v.v.?
Phil B.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.