Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:archlinux_-_pacman

ArchLinux - Pacman

Der Paketmanager pacman ist eines der wichtigsten Unterscheidungsmerkmale von ArchLinux. Er kombiniert ein einfaches Format für Binärpakete mit einem leicht zu bedienenden Build-System. Das Ziel von pacman ist es, die einfache Verwaltung von Paketen zu ermöglichen, unabhängig davon, ob sie aus den offiziellen Repositories oder aus eigenen Builds stammen.

Pacman hält das System auf dem neuesten Stand, indem es die Paketlisten mit dem „Master-Server“ synchronisiert. Dieses Server/Client-Modell erlaubt es dem Benutzer auch, Pakete mit einem einfachen Befehl herunterzuladen/zu installieren, komplett mit allen erforderlichen Abhängigkeiten.

Konfiguration

Nachfolgend soll eine mögliche Konfiguration von pacman durchgeführt werden.

/etc/pacman.conf

Bei der Verwendung von pacman, nachfolgend soll eine das updaten von Paketen als Beispiel dienen, kann die Ausgabe, das „Look & Feel“ sozusagen angepasst werden, wie die Änderungen andere Konfigurationsdatei

  • /etc/pacman.conf

wie nachfolgend dargestellt, zeigen.

Standardmässig wird beim Aufruf von pacman, nachfolgend formatierte Ausgabe zum Vorschein kommen, hier als Beispiel eine update von im System bereits installierten Paketen:

Vorher:

# pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (9) imagemagick-7.0.10.38-1  libibus-1.5.23+1+gdd4cc5b0-1
             python-html5lib-1.1-4  python-pep517-0.9.1-1  python-pip-20.2-1
             python-pyopenssl-19.1.0-2  python-resolvelib-0.5.1-1
             raptor-2.0.15-14  rasqal-1:0.9.33-4

Total Download Size:   12.48 MiB
Total Installed Size:  96.38 MiB
Net Upgrade Size:      19.34 MiB

:: Proceed with installation? [Y/n]

Um diese Anzeige, ein wenig aussagekräftiger und schöner zu gestalten, können nachfolgende Anpassungen an der Konfigurationsdatei

  • /etc/pacman.conf

in der Sektion

  • # Misc options

durchgeführt werden:

# Misc options
#UseSyslog
# Tachtler - enabled -
Color
# Tachtler - enabled -
TotalDownload
CheckSpace
# Tachtler - enabled -
VerbosePkgLists
# Tachtler - new -
ILoveCandy

Erklärungen:

  • Color

Aktiviert automatisch die Anzeige von Farben, aber nur dann, wenn die Ausgabe von pacman auf einem tty statt findet.

  • TotalDownload

Zeigen beim Herunterladen die heruntergeladene Menge und die Download-Rate an, die ETA (Estimated Time of Arrival) die Zeit, bis der Download abgeschlossen sein sollte und der wahrscheinliche abgeschlossene Prozentsatz der gesamten Download-Liste als der Prozentsatz jedes einzelnen Download-Ziels. Eine Fortschrittsanzeige, jeweils ausschliesslich für das aktuellen herunter zu ladende Paket. Diese Option funktioniert allerdings nicht, wenn XferCommand verwendet wird.

  • VerbosePkgLists

Zeigt jeweils den Name, die Version und die Grösse des jeweiligen Zielpaketes an, dargestellt in Tabellenform für Upgrade-, Synchronisierungs- und Löschoperationen.

  • ILoveCandy

Undokumentierte Option - Stellt die Ausgabe des Fortschrittsbalken als Pacman dar, welche „Süssigkeiten“ als Fortschrittsbalken verspeist.

Anschliessend sieht dann das bereits zuvor gezeigte Beispiel des update von im System bereits installierten Paketen, wie folgt aus:

Nachher - (80 Zeichen Fensterbreite)

# pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

warning: insufficient columns available for table display
Packages (9) imagemagick-7.0.10.38-1  libibus-1.5.23+1+gdd4cc5b0-1
             python-html5lib-1.1-4  python-pep517-0.9.1-1  python-pip-20.2-1
             python-pyopenssl-19.1.0-2  python-resolvelib-0.5.1-1
             raptor-2.0.15-14  rasqal-1:0.9.33-4

Total Download Size:   12.48 MiB
Total Installed Size:  96.38 MiB
Net Upgrade Size:      19.34 MiB

:: Proceed with installation? [Y/n]

:!: WICHTIG - Die erweiterte Anzeige kann nur dargestellt werden, wenn die Fensterbreite mehr als 80 Zeichen beträgt!

Sonst kommt nachfolgende Warnung zum Vorschein:

warning: insufficient columns available for table display

Nachher - (120 Zeichen Fensterbreite)

# pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Package (9)                Old Version           New Version           Net Change  Download Size

extra/imagemagick          7.0.10.37-1           7.0.10.38-1             0.00 MiB       2.53 MiB
extra/libibus              1.5.22+8+gf591381e-1  1.5.23+1+gdd4cc5b0-1   16.67 MiB       8.33 MiB
community/python-html5lib  1.1-1                 1.1-4                   0.00 MiB       0.20 MiB
extra/python-pep517        0.8.2-1               0.9.1-1                 0.00 MiB       0.03 MiB
extra/python-pip           20.1.1-1              20.2-1                  0.11 MiB       0.40 MiB
extra/python-pyopenssl                           19.1.0-2                0.53 MiB       0.08 MiB
extra/python-resolvelib    0.4.0-1               0.5.1-1                 0.01 MiB       0.02 MiB
extra/raptor               2.0.15-13             2.0.15-14               0.93 MiB       0.45 MiB
extra/rasqal               1:0.9.33-3            1:0.9.33-4              1.09 MiB       0.45 MiB

Total Download Size:   12.48 MiB
Total Installed Size:  96.38 MiB
Net Upgrade Size:      19.34 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 imagemagick-7.0.10.38-1-x86_64  2.5 MiB  9.37 MiB/s 00:00 [----------------------------------------]  20%
 libibus-1.5.23+1+gdd4-1-x86_64 10.9 MiB  11.3 MiB/s 00:01 [----------------------------------------]  86%
 python-pep517-0.9.1-1-any      10.9 MiB  11.1 MiB/s 00:01 [----------------------------------------]  87%
 python-resolvelib-0.5.1-1-any  10.9 MiB  10.9 MiB/s 00:01 [----------------------------------------]  87%
 python-pyopenssl-19.1.0-2-any  11.0 MiB  10.6 MiB/s 00:01 [----------------------------------------]  88%
 python-pip-20.2-1-any          11.4 MiB  10.4 MiB/s 00:01 [----------------------------------------]  91%
 raptor-2.0.15-14-x86_64        11.8 MiB  10.3 MiB/s 00:01 [----------------------------------------]  94%
 rasqal-1:0.9.33-4-x86_64       12.3 MiB  10.2 MiB/s 00:01 [----------------------------------------]  98%
 python-html5lib-1.1-4-any      12.5 MiB  9.99 MiB/s 00:01 [----------------------------------------] 100%
(9/9) checking keys in keyring                             [----------------------------------------] 100%
(9/9) checking package integrity                           [----------------------------------------] 100%
(9/9) loading package files                                 [----------------------------------------] 100%
(9/9) checking for file conflicts                            [----------------------------------------] 100%
(9/9) checking available disk space                        [----------------------------------------] 100%
:: Processing package changes...
(1/9) upgrading imagemagick                                [----------------------------------------] 100%
(2/9) upgrading libibus                                    [----------------------------------------] 100%
(3/9) upgrading python-html5lib                            [----------------------------------------] 100%
(4/9) upgrading python-pep517                              [----------------------------------------] 100%
(5/9) upgrading python-resolvelib                          [----------------------------------------] 100%
(6/9) installing python-pyopenssl                          [----------------------------------------] 100%
(7/9) upgrading python-pip                                 [----------------------------------------] 100%
(8/9) upgrading raptor                                     [----------------------------------------] 100%
(9/9) upgrading rasqal                                     [----------------------------------------] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Warn about old perl modules

Hilfsprogramme

paccache

paccache ist ein Werkzeug zur Bereinigung des „Pacman-Cache“, welcher sich im Verzeichnis

  • /var/cache/pacman/pkg

befindet.

Um den Befehl verfügbar zu haben, muss das Paket pacman-contrib mit z.B. dem nachfolgendem Befehl installiert werden:

# pacman -S pacman-contrib
resolving dependencies...
looking for conflicting packages...

Package (1)               New Version  Net Change  Download Size

community/pacman-contrib  1.4.0-1        0.10 MiB       0.04 MiB

Total Download Size:   0.04 MiB
Total Installed Size:  0.10 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 pacman-contrib-1...    37.7 KiB  0.00   B/s 00:00 [----------------------] 100%
(1/1) checking keys in keyring                     [----------------------] 100%
(1/1) checking package integrity                   [----------------------] 100%
(1/1) loading package files                         [----------------------] 100%
(1/1) checking for file conflicts                    [----------------------] 100%
(1/1) checking available disk space                [----------------------] 100%
:: Processing package changes...
(1/1) installing pacman-contrib                    [----------------------] 100%
Optional dependencies for pacman-contrib
    findutils: for pacdiff --find [installed]
    mlocate: for pacdiff --locate
    sudo: privilege elevation for several scripts [installed]
    vim: default merge program for pacdiff [installed]
:: Running post-transaction hooks...
(1/2) Reloading system manager configuration...
(2/2) Arming ConditionNeedsUpdate...

Nachfolgender Befehl listet den installierten Inhalt des Pakets pacman-contrib auf:

# pacman -Qil pacman-contrib
Name            : pacman-contrib
Version         : 1.4.0-1
Description     : Contributed scripts and tools for pacman systems
Architecture    : x86_64
URL             : https://git.archlinux.org/pacman-contrib.git/about/
Licenses        : GPL
Groups          : None
Provides        : None
Depends On      : fakeroot  pacman  perl
Optional Deps   : findutils: for pacdiff --find [installed]
                  mlocate: for pacdiff --locate
                  sudo: privilege elevation for several scripts [installed]
                  vim: default merge program for pacdiff [installed]
Required By     : None
Optional For    : None
Conflicts With   : None
Replaces        : None
Installed Size  : 103.38 KiB
Packager        : Daniel M. Capella <polyzen@archlinux.org>
Build Date      : Wed 29 Jul 2020 03:17:14 AM CEST
Install Date    : Thu 03 Dec 2020 08:49:34 AM CET
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

pacman-contrib /usr/
pacman-contrib /usr/bin/
pacman-contrib /usr/bin/checkupdates
pacman-contrib /usr/bin/paccache
pacman-contrib /usr/bin/pacdiff
pacman-contrib /usr/bin/paclist
pacman-contrib /usr/bin/paclog-pkglist
pacman-contrib /usr/bin/pacscripts
pacman-contrib /usr/bin/pacsearch
pacman-contrib /usr/bin/pacsort
pacman-contrib /usr/bin/pactree
pacman-contrib /usr/bin/rankmirrors
pacman-contrib /usr/bin/updpkgsums
pacman-contrib /usr/lib/
pacman-contrib /usr/lib/systemd/
pacman-contrib /usr/lib/systemd/system/
pacman-contrib /usr/lib/systemd/system/paccache.service
pacman-contrib /usr/lib/systemd/system/paccache.timer
pacman-contrib /usr/share/
pacman-contrib /usr/share/man/
pacman-contrib /usr/share/man/man8/
pacman-contrib /usr/share/man/man8/checkupdates.8.gz
pacman-contrib /usr/share/man/man8/paccache.8.gz
pacman-contrib /usr/share/man/man8/pacdiff.8.gz
pacman-contrib /usr/share/man/man8/pacsort.8.gz
pacman-contrib /usr/share/man/man8/pactree.8.gz
pacman-contrib /usr/share/man/man8/updpkgsums.8.gz
pacman-contrib /usr/share/vim/
pacman-contrib /usr/share/vim/vimfiles/
pacman-contrib /usr/share/vim/vimfiles/ftdetect/
pacman-contrib /usr/share/vim/vimfiles/ftdetect/PKGBUILD.vim
pacman-contrib /usr/share/vim/vimfiles/ftplugin/
pacman-contrib /usr/share/vim/vimfiles/ftplugin/PKGBUILD.vim
pacman-contrib /usr/share/vim/vimfiles/syntax/
pacman-contrib /usr/share/vim/vimfiles/syntax/PKGBUILD.vim

Um den verbrauchten Speicherplatz des „Pacman-Cache“ im Verzeichnis /var/cache/pacman/pkg zu ermitteln, kann nachfolgender Befehl verwendet werden:

# du -sh /var/cache/pacman/pkg
667M	/var/cache/pacman/pkg

Um durch einen Testlauf vorab erst einmal ermitteln zu können, wie viel Speicherplatz durch eine Bereinigung mittels dem Befehl paccache eingespart bzw. freigegeben werden kann, kann nachfolgender Befehl verwendet werden:

# paccache -dk2

==> finished dry run: 17 candidates (disk space saved: 313.61 MiB)

Um alle Pakete zu entfernen, welche nicht mehr installiert sind kann nachfolgender Befehl verwendet werden:

# paccache -ruk0

==> finished: 1 packages removed (disk space saved: 416.58 KiB)

Um nur die jüngsten zwei Versionen aller Pakete zu behalten und alle vorhergehenden Versionen zu entfernen, kann nachfolgender Befehl verwendet werden:

# paccache -vrk2
removed '/var/cache/pacman/pkg/tzdata-2020a-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/vim-8.2.1584-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/python-setuptools-1:50.3.0-1-any.pkg.tar.zst'
removed '/var/cache/pacman/pkg/glib2-2.64.5-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/glib2-2.66.1-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/vim-runtime-8.2.1584-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/linux-lts-5.4.63-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/linux-lts-5.4.70-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/libldap-2.4.50-2-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/util-linux-2.36-3-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/linux-firmware-20200817.7a30af1-1-any.pkg.tar.zst'
removed '/var/cache/pacman/pkg/python-cryptography-3.1-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/pacman-mirrorlist-20200801-1-any.pkg.tar.zst'
removed '/var/cache/pacman/pkg/ansible-2.9.13-1-any.pkg.tar.zst'
removed '/var/cache/pacman/pkg/ansible-2.10.0-1-any.pkg.tar.zst'
removed '/var/cache/pacman/pkg/ca-certificates-mozilla-3.56-1-x86_64.pkg.tar.zst'
removed '/var/cache/pacman/pkg/openssh-8.3p1-4-x86_64.pkg.tar.zst'

==> finished: 17 packages removed (disk space saved: 313.61 MiB)

/usr/lib/systemd/system/paccache.timer

Um mittels dem Befehl

  • paccache -r

automatisch eine Bereinigung durchzuführen, gibt es einen systemd-Timer.

Bei aktiviertem Timer wird der „Pacman-Cache“ - wöchentlich bereinigt.

Damit jedoch wöchentlich durch den systemd - timer eine Bereinigung durchgeführt werden kann, muss mit nachfolgendem Befehl, der mit der Installation mit gekommene Timer

  • /usr/lib/systemd/system/paccache.timer

aktiviert werden:

# systemctl enable --now paccache.timer
Created symlink /etc/systemd/system/timers.target.wants/paccache.timer → /usr/lib/systemd/system/paccache.timer.

* Die Angabe des Parameters –now bewirkt die sofortige Ausführung!

Ob dies korrekt funktioniert hat, kann mit nachfolgendem Befehl überprüft werden:

# systemctl list-timers
NEXT                        LEFT        LAST                        PASSED    UNIT                         ACTIVATES                     
Fri 2020-12-04 00:00:00 CET 14h left    Thu 2020-12-03 08:29:45 CET 33min ago shadow.timer                 shadow.service                
Fri 2020-12-04 08:45:04 CET 23h left    Thu 2020-12-03 08:45:04 CET 18min ago systemd-tmpfiles-clean.timer  systemd-tmpfiles-clean.service
Mon 2020-12-07 00:00:00 CET 3 days left n/a                         n/a       paccache.timer               paccache.service              

3 timers listed.
Pass --all to see loaded but inactive timers, too.
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/archlinux_-_pacman.txt · Zuletzt geändert: 2022/12/19 17:52 von klaus