Repozytorium Użytkowników Archa

Repozytorium Użytkowników Archa (AUR) jest repozytorium kierowanym przez społeczność dla użytkowników Archa. Zawiera ono opisy pakietów (PKGBUILDs), które pozwalają skompilować pakiet ze źródła za pomocą makepkg, a następnie zainstalować go za pomocą pacmana. AUR został stworzony by organizować i udostępniać nowe pakiety od społeczności oraz by pomóc w przyspieszeniu włączenia popularnych pakietów do repozytorium społeczności. Ten dokument wyjaśnia jak użytkownicy mogą uzyskać dostęp i korzystać z AUR.

Duża liczba nowych pakietów, które trafiają do oficjalnych repozytoriów zaczyna się w AUR. W AUR, użytkownicy są w stanie wnieść swoje własne kompilacje pakietów (PKGBUILD i powiązane pliki). Społeczność AUR ma możliwość głosowania na pakiety w AUR. Jeśli pakiet stanie się wystarczająco popularny – pod warunkiem, że ma zgodną licencję i dobrą technikę pakowania – może zostać wprowadzony do repozytorium społeczności (bezpośrednio dostępny przez pacman lub abs).

Ostrzeżenie: Pakiety AUR są zawartością wytworzoną przez użytkownika. Te PKGBUILDs są całkowicie nieoficjalne i nie zostały dokładnie sprawdzone. Każde użycie dostarczonych plików jest na własne ryzyko.

Zaczynamy

Użytkownicy mogą wyszukiwać i pobierać PKGBUILD z interfejsu WWW AUR. Te PKGBUILDpakiety mogą być zbudowane w instalowalne pakiety przy użyciu makepkg, a następnie zainstalowane przy użyciu pacman.

  • Upewnij się, że grupa pakietów base-devel jest zainstalowana w całości (pacman -S --needed base-devel).
  • Przeglądnij #FAQ w celu uzyskania odpowiedzi na najczęściej zadawane pytania.
  • Możesz dostosować /etc/makepkg.confdo optymalizacji procesu budowania do twojego systemu przed budowaniem pakietów z AUR. Znacząca poprawa czasu kompilacji pakietów może być osiągnięta na systemach z procesorami wielordzeniowymi przez dostosowanie zmiennej MAKEFLAGS, przez użycie wielu rdzeni do kompresji, lub przez użycie innego algorytmu kompresji. Użytkownicy mogą także włączyć specyficzne dla sprzętu optymalizacje kompilatora poprzez zmienną CFLAGS. Zobacz makepkg#Tips and tricks, aby uzyskać więcej informacji.

Możliwa jest również interakcja z AUR przez SSH: wpisz ssh [email protected] help, aby uzyskać listę dostępnych poleceń.

Historia

Na początku było ftp://ftp.archlinux.org/incoming, a ludzie wnosili swój wkład po prostu przesyłając PKGBUILD, potrzebne pliki uzupełniające i sam zbudowany pakiet na serwer. Pakiet i związane z nim pliki pozostawały tam, dopóki Opiekun Pakietu nie zobaczył programu i nie zaadoptował go.

Wtedy narodziły się Repozytoria Zaufanych Użytkowników. Pewne osoby w społeczności mogły prowadzić swoje własne repozytoria, z których każdy mógł korzystać. AUR rozwinął się na tej podstawie, w celu uczynienia go zarówno bardziej elastycznym, jak i bardziej użytecznym. W rzeczywistości opiekunowie AUR są nadal określani jako TUs (Trusted Users).

Pomiędzy 2015-06-08 a 2015-08-08 AUR przeszedł z wersji 3.5.1 do 4.0.0, wprowadzając użycie repozytoriów Git do publikowania PKGBUILDs.Istniejące pakiety zostały porzucone, chyba że zostały ręcznie zmigrowane do nowej infrastruktury przez ich opiekunów.

Repozytoria Git dla pakietów AUR3

Archiwum AUR na GitHubie posiada repozytorium dla każdego pakietu, który był w AUR 3 w czasie migracji.Alternatywnie, istnieje repozytorium aur3-mirror, które zapewnia to samo.

Instalacja i aktualizacja pakietów

Instalacja pakietów z AUR jest stosunkowo prostym procesem. Zasadniczo:

  1. Pobierz pliki budowania, w tym PKGBUILD i ewentualnie inne wymagane pliki, takie jak jednostki systemd i poprawki (często nie jest to rzeczywisty kod).
  2. Sprawdź, czy PKGBUILD i towarzyszące mu pliki nie są złośliwe lub niegodne zaufania.
  3. Uruchom makepkg -si w katalogu, w którym zapisane są pliki. Spowoduje to pobranie kodu, określenie zależności za pomocą programu pacman, skompilowanie go, spakowanie i zainstalowanie pakietu.
Uwaga: AUR jest niewspierany, więc za aktualizację wszystkich zainstalowanych pakietów odpowiedzialny jest użytkownik, a nie program pacman. Jeśli pakiety w oficjalnych repozytoriach zostaną zaktualizowane, będziesz musiał przebudować wszystkie pakiety AUR, które zależą od tych bibliotek.

Warunki wstępne

Najpierw upewnij się, że niezbędne narzędzia są zainstalowane przez pełną instalację grupy base-devel, która zawiera make i inne narzędzia potrzebne do kompilacji ze źródła.

Wskazówka: Użyj flagi --needed podczas instalacji grupy base-devel, aby pominąć pakiety, które już posiadasz, zamiast instalować je ponownie.
Uwaga: Pakiety w AUR zakładają, że grupa base-devel jest zainstalowana, tzn. nie wymieniają członków grupy jako zależności kompilacji jawnie.

Następnie wybierz odpowiedni katalog kompilacji. Katalog build jest po prostu katalogiem, w którym pakiet zostanie stworzony lub „zbudowany” i może być dowolnym katalogiem. Przykłady w następnych sekcjach użyją ~/builds jako katalogu budowania.

Pobierz pliki budowania

Znajdź pakiet w AUR. Można to zrobić za pomocą pola wyszukiwania na górze strony głównej AUR. Kliknięcie nazwy aplikacji na liście wyszukiwania spowoduje wyświetlenie strony z informacjami o pakiecie. Przeczytaj opis, aby potwierdzić, że jest to pożądany pakiet, zauważ, kiedy pakiet był ostatnio aktualizowany i przeczytaj wszelkie komentarze.

Istnieje kilka metod pozyskiwania plików kompilacji dla pakietu:

  • Klonuj jego repozytorium git, oznaczone jako „Git Clone URL” w „Szczegółach pakietu” na stronie AUR. Jest to preferowana metoda, której zaletą jest to, że można łatwo uzyskać aktualizacje do pakietu przez git pull.
$ git clone https://aur.archlinux.org/package_name.git
  • Pobierz snapshot, albo klikając link „Pobierz snapshot” pod „Akcje pakietu” po prawej stronie jego strony AUR, albo w terminalu:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Uwaga: Plik snapshota jest skompresowany, i musi być rozpakowany (najlepiej w katalogu przeznaczonym do budowania AUR): tar -xvf package_name.tar.gz

Pozyskać klucz publiczny PGP, jeśli jest potrzebny

Sprawdzić, czy plik podpisu w postaci .sig lub .asc jest częścią tablicy źródeł PKGBUILD, jeśli tak, to pozyskać jeden z kluczy publicznych wymienionych w tablicy PKGBUILD validpgpkeys. Odnieś się do makepkg#Sprawdzanie podpisu po więcej informacji.

Zbuduj i zainstaluj pakiet

Zmień katalogi na katalog zawierający PKGBUILD pakietu.

$ cd package_name
Ostrzeżenie: Dokładnie sprawdź PKGBUILD, wszelkie pliki .install, i wszelkie inne pliki w repozytorium git pakietu pod kątem złośliwych lub niebezpiecznych poleceń. Jeśli masz wątpliwości, nie buduj pakietu i poszukaj porady na forum lub liście mailingowej. Złośliwy kod był już wcześniej znajdowany w pakietach.

Przeglądaj zawartość wszystkich dostarczonych plików. Na przykład, aby użyć pager less do obejrzenia PKGBUILD zrób:

$ less PKGBUILD
Wskazówka: Jeśli aktualizujesz pakiet, możesz chcieć spojrzeć na zmiany od ostatniego commitu.

  • Aby zobaczyć zmiany od ostatniego commitu git możesz użyć git show.
  • Aby zobaczyć zmiany od ostatniego commitu używając vimdiff, zrób git difftool @~..@ vimdiff. Zaletą vimdiff jest to, że widzisz całą zawartość każdego pliku wraz ze wskaźnikami, co się zmieniło.

Zrób pakiet. Po ręcznym potwierdzeniu zawartości plików, uruchom makepkg jako normalny użytkownik:

$ makepkg -si
  • -s/--syncdeps automatycznie rozwiązuje i instaluje wszelkie zależności za pomocą pacmana przed budową. Jeśli pakiet zależy od innych pakietów AUR, będziesz musiał je najpierw zainstalować ręcznie.
  • -i/--install instaluje pakiet, jeśli zostanie on zbudowany pomyślnie. Alternatywnie, zbudowany pakiet może być zainstalowany przy pomocy pacman -U package_name.pkg.tar.zst.

Inne użyteczne flagi to

  • -r/--rmdeps usuwa zależności po kompilacji, ponieważ nie są one już potrzebne. Jednakże te zależności mogą wymagać ponownej instalacji przy następnej aktualizacji pakietu.
  • -c/--clean czyści tymczasowe pliki kompilacji po kompilacji, ponieważ nie są one już potrzebne. Pliki te są zwykle potrzebne tylko podczas debugowania procesu kompilacji.

Uwaga: Powyższy przykład jest tylko krótkim podsumowaniem procesu kompilacji. Zaleca się przeczytanie artykułów makepkg i ABS po więcej szczegółów.

Upgrade pakietów

W katalogu zawierającym PKGBUILD pakietu musisz najpierw zaktualizować pliki i zmiany używając komendy

$ git pull

a następnie uruchomić

$ makepkg -si

aby zaktualizować pakiet.

Komentowanie pakietów

Komentowanie pakietów

Interfejs WWW AUR posiada obiekt komentarzy, który pozwala użytkownikom na dostarczanie sugestii i opinii na temat ulepszeń dla współtwórcy PKGBUILD.

Wskazówka: Unikaj wklejania patchy lub PKGBUILDs do sekcji komentarzy: szybko stają się one przestarzałe i niepotrzebnie zajmują dużo miejsca. Zamiast tego wyślij te pliki mailem do opiekuna, lub nawet użyj pastebin.

Python-Markdown dostarcza podstawowej składni Markdown do formatowania komentarzy.

Uwaga:

  • Ta implementacja ma pewne sporadyczne różnice z oficjalnymi zasadami składni.
  • Commit hashes do repozytorium Git pakietu i odniesienia do biletów Flyspray są automatycznie konwertowane na odnośniki.
  • Długie komentarze są zwijane i mogą być rozwijane na żądanie.

Głosowanie na pakiety

Jedną z najprostszych czynności dla wszystkich użytkowników Archa jest przeglądanie AUR i głosowanie na swoje ulubione pakiety za pomocą interfejsu online. Wszystkie pakiety kwalifikują się do przyjęcia przez TU w celu włączenia do repozytorium społeczności, a liczba głosów jest jednym z czynników w tym procesie; w interesie każdego jest głosowanie!

Zarejestruj się na stronie AUR aby uzyskać opcję „Głosuj na ten pakiet” podczas przeglądania pakietów. Po zarejestrowaniu się możliwe jest również głosowanie z linii poleceń za pomocą aurvoteAUR, aurvote-gitAUR lub aur-auto-vote-gitAUR.

Alternatywnie, jeśli masz ustawione uwierzytelnianie ssh, możesz głosować bezpośrednio z linii poleceń używając swojego klucza ssh. Oznacza to, że nie będziesz musiał zapisywać lub wpisywać swojego hasła do AUR.

$ ssh [email protected] vote package_name

Zgłaszanie pakietów jako nieaktualne

Po pierwsze, powinieneś zgłosić pakiet jako nieaktualny, podając szczegóły dlaczego pakiet jest nieaktualny, najlepiej łącznie z linkami do zapowiedzi wydania lub tarballa nowego wydania.

Powinieneś także spróbować skontaktować się z opiekunem bezpośrednio przez email. Jeśli nie ma odpowiedzi od opiekuna po dwóch tygodniach, możesz złożyć prośbę o osierocenie. Zobacz AUR submission guidelines#Requests po szczegóły.

Uwaga: Pakiety VCS nie są uważane za nieaktualne kiedy pkgver się zmienia i nie powinny być oznaczane w tym przypadku.

Usuwanie procesu budowania pakietów

  1. Upewnij się, że twoje środowisko budowania jest aktualne poprzez aktualizację przed rozpoczęciem budowania czegokolwiek.
  2. Upewnij się, że masz zainstalowaną grupę base-devel.
  3. Użyj opcji -s z makepkg, aby sprawdzić i zainstalować wszystkie zależności potrzebne przed rozpoczęciem procesu budowania.
  4. Spróbuj domyślną konfigurację makepkg.
  5. Zobacz Makepkg#Troubleshooting dla typowych problemów.

Jeśli masz problemy z budową pakietu, najpierw przeczytaj jego PKGBUILD i komentarze na jego stronie AUR.

Możliwe, że PKGBUILD jest uszkodzony dla wszystkich. Jeśli nie możesz sam tego rozgryźć, zgłoś to opiekunowi (np. umieszczając błędy, które dostajesz w komentarzach na stronie AUR). Możesz także szukać pomocy na forum AUR Issues, Discussion & PKGBUILD Requests.

Przyczyna może nie być trywialna. Niestandardowe CFLAGS, LDFLAGS i MAKEFLAGS mogą powodować awarie. Aby uniknąć problemów spowodowanych przez twoją szczególną konfigurację systemu, buduj pakiety w czystym chroot. Jeśli proces kompilacji nadal nie powiedzie się w czystym chroot, problem jest prawdopodobnie związany z PKGBUILD.

Patrz Tworzenie pakietów#Sprawdzanie poprawności pakietów o używaniu namcap. Jeśli chciałbyś, aby PKGBUILD został przejrzany, opublikuj go na liście dyskusyjnej aur-general, aby uzyskać opinie TUs i innych członków AUR, lub na forum Tworzenie & Modyfikowanie pakietów. Możesz także szukać pomocy na kanale IRC #archlinux-aur na Freenode.

Zgłaszanie pakietów

Użytkownicy mogą dzielić się PKGBUILDami używając Arch User Repository. Zobacz wytyczne zgłaszania pakietów do AUR po szczegóły.

Tłumaczenie interfejsu WWW

Zobacz i18n.txt w drzewie źródeł AUR dla informacji o tworzeniu i utrzymywaniu tłumaczeń interfejsu WWW AUR.

FAQ

Jakie pakiety są dozwolone na AUR?

Pakiety na AUR są po prostu „skryptami budowania”, czyli przepisami na budowanie binariów dla pacmana. W większości przypadków, wszystko jest dozwolone, z zastrzeżeniem użyteczności i wytycznych dotyczących zakresu, tak długo jak jesteś w zgodzie z warunkami licencjonowania zawartości. W innych przypadkach, gdzie jest wspomniane, że „nie wolno linkować” do pobranych plików, tj. treści, które nie są redystrybuowalne, możesz użyć tylko samej nazwy pliku jako źródła. Oznacza to i wymaga, aby użytkownicy mieli już zastrzeżone źródło w katalogu budowania przed zbudowaniem pakietu. W razie wątpliwości, pytaj.

Jak mogę głosować na pakiety w AUR?

Zobacz #Głosowanie na pakiety.

Co to jest Użytkownik Zaufany / TU?

Użytkownik Zaufany, w skrócie TU, jest osobą, która została wybrana do nadzorowania AUR i repozytorium społeczności. Są oni tymi, którzy utrzymują popularne PKGBUILD’y w społeczności, i ogólnie utrzymują AUR w ruchu.

Jaka jest różnica między Repozytorium Użytkownika Arch a repozytorium społeczności?

Repozytorium użytkowników Archa jest miejscem, gdzie przechowywane są wszystkie PKGBUILD’y, które użytkownicy wysyłają i muszą być budowane ręcznie za pomocą makepkg. Kiedy PKGBUILDs otrzymają wystarczające zainteresowanie społeczności i wsparcie TU, są przenoszone do repozytorium społeczności (utrzymywanego przez TU), gdzie pakiety binarne mogą być instalowane za pomocą pacman.

Foo w AUR jest nieaktualne; co powinienem zrobić?

Patrz #Znakowanie pakietów nieaktualnych.

W międzyczasie, możesz spróbować zaktualizować pakiet samodzielnie, edytując PKGBUILD lokalnie. Czasami aktualizacje nie wymagają zmian w procesie budowania lub pakowania, w takim przypadku wystarczy po prostu zaktualizować tablicę pkgver lub source.

Foo w AUR nie kompiluje się, gdy uruchamiam makepkg; co powinienem zrobić?

Prawdopodobnie brakuje Ci czegoś trywialnego, zobacz #Debugging the package build process.

ERROR: Jedna lub więcej sygnatur PGP nie mogła zostać zweryfikowana!; Co powinienem zrobić?

Najprawdopodobniej nie posiadasz wymaganego klucza(ów) publicznego(ych) w swoim osobistym breloku, aby zweryfikować pobrane pliki. Zobacz Makepkg#Sprawdzanie podpisu po szczegóły.

Jak stworzyć PKGBUILD?

Zapoznaj się z AUR submission guidelines#Rules of submission, następnie zobacz tworzenie pakietów.

Mam PKGBUILD, który chciałbym wysłać; czy ktoś może sprawdzić czy nie ma żadnych błędów?

Jest kilka kanałów dostępnych do przesłania twojego pakietu do sprawdzenia; zobacz #Debugging the package build process.

Jak przenieść PKGBUILD do repozytorium społeczności?

Zwykle wymagane jest co najmniej 10 głosów, aby coś przeszło do społeczności. Jednakże, jeśli TU chce wesprzeć pakiet, często znajdzie się on w repozytorium.

Osiągnięcie wymaganego minimum głosów nie jest jedynym wymogiem, musi być TU chętne do utrzymania pakietu. TU nie są zobowiązane do przeniesienia pakietu do repozytorium społeczności, nawet jeśli ma tysiące głosów.

Zwykle, gdy bardzo popularny pakiet pozostaje w AUR, to dlatego, że:

  • Arch Linux ma już inną wersję pakietu w repozytoriach
  • Jego licencja zabrania redystrybucji
  • Pomaga w odzyskiwaniu PKGBUILDów zgłoszonych przez użytkowników. Pomocnicy AUR są nieobsługiwani z definicji.

Patrz także Zasady dotyczące pakietów wchodzących do community Repo.

Jak mogę przyspieszyć powtarzające się procesy budowania?

Patrz Makepkg#Poprawa czasów kompilacji.

Jaka jest różnica pomiędzy pakietami foo i foo-git?

Wiele pakietów AUR występuje w „stabilnych” wersjach rozwojowych i „niestabilnych”. Pakiety rozwojowe zazwyczaj mają przyrostek oznaczający ich system kontroli wersji i nie są przeznaczone do regularnego użytku, ale mogą oferować nowe funkcje lub poprawki błędów. Ponieważ te pakiety pobierają tylko najnowsze dostępne źródło kiedy wykonujesz makepkg, ich pkgver() w AUR nie odzwierciedla zmian w upstreamie. Podobnie, te pakiety nie mogą wykonać sumy kontrolnej autentyczności na żadnym źródle VCS.

Zobacz także Konserwacja systemu#Używaj sprawdzonych pakietów oprogramowania.

Dlaczego foo zniknęło z AUR?

Możliwe, że pakiet został przyjęty przez TU i znajduje się teraz w repozytorium społeczności.

Pakiety mogą być usuwane, jeśli nie spełniają zasad zgłaszania. Zobacz archiwa aur-requests dla powodu usunięcia.

Uwaga: Repozytorium git dla usuniętego pakietu zazwyczaj pozostaje dostępne. Zobacz AUR submission guidelines#Requests po szczegóły.

Jeśli pakiet istniał kiedyś w AUR3, mógł nie zostać zmigrowany do AUR4. Zobacz repozytoria #Git dla pakietów AUR3 gdzie są one zachowane.

Jak mogę się dowiedzieć czy któryś z moich zainstalowanych pakietów zniknął z AUR?

Najprostszym sposobem jest sprawdzenie statusu HTTP strony AUR pakietu:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

Jak mogę uzyskać listę wszystkich pakietów AUR?

  • Użyj aurpkglist from python3-aurAUR

Zobacz także

  • AUR Web Interface
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.