Home › Fora › Różności › Luźne rozmowy › PKGBUILD a zależności pakietów
- This topic has 5 odpowiedzi, 2 uczestników, and was last updated 7 years, 3 months temu by pavbaranov.
- AutorPosty
- 1 września 2017 o 19:30 #5736azjaModerator
… libmediainfo ma w zależnościach. Nie wiem w jaki sposób zachowa się, w takiej sytuacji (brak wymaganego pakietu), yaourt, czy inne narzędzie do instalacji z AUR, ale pamac informuje o brakujących zależnościach i instaluje je w pierwszej kolejności.
Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi
2 września 2017 o 11:26 #5744pavbaranovForumowiczNie wiem w jaki sposób zachowa się, w takiej sytuacji (brak wymaganego pakietu), yaourt, czy inne narzędzie do instalacji z AUR
Tak jak każdy AURhelper. Nie ma to zresztą z nim absolutnie nic wspólnego, albowiem za budowę paczki odpowiada makepkg, który we wszelkich AURhelperach jest ustawiony z przełącznikiem „-s”, czyli ściąga zależności. W przypadku budowy „ręcznej” makepkg „widzi” tylko paczki w repozytoriach, czyli zależności z AUR trzeba również ręcznie zbudować i doinstalować. W przypadku owych AURhelperów zależności z AUR są również kompilowane i instalowane przed budową docelowej paczki.
@mjedr musiał odpowiedzieć przecząco na propozycję instalowania zależności i stąd błąd.
Walidacja paczki qnapi daje następujący wynik:qnapi E: Dependency hicolor-icon-theme detected and not included (needed for hicolor theme hierarchy) qnapi W: Dependency included and not needed ('p7zip')
W zasadzie oznacza to, że powinniśmy wyedytować PKGBUILD przed kompilacją i w polu „depends” dodać hicolor-icon-theme i usunąć stamtąd p7zip.
Wobec braku wsparcia dla KDE4 także sekcja „package” mogłaby zostać lekko zmieniona, albowiem bez sensu w Archu tworzy wpisy dla tej wersji środowiska.2 września 2017 o 12:17 #5745azjaModerator… @pavbaranov -> formalnie PKGBUILD wymaga poprawek (opieram się na tym, co napisałeś powyżej), ale realnie, w sytuacji @mjedr, potrzebne jest tylko libmediainfo, bo wpisy nt. KDE4, są 'tylko’ zbędne, p7zip jest 'tylko’ zbędny (hmmm :-) zbędny z punktu widzenia paczki, ale z mojego – niezbędny), a hicolor-icon-theme jest wymagany przez taką ilość pakietów (xfce,qt,gnome,mnóstwo innych), że najprawdopodobniej jest w systemie od początku.
… należałoby napisać komentarz do pakietu w AUR – może opiekun paczki coś by z tym zrobił. Zapewne nie robi, bo pakiet instaluje się, a nadmiarowość wynika najprawdopodobniej z 'tradycji’, albo potrzeb innych dystrybucji. Takiego komentarza nie ma (przeglądałem jakiś czas temu i nie przypominam sobie), bo … jak wyżej, paczka instaluje się, a nadmiarowość nie stanowi realnego problemu dla użytkownika. Póki co.
… zgadzam się jednak z tym, że PKGBUILD wymagający poprawki, powinien być poprawiony. Nawet jeżeli jej brak nie stanowi realnego problemu dla użytkownika, to należy dbać o poprawność i klarowność kodu.Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi
2 września 2017 o 14:17 #5747pavbaranovForumowiczOT: @azja – Spierasz się ze standardami :) Otóż tworzenie paczek w Archu, w tym tworzenie PKGBUILDów jest zestandaryzowane od bardzo już wielu lat. Nie ma tu z czym polemizować. Nie istnieją „nadmiarowe”, czy „niedomiarowe” żadne zależności. Poczytaj o standardach paczkowania w Archu (tu od razu do tzw. etykiety) oraz o tworzeniu PKGBUILDów (tu o samych zależnościach).
Dlaczego nie ma „nadmiarowych” zależności? By niepotrzebnie nie ściągać ich z sieci. Wszak te serwery utrzymują najczęściej jacyś ludzie z własnych środków. Pomijam kwestię porządku w systemie. „Nadmiarowa” paczka powoduje też, że nie zostanie odinstalowana bez odinstalowania paczki, która ją niepotrzebnie trzyma. Np. w przypadku qnapi jako zależność zostanie zainstalowane p7zip. Jeśli nie chciałbym z niego korzystać, to nie mogę go spokojnie usunąć, albowiem pociągnie to odinstalowanie qnapi. Zerwanie zależności niemal nigdy nie jest dobrym pomysłem.
To, że coś jest „zbędne z punktu widzenia paczki” to jest właśnie to o co chodzi. Żadna paczka nie ma prawa instalować Ci przy okazji czegoś, czego sama nie wymaga do swojego działania. Ba nawet tzw. zależności opcjonalne winny zostać wyodrębnione i sam użytkownik winien mieć możliwość decyzji, czy potrzebne mu rozszerzenie funkcjonalności danej aplikacji, czy też nie.
Dlaczego nie ma „niedomiarowych” zależności? Bo na czystym systemie (np. takim bez żadnego środowiska) nie jesteś w stanie zbudować takiej paczki. Nie ma znaczenia „popularność” owej zależności. Jeśli na czystym systemie nie jesteś w stanie zbudować paczki z powodu braku jakichś zależności, to oznacza, że jej PKGBUILD jest wadliwy.
Nie istnieją też żadne „tradycje” w „nadmiarowości” czy też „potrzeby innych dystrybucji”. Pierwsze nie istnieje i nie istniało nigdy, drugie… Cóż AUR to Arch User Repository. Jest przeznaczone (choć nie jest wspierane) wyłącznie dla Archa. Nb. w żadnej dystrybucji opartej o pacmana (ba, nawet żadna inna) nie będzie istnieć potrzeba owej „nadmiarowości”. Skoro do działania paczki nie jest wymagana jakaś zależność, to nie jest to istotne czy będzie to zbudowane ze źródeł w tradycyjny sposób, czy też będzie to zbudowane dla jakiejkolwiek dystrybucji – zawsze bez owej „nadmiarowej” zależności paczka będzie działać.
I by nie było kompletnie OT – w przypadku qnapi prawidłowym miejscem dla p7zip jest sekcja „optdepends”.
Koniec OT z mojej strony i koniec rozwijania wątku (przeze mnie).
@mjedr – Skompiluj/zainstaluj sobie qnapi raz jeszcze, jednakże gdy to coś, z czego korzystasz zapyta o to czy instalować zależności masz odpowiedzieć twierdząco.3 września 2017 o 10:31 #5748azjaModerator… @pavbaranov -> z zasady, staram się tego nie robić, ale wyglądałoby na to, że zgadzam się lub nie mam większych zastrzeżeń, a … nie mam zielonego pojęcia o co chodzi. Więc raz i nigdy więcej:
odnoszę wrażenie, że każda uwaga jest przez Ciebie traktowana osobiście; że czytasz wpisy, być może, pobieżnie, bo polemizujesz ze mną, pisząc to co ja, tylko inaczej; bo ignorujesz sens wypowiedzi, koncentrując się na jej wybranych fragmentach literalnie; bo nie zauważasz takich narzędzi jak cudzysłów lub interpretujesz je w sposób przeze mnie niezrozumiały. Zaczynam się zastanawiać, czy przed zamieszczeniem wpisu na Forum, nie dać go do korekty, do prawnika i znajomego inżyniera po polibudzie – tak aby był nieskazitelny logicznie i pozbawiony wszelkich atrybutów humanistycznych. Tyle, że text, to nie litery, ale znaczenie jakie się za nimi kryją, treść. Nie rozumiem dlaczego ktoś, z kim zgadzam się (przynajmniej, co do meritum), polemizuje ze mną.
… było raz, do protokołu i więcej na ten temat nie zamierzam się odzywać.Nie zadawaj pytania, jeżeli nie jesteś gotów usłyszeć odpowiedzi
3 września 2017 o 11:12 #5749pavbaranovForumowicz@azja – Dziękuję za jakże trafną diagnozę dotyczącą umiejętności czytania przeze mnie :D Nie, nie spieram się – staram się tłumaczyć coś, co często traktowane jest po łebkach i powoduje potem komplikacje. Sam niejednokrotnie pisałeś, że budowanie z AUR skutkuje dbaniem o system samemu. I masz w tym sporo racji. Niestety szczególnie osoby korzystające wcześniej z dystrybucji z niezależnymi repozytoriami (np. PPA) lub dla których np. Manjaro stanowi pierwszą dystrybucję podchodzą do AUR jakby to było „normalne” repozytorium, w dodatku tworzone przez jakichś „poważnych” deweloperów. Prawda jest taka, że pośród opiekunów paczek znajdują się zarówno devowie, jak i tzw. trusted user Archa. Są jednakże także osoby, które mają niewielkie pojęcie o tym jak winien zostać sporządzony PKGBUILD. Są też paczki opuszczone (orphaned). Niemniej jednak nawet do dyspozycji ZU zostało oddane takie narzędzie jak namcap – walidator PKGBUILDów i zbudowanych paczek. Jeśli PKGBUILD znajdujący się w AUR nie pochodzi od TU czy DEV Archa, jeśli nie pochodzi od osób, co do których mamy niemal bezkrytyczne zaufanie, to przepuśćmy taki PKGBUILD, a następnie zbudowaną paczkę przez namcap i doprowadźmy ją do prawidłowej postaci. Unikniemy wówczas (a przynajmniej zminimalizujemy) problemy w przyszłości. Zdecydowanie lepiej budować zatem paczki z AUR bez użycia AURhelperów (mamy zdecydowanie większą kontrolę, nadto możemy nie usuwać tworzonych wówczas katalogów src i pkg, nie musimy często ponownie budować, a jedynie – po korekcie PKGBUILD – przepakować już zbudowany kod). Ot, tyle. Jeśli ktoś sam nie wie jak to zrobić, to na pewno wskazując na wynik walidacji takiej paczki znajdzie się ktoś, kto pomoże. Tyle.
W przypadku PKGBUILD qnapi, do sekcji:
1. depends należy dodać hicolor-icon-theme
2. z tego samego ustawienia uzunąć p7zip
3. dopisać ustawienie optdepends o treści:
optdepends=('p7zip')
Z tak przebudowanym PKGBUILDem uruchomić kompilację. Tylko tyle. W podobny sposób należy postępować z praktycznie każdym PKGBUILDem w AUR. Nie wiem gdzie w tym wszystkim widzisz „osobiste traktowanie uwag”. Może jedynie w tym, że wolę unikać w przyszłości „problemów” na forach, które są pochodnymi niedbałości tak wywołanej przez opiekuna paczki w AUR, jak i przez samego użytkownika, albowiem mógł uniknąć tych problemów. Dochodzenie potem o co chodzi, dlaczego system się wali, choć nie powinien, jest często wręcz niewykonalne. Lansowane przez Ciebie twierdzenia o „nic się nie stało”, bo coś z Twojego punktu widzenia nie jest niezbędne, a jest zbędne tylko i wyłącznie z punktu widzenia paczki, że „nadmiarowe” zależności nic złego nie powodują jest po prostu wadliwe, a niekiedy wręcz szkodliwe zwłaszcza dla osób najmniej obeznanych z – ogólnie – pacmanem i sposobem zarządzania przez niego paczkami.
I w istocie – z takimi twierdzeniami będę polemizować. Zawsze. - AutorPosty
- Musisz być zalogowany aby odpowiedzieć w tym wątku.