Tworzenie paczki z AUR i przenoszenie pliku `*.xz` do `/var/cache/pacman/pkg`?

Jeszcze niedawno Pamac, tworząc paczkę z AUR, dodawał plik *.xz do /var/cache/pacman/pkg .
Niestety, z wersją 9, ta funkcjonalność już nie istnieje.
Jak pisze developer Pamaca:

In order to optimise build time now packages built from AUR are not compressed

Sprawdziłem, podglądając proces tworzenia paczki z AUR w katalogu roboczym Pamac’a i rzeczywiście, w trakcie jej tworzenia, nie ma obecnie roboczego pliku *.xz .

Czy znacie jakiś inny pakiet budujący paczki z AUR i dający możliwość automatycznego przeniesienia pliku *.xz do /var/cache/pacman/pkg ?

  • Jakieś AUR-helper’y, np. trizen (community) ?
  • Możesz ręcznie dokonać kompresji i przenieść plik.

Mam zainstalowany yay (wg rangingu AUR - najlepszy) jednak nie widzę w jego manual’u opcji automatycznego przeniesienia pliku *.xz do /var/cache/pacman/pkg.

Jeśli chodzi o ew. ręczną kompresję, to:

  • nie do końca wiem, co należy kompresować (różne pakiety mają różne struktury katalogów i plików spakowanych do *.xz, a sens tego działania jest taki, aby była poprawnie przygotowana paczka do ewentualnego downgrade);
  • poza tym ręczne zabawy zabierają cenny czas.

Od roku używam trizen, i jestem z niego bardzo zadowolony.

A czy trizen automatycznie przenosi pliki *.xz do /var/cache/pacman/pkg ?

Z tego co mi wiadomo to trizen tworzy paczkę w /var/tmp.

Ręczne przeniesienie utworzonej paczki do cache’u, gdyby program tego nie robił, nie stanowi większego problemu, bo aktualizacje pakietów w AUR zazwyczaj nie zdarzają się kilka razy w miesiącu tylko dużo rzadziej. Jest, to niewygoda, ale do zniesienia.

@majo
Jednak trizen nie buduje w /var/tmp tylko w /tmp.

Zainstalowałem trizen.
Tak, jak yay buduje plik *.xz w swoim roboczym katalogu, jednak nie przenosi go do /var/cache/pacman/pkg i też nie widzę tu opcji, aby zrobić automatycznie takie przeniesienie :frowning:

Ciekawostka: plik roboczy *.xz utworzony przez trizen jest różny od tego utworzonego przez yay.

To nie możesz tego ręcznie zrobić? jeżeli Tobie tak bardzo na tym zależy.

Opcja:
--movepkg

Zajrzyj:

@azja
Dzięki.
Muszę odwiedzić okulistę :slight_smile:

Jeżeli budujesz pakiet z AUR za pomocą pamac’a, to:

$ pamac build --keep nazwa_pakietu

bo:

$ pamac build --help

  -k, --keep           : keep built packages in cache after installation

Ale to nie jest (chyba?) cache pacmana(systemu): /var/cache/pacman/pkg/ , ale cache Pamac’a dla AUR:
/var/tmp/pamac-build-NAZWA-UŻYTKOWNIKA/

Poza tym większość paczek budowanych obecnie przez Pamaca dla AUR nie ma stuktury pliku *.xz

Z tym cache’em, to pewnie masz rację.

Co do *.xz, to pamac nie jest konkurencją dla pacman’a i nie stosuje swojego systemu zarządzania pakietami, tylko ‘wpina się’ do pacman’owego. Więc … nie musi stosować kompresji (*.xz), ale musi utworzyć pakiet (*.pkg.tar). Więc … w cach’u (tym, na który wskazujesz), w trakcie instalacji musi być jedno z:

  • nazwa_pakietu.pkg.tar.xz
  • nazwa_pakietu.pkg.tar
  • katalog ./pkg (o ile dobrze pamiętam), ze strukturą plików do instalacji

Szczegóły do sprawdzenia.


EDIT-20191102-1913 …
Szczegóły sprawdzone:

  • ściąga źródła;
  • rozpakowuje do katalogu ./src ;
  • buduje program w katalogu ./pkg ;
  • tworzy pakiet nazwa_pakietu.pkg.tar.xz bez kompresji ;
  • usuwa katalog ./pkg ;
  • instaluje pakiet nazwa_pakietu.pkg.tar.xz ;
  • usuwa pakiet nazwa_pakietu.pkg.tar.xz ;
  • gdzieś po drodze usuwa jeszcze katalog ./src ;

Zapewne z parametrem --keep zostawi w katalogu plik nazwa_pakietu.pkg.tar.xz .


EDIT-20191102-1927 …
No dobra, chciałem pójść przygotować sobie małe co nieco na kolację, ale męczyło mnie, więc sprawdziłem: wyrzucił błąd i usunął pakiet - musi być jakiś knot.

Przy okazji poprawiłem wpis powyżej - w obu przypadkach kompresuje (jakoś mi umknęło), bo tak ma powiedziane w konfiguracji (/etc/makepkg.conf).


EDIT-20191102-1948 …
Zrobił się z tego serial, ale nie ma takiego bug’a, którego nie można by na feature’a wyprowadzić.
Okazuje się, że i owszem, jest komunikat błędu (przy parametrze --keep), ALE! pakiet nie został usunięty, tylko przeniesiony do cache’a, TEGO cache’a:

/var/cache/pacman/pkg/

Wychodzi na to @majo , że rozbudowane i przynudzające OT jest jak najbardziej na temat, a moja pierwotna, intuicyjna interpretacja parametru --keep jest prawidłowa.
Brawo ja (przynajmniej do następnego EDIT’a).


EDIT-20191102-2016 … 20191104-1417 …
Wenezuelskiego tasiemca odcinek kolejny.
Aby domyślnie i zawsze parametr działał, wtedy w config’u musimy odkomentować odpowiedni wiersz (lub dodać go, jeżeli nie występuje):

/etc/pamac.conf
--------------------------------------------
KeepBuiltPkgs

Komentarz do tego parametru (z /etc/pamac.conf.pacnew):
Keep built packages from AUR in cache after installation

EDIT … i tak dalej …
Jest również opcja do zaznaczenia w GUI.

1 polubienie

Niie wiem dlaczego tak jest, ale u mnie nie ma takiej linii do ewentualnego odkomentowania.

Natomiast bez tego wpisu w /etc/pamac.conf, potwierdzam, że po zaznaczeniu w ustawieniach Pamac’a opcji “Keep built packages in cache” przenoszenie paczek *.zx do /var/cache/pacman/pkg/ działa poprawnie (choć w Pamac, po zakończeniu wszystkich działań, pojawia się komunikat: “tranzakcja nie została zainicjowana”, jednak jest to jakiś błąd Pamac’a, bo pakiety są poprawnie budowane).

Doprecyzowałem swój wpis powyżej. Przy świeżych instalacjach parametr będzie obecny w pamac.conf i wtedy wystarczy odkomentować. Przy wcześniejszych (sprzed jego pojawienia się w pamac’u) nie ma go i trzeba dodać (jest w pamac.conf.pacnew).