Jak zainstalować pakiety z AUR?

61

Arch Linux ma AUR (Arch User Repository), kolekcję pakietów zbudowanych przez użytkownika. Jak jednak zainstalować te pakiety w Arch Linux ARM?

Ghanima
źródło
2
Wygląda na to, że istnieje wiele pakietów aur już dostarczonych za pośrednictwem repozytorium „aur”. Znalazłem to przez przypadek. pacman -S twój pakiet może faktycznie działać. Działa na przykład z cower i gmrender-resurrect-git.
enigmatyczny

Odpowiedzi:

53

Zgodnie ze stroną Building Packages z Arch Linux ARM, musisz to zrobić.

  1. Zainstaluj niezbędne elementy kompilacji. Są one potrzebne do kompilacji pakietów na Arch Linux ARM.

    $ sudo pacman -S kernel26-headers file base-devel abs
    
  2. Uzyskaj PKGBUILD. Musisz pobrać archiwum, które chcesz. Możesz znaleźć pliki tar dla programów na AUR .

  3. Zrób paczki. Następnie musisz uruchomić makepkg, aby wygenerować pakiet, który Pacman może zainstalować.

    $ makepkg -Acs
    

    -AOpcja ignoruje Arch docelową architekturę. Ta -copcja czyści katalog po zakończeniu makepkgi -sinstaluje niezbędne zależności.

    Zaleca się, aby NIE uruchamiać się makepkgjako root, ponieważ może to spowodować trwałe uszkodzenie systemu. Jeśli naprawdę chcesz uruchomić go jako root, skorzystaj z --asrootopcji.

  4. Zainstaluj pakiet. makepkgpowinien utworzyć plik w katalogu o typie pliku .pkg.tar.xz. Powinieneś zainstalować ten pakiet, używając -Uopcji z pacman.

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

    Pamiętaj, aby zastąpić x.pkg.tar.xzrzeczywistą nazwą pakietu.


źródło
Ręczne budowanie pakietów zdecydowanie nie jest zalecane dla początkujących użytkowników. W rzeczywistości każdy powinien korzystać z Yaourt. To sprawia, że ​​cały proces jest prosty.
Jivings,
Nadal potrzebujesz tych pakietów i do edycji PKGBUILD w celu skompilowania dla arch armv6h.
Anglepoise
5
@ Jivings Właściwie jedynym powodem, dla którego nie jesteś w oficjalnym repozytorium twojego i innych pomocników AUR, jest to, że powinieneś nauczyć się instalować obce pakiety ręcznie przed użyciem automatycznego narzędzia.
PyRulez,
2
Pakiet „abs” nie jest obecny w repozytorium
dmnc
czy kernel26-headerswciąż jest aktualne? Nie znalazłem nic na ten temat w Google. A grupa base-develzawiera file.
user3123159,
34

Najłatwiejszym rozwiązaniem jest użycie Yaourt (Yet AnOther User Repository Tool) .

Możesz zainstalować za pomocą:

pacman -S yaourt

A następnie zsynchronizuj z AUR:

yaourt -Syy

Następnie możesz wyszukać pakiety AUR:

yaourt package-name

Który zapewni interaktywne monity o instalację.

Lub jeśli dokładnie znasz nazwę pakietu:

yaourt -S package-name

Większość poleceń Pacmana jest taka sama dla twojego.

Jivings
źródło
Jaka jest różnica między pacmani yaourt?
Alex Chamberlain,
Yaourt sprawdza również AUR, a także oficjalne repozytoria. Pakiety AUR mają również więcej możliwości dostosowywania.
Jivings,
To już nie działa. Jakie jest oficjalne rozwiązanie?
tekknolagi
2
pacman -S yaourtnie działa i nie mogę dodać, archlinuxfrponieważ najwyraźniej nie armv6h
hostują
1
@tekknolagi yaourtbył w głównym repozytorium Arch Arm. Być może usunęli go ... Ale nadal możesz go zbudować ze źródła, co wyjaśniono w artykule AUR na Arch Wiki. I nie jest to plik pakietu dla niego tutaj . Mam nadzieję że to pomogło!
Jivings
10

Wszystkie powyższe odpowiedzi są nieaktualne. Moja odpowiedź nie jest zbyt dobra, ale mam nadzieję, że unika się problemu przestarzałości.

Oficjalnym wiki wyjaśnia szczegółowo, jak idzie o instalowanie / budowania pakietu, który nie jest częścią Pacman (pakującego i yaourt począwszy od tej daty).

Zarówno pakujący, jak i twój są oznaczone jako nieaktualne w AUR. (może się to zmienić w przyszłości).

PPPaul
źródło
Dobra odpowiedź! Polecam również użycie makepkg -si (po sprawdzeniu pliku PKGBUILD)
smoothware
7

Używam do tego celu pakera, który moim zdaniem jest szybszą alternatywą dla twojego.

Po prostu dodaj te dwa wiersze do /etc/pacman.conf:

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

Następnie możesz zainstalować / zaktualizować pakiet za pomocą pacman:

# pacman -Sy packer

I użyj packera w taki sam sposób, jak używasz pacmana:

$ packer -S some_aur_package

Również jeśli nie chcesz aktualizować wszystkich pakietów, w tym tych z AUR:

$ packer -Syu

Packer najpierw uruchomi pacman -Syuaktualizację pakietów z oficjalnych repozytoriów, a następnie zaktualizuje wszystkie pakiety AUR.

brkt
źródło
4

WAŻNY! yaourtjest niepewny i przestarzały zgodnie z wiki: https://wiki.archlinux.org/index.php/AUR_helpers

Podczas gdy odpowiedź @Jivings była najlepsza już w `12, zalecałbym zainstalowanie jednego z bezpieczniejszych i bogatszych w funkcje menedżerów pakietów arch (sugeruję, aby ktoś zaktualizował odpowiedź @Jivings, ponieważ ma największą widoczność).

Używam aurmani kopię to. Ma wszystkie funkcje, jest bezpieczny, a cli działa prawie dokładnie tak, jak Pacman. Żeby zainstalować:

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

Następnie możesz postępować zgodnie z przewodnikiem Pacmana prawie dokładnie, ale używając aurmanzamiast Pacmana. Poniższy przewodnik został zaczerpnięty z https://www.digitalocean.com/community/tutorials/how-to-use-arch-linux-package-management i dał mi początek:


Pierwsze kroki

Arch Linux zapewnia funkcje zarządzania pakietami podobne do tych, które można znaleźć w innych współczesnych dystrybucjach Linuksa. Jest to przewodnik po typowych operacjach zarządzania pakietami.

Zanim przejdziesz dalej, upewnij się, że twoje bazy danych pakietów są aktualne:

sudo pacman -Sy

Badawczy

Preferując zwięzłość w stosunku do intuicyjności, większość operacji zarządzania pakietami w Arch Linux ma format:

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

Na przykład normalne polecenie przeszukiwania repozytoriów Pacmana to

pacman -Ss <package> 

...

Alternatywnie możesz użyć pacman -Qs z wadą braku podświetlania kolorów.

pacman -Qs linux

Jeśli chcesz wyróżniać kolory za pomocą pacman -Ss, możesz odkomentować Kolor z /etc/pacman.conf. Podkreśla jednak inne rzeczy niż pacsearch, więc możesz spróbować obu i zobaczyć, który z nich bardziej Ci się podoba.

sudo vi /etc/pacman.conf

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

Zbierać informacje

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

Jeśli pacman -Qi nie zostanie przekazany bez argumentów, zwróci wszystkie pakiety w systemie. Możesz przeszukać to wyjście, aby uzyskać specjalistyczne informacje o zainstalowanych pakietach.

Na przykład, jeśli chcesz uzyskać każdą paczkę i jej rozmiar:

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

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

...

Podczas gdy pacman -Qi dostarcza informacji o zainstalowanych pakietach, pacman -Si odpytuje bazę danych w celu uzyskania ostatnio pobranych informacji o pakiecie.

pacman -Si linux

pacman -Ql wyświetla wszystkie pliki związane z pakietem.

pacman -Ql vi

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

...

Nazwa pakietu w każdym wierszu może utrudnić użycie wyjścia w skrypcie. pacman -Qlq (tzn. „lista zapytań pacman, cichy”) nie wydrukuje nazwy pakietu.

pacman -Qlq vi

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

...

Możesz użyć pacman -Qlq | grep bin, aby znaleźć wszystkie pliki w tym pakiecie, które znajdują się w folderze bin (a zatem prawdopodobnie są plikami wykonywalnymi). Jest to przydatne, gdy polecenie powiązane z pakietem różni się od nazwy pakietu.

pacman -Qql pacman | grep bin

Instalowanie

Typowym sposobem instalacji lub aktualizacji standardowego pakietu jest pacman -S.

sudo pacman -S <package>

Paczki często mają podobny wzór w swoich nazwach. Wsporniki mogą być używane jako skrót.

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

Czasami możesz po prostu pobrać pakiet do celów archiwalnych bez instalowania go. pacman -Sw pobierze pakiet do folderu pamięci podręcznej.

sudo pacman -Sw <package>

Jeśli pakiet został pobrany lub znasz adres URL, możesz zainstalować go bezpośrednio.

sudo pacman -U <package_path>

Ulepszenia

Ponieważ pacman krąży wokół idei „synchronizacji” pakietu ze zdalnym repozytorium, pacman -Szaktualizuje pakiet, jeśli jest już zainstalowany.

Pacman może wyświetlić listę nieaktualnych pakietów.

pacman -Qu

Niestety nie wyświetla wersji pakietu w repozytorium, więc nie będziesz w stanie stwierdzić, jak nieaktualny jest każdy pakiet. Jeśli jest to dla Ciebie ważne, możesz zajrzeć do zewnętrznych menedżerów pakietów lub napisać skrypt, który łączy wersję pakietu uzyskaną od pacman -Qi i pacman -Si.

Możesz pobrać wersję z pacman -Qi lub pacman -Si przy użyciu wyrażenia regularnego.

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

3.8.4-1

A potem napisz skrypt, który pokazuje wersje obok siebie.

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 zapewnia sposób na uaktualnienie wszystkich pakietów jednocześnie, ale nie jest to zalecane, ponieważ Arch jest dystrybucją w wersji ciągłej. Jeśli pojawią się problemy, ustalenie przyczyn może zająć trochę czasu.

sudo pacman -Syu

Obniżki

Arch Linux nie utrzymuje oficjalnie przestarzałych pakietów. Zamiast tego będziesz musiał polegać na pamięci podręcznej pakietów i miejscach takich jak Arch Rollback Machine. Pamięć podręczna

Każda paczka pobrana z pacmanem jest przechowywana w / 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

...

Jeśli chcesz przywrócić pakiet w pamięci podręcznej, po prostu zainstaluj go bezpośrednio.

pacman -U <path_to_cached_file>

Maszyna do cofania łuków

Arch Rollback Machine to zbiór migawek oficjalnego serwera lustrzanego Arch Linux. W chwili pisania tego tekstu cofnie się o cztery miesiące. ARM jest obecnie hostowany pod adresem http://seblu.net/a/arm , choć może się to zmienić w przyszłości.

Pakiety ARM można instalować zdalnie za pomocą 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

Przeglądanie ARM w poszukiwaniu starszych pakietów nie jest wygodne. Na szczęście istnieją narzędzia, które to ułatwiają:

downgrade
downgrader

Szukają starszych wersji w pamięci podręcznej i ARM. Ich użycie jest zgodne z oczekiwaniami.

downgrade <package>
downgrader <package>

Oba narzędzia są w AUR, więc najłatwiejszym sposobem ich zainstalowania jest pomocnik taki jak yaourt.

Uwaga: ARM to nieoficjalny projekt, który został zamknięty w przeszłości, więc dobrym pomysłem może być uniknięcie czyszczenia pamięci podręcznej na wypadek, gdyby ARM spadł lub ponownie zmienił lokalizację. Jeśli chcesz rzucić własny ARM, wydaje się, że na github istnieje projekt NodeJS. Usuwanie

Usuń paczkę, pod warunkiem, że nic nie zależy od niej. Pozostaw zainstalowane zależności.

sudo pacman -R <package>

Usuń paczkę, pod warunkiem, że nic nie zależy od niej. Usuń jego zależności, które nie są wymagane przez nic innego.

sudo pacman -Rs <package>

Wymuś usunięcie pakietu. Jest to polecenie, do którego sięgniesz, aby po prostu wyczyścić pakiet z systemu i ponownie zainstalować, gdy sama ponowna instalacja nie wystarczy.

sudo pacman -Rdd <package>
mjd2
źródło
Aby całkowicie usunąć pakiet:aurman -Rsn <package>
mjd2
0

Pierwszą rzeczą, którą musisz zrobić, to pobrać pakiet z AUR. Aby to zrobić: git clone http://aur.archlinux.org/package.gitMimo że wygląda na to, że pobierasz .gitplik, wynikiem będzie katalog.

cd packageznaleźć PKGBUILDplik. Zostanie to wykorzystane w następnym kroku.

Na koniec uruchom to polecenie, aby skompilować i zainstalować właśnie pobrany pakiet. makepkg -Sri. Jeśli potrzebujesz kompleksowego wyjaśnienia znaczenia każdej z tych liter, możesz pobiec makepkg -htam, gdzie zostaną wyjaśnione wszystkie.

Ashish
źródło
2
Witamy w Stack Exchange, Ashish ... czy możesz trochę rozwinąć swoją odpowiedź - dlaczego miałoby być zrobione powyższe, co robią instrukcje itp.?
Phil B.