Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:archlinux_-_pacman

Dies ist eine alte Version des Dokuments!


ArchLinux - Pacman

Der zentrale Paketmanager bei ArchLinux ist pacman. pacman verwaltet Binärpakete im Format .pkg.tar.xz (ursprünglich .pkg.tar.gz), welche das Programm aus den offiziellen Paketquellen bezieht. Es lassen sich auch zusätzlich, inoffiziell Paketquellen einbinden und über die Paketverwaltung installieren.

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 nachfolge z.B. 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 -Ql pacman-contrib
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 nachfoglender 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, wieviel Speicherplatz durch eine Bereinigung mittels dem Befehl paccache eingespart bzw. freigegeben werden kann, kann nachflolgender 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 alle 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)
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.1606982077.txt.gz · Zuletzt geändert: 2020/12/03 08:54 von klaus