Pamac – graficzny oraz konsolowy menedżer pakietów Manjaro

Pamac to zaawansowane narzędzie umożliwiające zarządzanie oprogramowaniem za pomocą graficznego interfejsu lub pod konsolą.

Pamac jest zbudowany na podstawie biblioteki ALPM (Arch Linux Package Management), a jego graficzny interfejs jest zbudowany na podstawie biblioteki GTK, dlatego też Pamac możemy spotkać w środowiskach takich jak: XFCE, Gnome, Cinnamon, Mate, LXDE. Trwają prace nad stworzeniem interfejsu w oparciu o bibliotekę Qt – być może w niedalekiej przyszłości Pamac-a zobaczymy również domyślnie w wydaniach z Plasma oraz LXQt – i stanie się on standardowym menedżerem pakietów Manjaro.

GUI – graficzny interfejs

Pamac umożliwia wyszukiwanie pakietów (wg grup, stanu, repozytorium źródłowego), ich instalację oraz usuwanie. Aplet Pamac to program rezydujący w zasobniku systemowym, informuje o dostępności zaktualizowanych pakietów oraz pozwala w wygodny sposób przeprowadzać aktualizację.
Za pomocą Pamac możemy skonfigurować wiele aspektów działania menedżera pakietów, na przykład:

  • ustawić częstotliwość sprawdzania dostępności aktualizacji
  • wybrać najszybszy mirror i jego lokalizację
  • ustawić ilość wersji pakietów, które będą przechowywane w pamięci podręcznej na dysku (umożliwia to przeprowadzenie downgrade pakietu w rzadkich przypadkach, kiedy aktualizacja może powodować problemy)
  • włączyć obsługę AUR (Repozytorium Użytkowników Arch)

pamac cli, czyli pamac z linii komend

Od niedawna pamac posiada także możliwość pracy w terminalu tekstowym – listę poleceń wraz z pomocą otrzymamy wpisując w konsoli:

pamac -h
$ pamac --help
Dostępne działania:
  pamac --version     
  pamac --help,-h      [działanie]
  pamac checkupdates   [opcje]
  pamac search         [opcje] <pakiet(ów)>
  pamac info           [opcje] <pakiet(ów)>
  pamac list           [opcje] <pakiet(ów)>
  pamac install        [opcje] <pakiet(ów)>
  pamac reinstall      [opcje] <pakiet(ów)>
  pamac build          [opcje] <pakiet(ów)>
  pamac remove         [opcje] <pakiet(ów)>
  pamac update,upgrade [opcje] <pakiet(ów)>

Aby dowiedzieć się więcej o konkretnym działaniu (akcji) wpisujemy:

pamac -h działanie

np.

$ pamac -h build
Buduj pakiety z AUR i instaluj wraz z zależnościami

pamac build [opcje] <pakiet(ów)>

opcje:
  --builddir    : katalog budowania, jeśli katalog nie jest podany -
                           zostanie użyty katalog z pamac.conf
2 polubienia

Stan na wersję: 7.3.3-1

$ pamac --help checkupdates
Bezpiecznie sprawdź aktualizacje bez modyfikowania baz danych
(Kod zakończenia to 100, jeśli aktualizacje są dostępne)

pamac checkupdates [opcje]

opcje:
  -a, --aur            : sprawdź również aktualizacje w AUR
  --devel              : sprawdź też aktualizacje paczek deweloperskich (użycie z --aur)
  -q, --quiet          : wypisz tylko jedną linię dla każdej aktualizacji
  --builddir <katalog> : katalog budowania (użycie z --dlevel), jeśli nie podano katalogu, użyty zostanie katalog określony w pamac.conf
$ pamac --help update
Zaktualizuj system

pamac upgrade,update [opcje]

opcje:
  -a, --aur             : aktualizuj również pakiety zainstalowane z AUR
  --builddir <katalog>  : katalog budowania (użyj --aur), jeśli nie podano katalogu, użyty zostanie katalog określony w pamac.conf
  --force-refresh       : wymuś odświeżenie baz danych
  --enable-downgrade    : możliwe obniżenie wersji pakietu
  --ignore <pakiet(ów)> : ignoruj aktualizację pakietu, można określić wiele pakietów, oddzielając je przecinkiem
  --overwrite <glob>    : zastąp pliki będące w konflikcie, można określić wiele wzorców, oddzielając je przecinkiem
$ pamac --help search
Szukaj pakietów lub plików, można podać wiele warunków

pamac search [opcje] <pakiet(ów),plik(ów)>

opcje:
  -a, --aur   : wyszukaj również w AUR-ze
  -f, --files : szukaj pakietów, które posiadają podane nazwy plików (nazwy plików mogą być częściowe)
$ pamac --help info
Wyświetl szczegóły pakietu, można podać wiele pakietów

pamac info [opcje] <pakiet(ów)>

opcje:
  -a, --aur : wyszukaj również w AUR-ze
$ pamac --help list
Wyświetl pakiety, grupy, repozytoria lub pliki

pamac list [opcje]

opcje:
  -i, --installed                : lista zainstalowanych pakietów
  -o, --orphans                  : lista pakietów, które zostały zainstalowane jako zależności, ale nie są już wymagane przez żaden zainstalowany pakiet
  -m, --foreign                  : lista pakietów, które nie zostały znalezione w repozytoriach
  -g, --groups [grup(y)]         : pokaż wszystkie pakiety będące członkami danej grupy, jeśli nie podano żadnej grupy to pokaż wszystkie grupy
  -r, --repos [repozytorium(ów)] : pokaż wszystkie pakiety dostępne w repozytorium, jeśli nie podano repozytorium, pokaż wszystkie repozytoria 
  -f, --files <pakiet(ów)>       : pokaż pliki należące do podanych pakietów
$ pamac --help install
Instaluj pakiety z repozytoriów, ścieżki lub url

pamac install [opcje] <pakiet(ów),grup(y)>

opcje:
  --ignore <pakiet(ów)> : ignoruj aktualizację pakietu, można określić wiele pakietów, oddzielając je przecinkiem
  --overwrite <glob>    : zastąp pliki będące w konflikcie, można określić wiele wzorców, oddzielając je przecinkiem
$ pamac --help reinstall
Przeinstaluj pakiety

pamac reinstall <pakiet(ów),grup(y)>
$ pamac --help clone
Sklonuj lub zsynchronizuj pliki budowanych pakietów z AUR

pamac clone [opcje] <pakiet(ów)>

opcje:
  --builddir <katalog> : katalog budowania, jeśli nie podano katalogu, użyty zostanie katalog określony w pamac.conf
  -r,--recurse         : pobierz także potrzebne zależności
  --overwrite          : nadpisz istniejące pliki
$ pamac --help build
Buduj pakiety z AUR i instaluj wraz z zależnościami
Jeśli nie podano nazwy pakietu, użyty zostanie plik PKGBUILD w obecnym katalogu
Katalog budowania będzie katalogiem nadrzędnym, opcja --builddir będzie ignorowana

pamac build [opcje] [pakiet(ów)]

opcje:
  --builddir <katalog> : katalog budowania, jeśli nie podano katalogu, użyty zostanie katalog określony w pamac.conf
  --no-clone           : nie klonuj plików budowania z AUR, tylko użyj lokalnych plików
$ pamac --help remove
Usuń pakiety

pamac remove [opcje] [pakiet(ów),grup(y)]

opcje:
  -o, --orphans : usuń zależności, które nie są wymagane przez inne pakiety, jeśli ta opcja jest używana bez nazwy pakietu, usuń wszystkie osierocone pakiety
1 polubienie

Gdzie pamac zapisuje obecnie informacje o tym, że było sprawdzane, czy system jest aktualny?

Mam obecnie testowo ustawione sprawdzanie aktualizacji co 2 godziny, jednak nie ma w pliku /var/log/pacman.log żadnych informacji na ten temat (są tu jedynie informacje po dodaniu/usunięciu pakietu).

  1. /var/log/pacman.log jest log’iem pacman’a, a nie pamac’a.
  2. Jeżeli aktualizacje sprawdza automat, to zapewne jest, to applet, który trzyma informacje na ten temat … w pamięci? Tak podejrzewam. Możesz również zajrzeć do /home/mnjr/.config/xfce4/panel/ (dla Xfce), ale tam - prawdopodobnie - będzie tylko konfiguracja applet’u (prawdopodobnie, bo od jakiegoś czasu nie używam automatycznego sprawdzania, więc nie mogę tego zweryfikować).
  3. pamac, na potrzeby sprawdzenia aktualizacji, ściąga bazy do /tmp/pamac/dbs-nazwausera/. W ten sposób nie musi blokować oryginalnych baz w systemie i nie musi mieć do nich uprawnień. Dopiero gdy rozpoczyna aktualizację, żąda uprawnień root’a.
2 polubienia

ad 1:
Kiedyś pamac wpisywał info o swoim działaniu do /var/log/pacman.log . Przykładowo, tak wyglądał wpis z dnia bez aktualizacji, przy sprawdzaniu co 6 godzin:

[2017-03-10 09:03] [PAMAC] synchronizing package lists
[2017-03-10 15:03] [PAMAC] synchronizing package lists
[2017-03-10 21:03] [PAMAC] synchronizing package lists

ad 2:
w ~/.config/xfce4/panel/ nic nie znalazłem powiązanego z Pamac.

ad 3:
/tmp/pamac/dbs-nazwausera/ to dobry trop. Jest tu katalog sync/ i link symboliczny z datą uruchomienia komputera ( = startu Pamac) w dniu dzisiejszym.
Sprawdzę jak to będzie wyglądać za chwilę, gdy powinno być kolejne sprawdzanie.

Edit:
To działa :slight_smile: Przy obecnym ustawieniu sprawdzania co 2 godziny, data katalogu sync/ zwiększyła się odpowiednio o 2 godziny.

Co natomiast jest dla mnie niezrozumiałe, to że w katalogu sync/ jest 39MB plików, natomiast router, po uruchomieniu systemu, pokazywał transfer kilkuset kB, a, o ile mi wiadomo, cały /tmp/jest czyszczony po zakończeniu sesji.

Sprawdź daty i wielkości plików bazy danych w /var/lib/pacman/sync .
U mnie są takie same jak w /tmp/pamac/dbs-xxx/sync , co mówi, że pamac podczas sprawdzenia aktualizacji kopiuje pliki pacmana do /tmp . Możesz to bardzo prosto sprawdzić, wykasuj katalog /tmp/pamac , a następnie sprawdź czy są aktualizacje
pamac update
U mnie pojawił się wykasowany katalog.

1 polubienie

Będę sprawdzał dalej, ale obecnie (przy zaktualizowanym systemie) wygląda, to tak:

  • $ checkupdates ściągnął (z net’u) bazy (*.db) do katalogu /tmp/checkup-db-nazwausera/sync/ i nic nie powiedział, co równa się komunikatowi: system aktualny;
  • $ pamac checkupdates skopiował zawartość (*.db, *.files) katalogu /var/lib/pacman/sync/ do katalogu /tmp/pamac/dbs-nazwausera/sync/ i powiedział: Twój system jest aktualny.

Zwracam uwagę, że $ pamac checkupdates różni się od $ pamac update, ponieważ ta pierwsza komenda nie operuje na bazach w systemie, tylko na kopiach, dlatego nie potrzebuje root’a. Następny test zrobię wtedy, gdy będę miał pod ręką niezaktualizowany system (produkcyjny lub live).


EDIT-20190120-0040 … Uzupełnienie - sytuacja odmienna niż wyżej, jest kilka aktualizacji do zainstalowania:

  • $ checkupdates ściągnął (z net’u) bazy (*.db) do katalogu /tmp/checkup-db-nazwausera/sync/ (czyli bez zmian) i wylistował pakiety do aktualizacji;
  • $ pamac checkupdates ściągnął z net’u te bazy (*.db), które dotyczyły repozytoriów zawierających pakiety do aktualizacji. Lokalizacja j.w.
    W konkretnym przypadku, który przed momentem testowałem, są cztery pakiety do aktualizacji, z dwóch repozytoriów: core i multilib. Pamac ściągnął z server’ów tylko dwa pliki (sądząc po ilości materiału jaki został pobrany): core.db i multilib.db
    Wygląda więc na to, że porównuje bazy w systemie i na server’ze, po czym ściąga tylko nowsze, a resztę kopiuje z /var/lib/pacman/sync/

5 posts were split to a new topic: Pamac - aktualizacja pakietów z listy ignorowanych