Co to jest AUR w Arch Linux i czy powinieneś go używać?
Opublikowany: 2023-06-23AUR jest jednym z klejnotów w koronie Arch Linux, dostarczającym tysiące dodatkowych pakietów oprogramowania. Ale czy to repozytorium kierowane przez użytkowników jest bezpieczne w użyciu, czy też należy go unikać?
Co to jest AUR?
Niebezpieczeństwa związane z używaniem AUR
Bezpieczeństwo AUR: Sprawdź szczegóły pakietu i reputację
Sprawdź zawartość pliku PKGBUILD i innych plików
Możesz pomóc innym użytkownikom AUR
Co to jest AUR?
AUR (Arch User Repository) to repozytorium oprogramowania kierowane przez społeczność, które zapewnia użytkownikom Arch Linux ponad 85 000 pakietów oprogramowania. W przeciwieństwie do innych repozytoriów Arch, takich jak repozytoria core, extra i multilib, AUR nie obsługuje pakietów gotowych do zainstalowania. W rzeczywistości w ogóle nie obsługuje plików binarnych ani oprogramowania w pakietach.
AUR hostuje pliki kompilacji pakietów, zwane PKGBUILD. Są to skrypty powłoki uruchamiane przez narzędzie Arch makepkg
. Po uruchomieniu makepkg
szuka pliku o nazwie „PKGBUILD”. Jeśli go znajdzie, otwiera go i postępuje zgodnie z zawartymi w nim instrukcjami, aby utworzyć archiwum pakietu oprogramowania na komputerze. Jeśli jesteś zaznajomiony z kompilowaniem w wierszu poleceń, plik PKGBUILD i makepkg
współpracują ze sobą w podobny sposób jak plik MAKEFILE i narzędzie make
.
Instrukcje PKGBUILD pobierają pliki kodu źródłowego i inne pliki wymagane do utworzenia archiwum pakietu. Narzędzie pacman
jest wywoływane automatycznie w celu zainstalowania oprogramowania z archiwum pakietów.
Ryzykując wprowadzenie zamieszania, niektóre pakiety AUR dostarczają wstępnie skompilowane pliki binarne. Ale te pliki binarne nie są hostowane w AUR, są przechowywane w innym miejscu w Internecie. Wpis AUR dla tych pakietów zawiera tylko plik PKGBUILD, który pobiera wstępnie skompilowany plik binarny na komputer.
AUR pozwala każdemu stworzyć PKGBUILD dla oprogramowania, które chciałby udostępnić innym użytkownikom Arch. Mogą to być otwarte lub zamknięte pakiety źródłowe, a nawet oprogramowanie komercyjne. Pakiety AUR, które uzyskają wystarczającą liczbę głosów użytkowników, mogą zostać promowane do zwykłego repozytorium Arch, zwanego repozytorium społeczności.
Problem z AUR staje się widoczny, gdy sprowadzisz go do podstaw. Jest to zbiór skryptów od przypadkowych użytkowników w Internecie. I chcieliby, żebyś uruchomił je na swoim komputerze.
Aby ograniczyć ryzyko, przesłane skrypty są sprawdzane przez wykwalifikowanych, szanowanych ochotników, zwanych zaufanymi użytkownikami. Zaufani użytkownicy sprawdzają i testują PKGBUILDS oraz usuwają wszelkie zawierające niebezpieczne błędy lub złośliwe zamiary.
POWIĄZANE: Jak zaktualizować Arch Linux
Niebezpieczeństwa związane z używaniem AUR
Jest to bardzo rzadkie zjawisko, ale czasami rzeczy prześlizgują się przez sieć, pomimo staranności zaufanych użytkowników. W 2015 roku skrypt Valve Software Steam wymazał twój katalog domowy, jeśli wcześniej przeniosłeś katalog Steam do nowej lokalizacji.
Bardziej złowieszczy był incydent z 2005 roku, kiedy osierocony pakiet AUR został przejęty przez nowego opiekuna, który celowo dodał złośliwy kod do pliku PKGBUILD. Te przykłady są stare i rzadkie, ale te same rzeczy mogą się powtórzyć.
Oczywiście, jeśli masz wystarczające umiejętności, możesz samodzielnie przejrzeć zawartość pliku PKGBUILD. Ta przejrzystość jest jedną z mocnych stron AUR, ale wymaga wystarczającej wiedzy na temat skryptów, aby z niej skorzystać. Dotyczy to tylko samego pliku PKGBUILD. Jeśli pobiera masę kodu źródłowego aplikacji, teoretycznie należy to również sprawdzić.
Inne niebezpieczeństwa związane z używaniem AUR są oparte na dystrybucji. Nie wszystkie dystrybucje oparte na Arch są wystarczająco podobne do Arch, aby AUR działał bezbłędnie. AUR zakłada, że instaluje się na oryginalnym Arch Linux oraz w pełni załatanej i zaktualizowanej wersji. Na przykład Manjaro oficjalnie nie obsługuje AUR, mimo że jest oparty na Arch.
Ale biorąc pod uwagę, że twoja dystrybucja obsługuje AUR, co możesz zrobić, aby upewnić się, że używasz go tak bezpiecznie, jak to możliwe, niezależnie od tego, czy rozumiesz kod źródłowy i skrypty powłoki, czy nie?
Bezpieczeństwo AUR: Sprawdź szczegóły pakietu i reputację
Nawet bez przeglądu kodu istnieją kroki, które możesz podjąć, aby zdecydować, czy możesz zaufać pakietowi AUR.
Znajdź swoją paczkę na AUR
W AUR jest strona dla każdego pakietu. Strona internetowa pakietu opisuje pakiet, jakie ma zależności, które pakiety są od niego zależne i inne przydatne informacje. Rozpocznij dochodzenie, przechodząc do AUR i szukając swojej paczki.
Jaka jest jego reputacja?
Użytkownicy mogą głosować na pakiety, a każdemu pakietowi przypisywana jest ocena popularności. Im więcej głosów i im większa popularność, tym lepiej. Oznacza to, że pakiet jest dobrze znany i szeroko stosowany. Innymi słowy, jest to renomowany pakiet.
Reputacja pakietu jest dobrym wskaźnikiem jego wiarygodności. Im więcej osób go używa i głosuje na niego, tym bardziej komfortowo możesz się z nim czuć.
Sprawdź daty aktywności
W sekcji „Szczegóły pakietu” zobaczysz jego głosy, wynik popularności i dwie daty. Jednym z nich jest data pierwszego wprowadzenia pakietów do AUR, a drugim data ostatniej aktualizacji pakietu.
Data „ostatniej aktualizacji” poinformuje Cię, czy pakiet jest aktywnie utrzymywany. Paczki, które były uśpione przez długi czas, należy traktować z ostrożnością.
Czy adres URL nadrzędnego adresu URL jest prawidłową lokalizacją?
Sprawdź także „Upstream URL” i upewnij się, że prowadzi do prawidłowej strony internetowej lub repozytorium kodu dla pakietu lub projektu. Jeśli nie, coś jest nie tak.
Przeczytaj komentarze użytkowników
U dołu każdej strony AUR znajdują się komentarze użytkowników. Mogą one rozciągać się na wiele stron. Zobacz, co inni użytkownicy mówią o pakiecie i jakie pytania zadają. Zobacz także, jakie rozwiązania są oferowane w przypadku zgłaszanych problemów. Czy są jakieś ostatnie komentarze? Czy ten pakiet ma jeszcze aktywną bazę użytkowników?
Zarejestruj się i weź udział
Jeśli zarejestrujesz się na AUR i utworzysz bezpłatne konto, będziesz mógł zostawiać komentarze i zadawać pytania. Skorzystaj także z innych zasobów, takich jak fora i subreddity, aby zapytać o pakiet.
Nawet jeśli nie rozumiesz skryptów powłoki, nadal możesz sprawdzić kilka rzeczy.
Sprawdź zawartość pliku PKGBUILD i innych plików
Powszechnym sposobem uzyskiwania dostępu do AUR jest wiersz poleceń „pomocnik AUR”, taki jak yay
, ale można również użyć AUR w praktyczny, ręczny sposób.
Dobrzy pomocnicy AUR dają ci możliwość sprawdzenia pliku PKGBUILD, zatrzymując instalację, jeśli nie chcesz kontynuować. W procesie ręcznym wyszukujesz pakiet w AUR i pobierasz plik PKGBUILD i sprawdzasz go przed użyciem. Jeśli chcesz kontynuować po przejrzeniu go, uruchom makepkg
ręcznie.
Dobrym pomysłem jest ręczne zainstalowanie co najmniej jednego pakietu, aby znać mechanikę tego, co robi pomocnik AUR w tle. Użyjemy pomocnika Yay AUR jako przykładu.
Pakiet został po raz pierwszy przesłany w 2016 r., a ostatnia aktualizacja miała miejsce w maju 2023 r. W chwili pisania tego tekstu jest to bardzo niedawna aktualizacja. Godne uwagi jest również to, że pierwotny zgłaszający, obecny opiekun i ostatnia osoba, która spakowała oprogramowanie, to ta sama osoba. Ta ciągłość to dobry znak.
Kliknij link URL „Git Clone URL” w sekcji „Szczegóły pakietu”, aby skopiować go do schowka.
W oknie terminala wpisz „git clone”, spację, a następnie naciśnij Shift + Ctrl + V, aby wkleić adres URL do wiersza poleceń. Naciśnij „Enter”, aby rozpocząć pobieranie.
klon git https://aur.archlinux.org/yay.git
Po zakończeniu pobierania przejdź do nowego katalogu „yay”.
cd tak
Zobaczmy, jakie mamy pliki.
ls
Jest jeden plik, plik PKGBUILD. Często istnieje jeden lub dwa dodatkowe pliki pomocnicze. Przejrzyj je też. Użyjemy less
, aby przeczytać nasz pojedynczy plik.
mniej PKGBUILD
Jakich adresów URL używa plik PKGBUILD?
Dobrze sformułowany plik PKGBUILD, który jest zgodny z konwencjami, utworzy zmienne do przechowywania adresów URL, których używa. To daje nam zgrabną listę na górze pliku adresów URL, do których odwołuje się PKGBUILD. W tym przypadku jest tylko jeden.
Widzimy, że wskazuje na stronę GitHub dla projektu yay
.
Właścicielem strony GitHub jest użytkownik o tej samej nazwie co opiekun wymieniony na stronie AUR dla tego pakietu. To dwie dobre wskazówki, że jest to bezpieczna paczka.
Ale będziemy kontynuować i spojrzeć trochę głębiej.
Poszukaj poleceń pobierania
Użyj funkcji less
wyszukiwania, aby wyszukać w pliku użycie wget
lub curl
. Oba te narzędzia mogą być używane do pobierania plików zdalnych. Dobrze wychowany PKGBUILD nie powinien mieć takiej potrzeby.
Jeśli znajdziesz jakieś zdarzenia, potraktuj je jako czerwoną flagę i nie instaluj pakietu, dopóki nie będziesz pewien, że jest łagodny. Jaki jest adres URL, do którego odwołują się polecenia wget
lub curl
? Czy wyglądają na uzasadnione i powiązane z paczką?
Jeśli możesz uzyskać potwierdzenie z zaufanego źródła, że PKGBUILD jest godny zaufania i jest po prostu napisany w sposób niezgodny z konwencjami, nadal możesz go zainstalować.
Szukaj rm, mv i innych niebezpiecznych poleceń
Podobnie nie ma potrzeby, aby plik PKGBUILD zawierał polecenia rm
lub mv
, ani nie powinien mieć potrzeby odwoływania się do czegokolwiek w katalogu „/dev”. Jeśli PKGBUILD bezpośrednio wywołuje pacman
lub wspomina systemctl
, systemd
lub jakikolwiek inny ważny składnik systemu, taki jak grub
, potraktuj plik PKGBUILD jako niebezpieczny i nie uruchamiaj go.
Możesz wykonać czynności, których używaliśmy do tej pory, nawet jeśli nie potrafisz czytać skryptów powłoki. Jeśli znasz trochę skryptów powłoki, możesz przejrzeć rzeczywisty kod w pliku PKGBUILD.
Uważaj na zaciemniony kod
Ludzie, którzy piszą złośliwy kod, często próbują ukryć jego intencje, zaciemniając go. Używają minimalistycznej, zwięzłej, nieprzeniknionej składni, więc trudno jest rozszyfrować, co próbują zrobić. Jeśli zobaczysz jakieś linie, które używają przekierowania lub wywołują sed
lub awk
, potraktuj je jako podejrzane.
Skopiowanie tych wierszy i wrzucenie ich do internetowego parsera, takiego jak explainshell.com, rozpakuje je, abyś mógł zobaczyć, co tak naprawdę robią. Jeśli masz do czynienia z gęsto upakowanym bałaganem nawiasów, średników i ampersandów, warto użyć parsera online, aby dwukrotnie sprawdzić, czy poprawnie zinterpretowałeś to, co próbuje zrobić linia. Ale ogólnie trudny do odczytania kod jest znakiem ostrzegawczym.
Twój /home powinien być Twoim zamkiem
PKGBUILD kompiluje i buduje w środowisku chroot
.
Są to izolowane mini systemy plików, które umożliwiają programistom piaskowanie procesów poprzez ograniczenie ich dostępu do reszty systemu plików komputera i ograniczenie dostępu do innych poleceń systemowych.
Jeśli PKGBUILD bezpośrednio manipuluje twoim katalogiem domowym, potraktuj to jako flagę ostrzegawczą. Upewnij się, że w pełni rozumiesz, co robi, zanim zdecydujesz się go uruchomić.
Możesz pomóc innym użytkownikom AUR
Dzięki niezwykle popularnym pakietom istnieje duże prawdopodobieństwo, że będziesz bezpieczny. Ze względu na dużą liczbę użytkowników problemy są szybciej wykrywane i zgłaszane. Możesz wykonać swoją część, zgłaszając wszelkie znalezione problemy i głosując na dobre pakiety, aby poprawić ich reputację.
Jeśli okaże się, że istnieje problem z pakietem, który powoduje, że nie chcesz go instalować, możesz znaleźć się w kropce, ponieważ potrzebujesz tego pakietu. Jednym ze sposobów jest poproszenie na forach o sugestie dotyczące innych pakietów, które mogą zaspokoić tę konkretną potrzebę.
Linux zwykle ma wiele sposobów na skórowanie dowolnego kota.
POWIĄZANE: Jak zainstalować Arch Linux z GUI