Bagaimana cara saya menginstal paket dari AUR?

61

Arch Linux memiliki AUR (Arch User Repository), kumpulan paket yang dibuat pengguna. Bagaimana cara saya menginstal paket-paket ini pada ARM Arch Linux?

Ghanima
sumber
2
Sepertinya ada banyak paket aur yang sudah disediakan melalui repo "aur". Saya menemukannya secara tidak sengaja. pacman -Spaket Anda mungkin benar-benar berfungsi. Ia bekerja dengan cower dan gmrender-resurrect-git, misalnya.
enigmaticPhysicist

Jawaban:

53

Menurut halaman Paket Bangunan dari ARM Arch Linux, Anda perlu.

  1. Instal esensi build. Ini diperlukan untuk mengkompilasi paket pada Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Dapatkan PKGBUILD. Anda perlu mengunduh tarball yang Anda inginkan. Anda dapat menemukan tarbal untuk program di AUR .

  3. Buat paket. Selanjutnya Anda perlu menjalankan makepkguntuk menghasilkan paket yang dapat diinstal pacman.

    $ makepkg -Acs
    

    The -Apilihan mengabaikan target Arch arsitektur. The -cpilihan membersihkan direktori setelah makepkgdilakukan, dan -smenginstal dependensi yang diperlukan.

    Disarankan agar Anda TIDAK menjalankan makepkgroot karena dapat menyebabkan kerusakan permanen pada sistem Anda. Jika Anda benar - benar perlu menjalankannya sebagai root, gunakan --asrootopsi.

  4. Instal paket. makepkgseharusnya membuat file dalam direktori dengan tipe file .pkg.tar.xz. Anda harus menginstal paket ini dengan menggunakan -Uopsi dengan pacman.

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

    Pastikan Anda mengganti x.pkg.tar.xzdengan nama paket yang sebenarnya.


sumber
Membangun paket secara manual jelas tidak disarankan untuk pengguna pemula. Bahkan, semua orang harus menggunakan Yaourt. Itu membuat seluruh proses sederhana.
Jivings
Anda masih membutuhkan paket-paket itu dan mengedit PKGBUILD untuk dikompilasi untuk armv6h arch.
Anglepoise
5
@Jivings Sebenarnya, seluruh alasan yaourt dan pembantu AUR lainnya tidak ada dalam repo resmi adalah bahwa Anda seharusnya belajar cara menginstal paket asing secara manual sebelum menggunakan alat otomatis.
PyRulez
2
Paket 'abs' tidak ada di repositori
dmnc
apakah kernel26-headersmasih aktual? Tidak menemukan apa pun tentang itu dengan google. Dan grup tersebut base-develberisi file.
user3123159
34

Solusi termudah adalah dengan menggunakan Yaourt (Namun Alat Repositori Pengguna Lain) .

Anda dapat menginstal dengan:

pacman -S yaourt

Dan kemudian sinkronkan dengan AUR:

yaourt -Syy

Anda kemudian dapat mencari paket AUR:

yaourt package-name

Yang akan memberikan petunjuk interaktif untuk instalasi.

Atau jika Anda tahu persis nama paket:

yaourt -S package-name

Kebanyakan perintah pacman adalah sama untuk yaourt.

Jivings
sumber
Apa perbedaan antara pacmandan yaourt?
Alex Chamberlain
Yaourt juga memeriksa AUR serta repositori resmi. Paket AUR juga memiliki lebih banyak kemungkinan penyesuaian.
Jivings
Ini tidak berfungsi lagi. Apa solusi resmi?
tekknolagi
2
pacman -S yaourttidak bekerja dan saya tidak dapat menambahkan archlinuxfrkarena tampaknya mereka tidak menjadi tuan rumaharmv6h
tekknolagi
1
@tekknolagi yaourtdulu berada di repositori utama untuk Arch Arm. Mungkin mereka menghapusnya .... Tapi Anda masih bisa membuatnya dari sumber, yang dijelaskan dalam artikel AUR di Arch Wiki. Dan ada file paket untuk itu di sini . Saya harap itu membantu!
Jivings
10

Semua jawaban di atas sudah usang. Jawaban saya tidak terlalu bagus, tetapi mudah-mudahan menghindari masalah menjadi usang.

The wiki resmi menjelaskan, secara rinci, bagaimana satu pergi tentang menginstal / membangun sebuah paket yang bukan bagian dari pacman (packer dan yaourt pada tanggal ini).

Baik packer dan yaourt ditandai sebagai ketinggalan zaman di AUR. (ini dapat berubah di masa mendatang).

PPPaul
sumber
Jawaban yang bagus! Saya sarankan menggunakan makepkg -si juga (setelah memeriksa file PKGBUILD)
smoothware
7

Saya menggunakan packer untuk tujuan ini yang menurut saya merupakan alternatif yang lebih cepat daripada yaourt.

Tambahkan saja dua baris ini ke /etc/pacman.conf:

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

Kemudian Anda dapat menginstal / memperbarui paket melalui pacman:

# pacman -Sy packer

Dan gunakan packer dengan cara yang hampir sama seperti Anda menggunakan pacman:

$ packer -S some_aur_package

Juga jika Anda tidak ingin memperbarui semua paket termasuk yang dari AUR:

$ packer -Syu

Packer pertama-tama akan menjalankan pacman -Syuuntuk mengupgrade paket-paket dari repositori resmi, lalu akan mengupgrade semua paket AUR.

brkt
sumber
4

PENTING! yaourttidak aman dan usang menurut wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Sementara jawaban @Jivings terbaik di `12, saya akan merekomendasikan menginstal salah satu manajer paket lengkungan kaya yang lebih aman dan fitur (dan saya sarankan seseorang memperbarui jawaban @Jivings karena memiliki visibilitas paling).

Saya menggunakan aurmandan menggalinya. Memiliki semua fitur, aman, dan cli bekerja hampir persis seperti pacman. Untuk memasang:

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

Kemudian Anda dapat mengikuti panduan pacman hampir persis tetapi menggunakan aurmanbukan pacman. Panduan berikut diambil dari https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management dan membuat saya memulai:


Mulai

Arch Linux menyediakan fasilitas manajemen paket yang mirip dengan yang ditemukan di distribusi Linux modern lainnya. Ini adalah panduan untuk operasi manajemen paket umum.

Sebelum melangkah lebih jauh, pastikan database paket Anda mutakhir dengan:

sudo pacman -Sy

Mencari

Mengunggulkan singkatnya intuitif, sebagian besar operasi manajemen paket di Arch Linux muncul dalam format:

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

Sebagai contoh, perintah normal untuk mencari repositori pacman adalah

pacman -Ss <package> 

...

Atau, Anda dapat menggunakan pacman -Qs dengan sisi negatifnya tanpa penyorotan warna.

pacman -Qs linux

Jika Anda ingin menyoroti warna dengan pacman -Ss, Anda dapat membatalkan komentar Color dari /etc/pacman.conf. Itu menyoroti hal-hal yang berbeda dari pacsearch, jadi Anda mungkin ingin mencoba keduanya dan melihat mana yang Anda sukai.

sudo vi /etc/pacman.conf

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

Mendapatkan informasi

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 <[email protected]>
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

Jika pacman -Qi dilewatkan tanpa argumen, ia mengembalikan semua paket dalam sistem. Anda dapat mencari output ini untuk mendapatkan informasi khusus tentang paket yang diinstal.

Misalnya, jika Anda ingin mendapatkan setiap paket dan ukurannya:

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

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

...

Sementara pacman -Qi memberikan informasi tentang paket yang diinstal, pacman -Si menanyakan database untuk informasi yang paling baru diambil tentang suatu paket.

pacman -Si linux

pacman -Ql mencantumkan semua file yang terkait dengan paket.

pacman -Ql vi

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

...

Nama paket pada setiap baris dapat membuat output lebih sulit untuk digunakan dalam skrip. pacman -Qlq (yaitu "daftar permintaan pacman, tenang") tidak akan mencetak nama paket.

pacman -Qlq vi

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

...

Anda dapat menggunakan pacman -Qlq | grep bin untuk menemukan semua file dalam paket yang ada di folder bin (dan dengan demikian kemungkinan merupakan file yang dapat dieksekusi). Ini berguna ketika perintah yang terkait dengan suatu paket berbeda dari nama paket.

pacman -Qql pacman | grep bin

Menginstal

Cara khas untuk menginstal atau meningkatkan paket standar adalah pacman -S.

sudo pacman -S <package>

Paket sering memiliki pola yang sama dalam namanya. Kurung dapat digunakan sebagai jalan pintas.

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

Terkadang Anda mungkin ingin mengunduh paket untuk keperluan arsip tanpa menginstalnya. pacman -Sw akan mengunduh paket ke folder cache.

sudo pacman -Sw <package>

Jika suatu paket telah diunduh, atau jika Anda mengetahui url, Anda dapat menginstalnya secara langsung.

sudo pacman -U <package_path>

Upgrade

Karena pacman berputar di sekitar gagasan "menyinkronkan" sebuah paket dengan repositori jarak jauh, pacman -Sakan memutakhirkan sebuah paket jika sudah diinstal.

Pacman dapat mendaftar paket yang kedaluwarsa.

pacman -Qu

Sayangnya, itu tidak menampilkan versi paket di repositori, jadi Anda tidak akan dapat mengetahui seberapa lama setiap paket. Jika ini penting bagi Anda, Anda mungkin ingin melihat ke manajer paket pihak ke-3 atau menulis skrip yang menyatukan versi paket yang diperoleh dari pacman -Qi dan pacman -Si.

Anda bisa mendapatkan versi dari pacman -Qi atau pacman -Si menggunakan ekspresi reguler.

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

3.8.4-1

Dan kemudian menulis skrip yang menunjukkan versi berdampingan.

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 menyediakan cara untuk memutakhirkan semua paket Anda sekaligus, tetapi tidak disarankan karena Arch adalah distribusi rilis bergulir. Jika masalah muncul, perlu waktu untuk menentukan apa penyebabnya.

sudo pacman -Syu

Downgrade

Arch Linux tidak secara resmi memelihara paket-paket yang sudah tidak digunakan lagi. Sebagai gantinya, Anda harus mengandalkan cache paket dan tempat-tempat seperti Arch Rollback Machine. Cache

Setiap paket yang diunduh dengan pacman disimpan di / 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

...

Jika Anda ingin kembali ke paket di cache, cukup instal secara langsung.

pacman -U <path_to_cached_file>

Mesin Rollback Lengkungan

Arch Rollback Machine adalah kumpulan snapshot dari mirror resmi Arch Linux. Pada tulisan ini, itu kembali empat bulan. ARM saat ini dihosting di http://seblu.net/a/arm , meskipun ini dapat berubah di masa mendatang.

Paket ARM dapat diinstal dari jarak jauh menggunakan 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

Sebenarnya tidak nyaman untuk menelusuri ARM untuk paket yang lebih lama. Untungnya, ada alat yang mempermudah ini:

downgrade
downgrader

Mereka mencari versi lama di cache dan ARM. Penggunaannya adalah apa yang Anda harapkan.

downgrade <package>
downgrader <package>

Kedua alat berada di AUR, jadi cara termudah untuk menginstalnya adalah dengan bantuan seperti yaourt.

Catatan: ARM adalah proyek tidak resmi dan telah ditutup di masa lalu, jadi mungkin ide yang baik untuk menghindari membersihkan cache Anda jika ARM turun atau mengubah lokasi lagi. Jika Anda ingin melempar ARM Anda sendiri, tampaknya ada proyek NodeJS di github. Pemindahan

Hapus paket, asalkan tidak ada yang bergantung padanya. Biarkan dependensinya terinstal.

sudo pacman -R <package>

Hapus paket, asalkan tidak ada yang bergantung padanya. Hapus ketergantungannya yang tidak diperlukan oleh hal lain.

sudo pacman -Rs <package>

Penghapusan paksa suatu paket. Ini adalah perintah yang akan Anda hubungi untuk hanya menghapus paket dari sistem Anda dan menginstal ulang ketika menginstal ulang saja tidak cukup.

sudo pacman -Rdd <package>
mjd2
sumber
Untuk menghapus paket sepenuhnya :aurman -Rsn <package>
mjd2
0

Hal pertama yang perlu Anda lakukan adalah mengunduh paket dari AUR. Untuk menjalankannya: git clone http://aur.archlinux.org/package.gitWalaupun sepertinya Anda mengunduh .gitfile, hasilnya akan berupa direktori.

cd packageuntuk menemukan PKGBUILDfile. Ini akan digunakan pada langkah selanjutnya.

Terakhir, jalankan perintah ini untuk mengkompilasi dan menginstal paket yang baru saja Anda unduh. makepkg -Sri. Jika Anda menginginkan penjelasan komprehensif tentang arti masing-masing surat tersebut, Anda dapat menjalankannya di makepkg -hmana semuanya akan dijelaskan.

Ashish
sumber
2
Selamat datang di Stack Exchange, Ashish .. dapatkah Anda menjelaskan sedikit tentang jawaban Anda - mengapa hal di atas perlu dilakukan, apa yang dilakukan pernyataan, dll?
Phil B.