Kompilowanie DWM do Arch Linux. Brak Xft.h?
Próba skompilowania Dwm Tile Manager (który używa Xorg) w Arch Linux obecnie powoduje następujący błąd ( oryginalny załączony plik ):
dwm build options:
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/include/X11 -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION="6.2" -DXINERAMA
LDFLAGS = -L/usr/lib -lX11 -lXinerama -lfontconfig -lXft
CC = cc
cc -c -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/include/X11 -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"6.2\" -DXINERAMA drw.c
drw.c:6:10: fatal error: X11/Xft/Xft.h: No such file or directory
6 | #include <X11/Xft/Xft.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:18: drw.o] Error 1
Czy to oznacza, że Xft.hbiblioteka jest wymagana do skompilowania DWM?
Menedżer pakietów Arch Linux nie może zainstalować serwera Xorg (który zawiera Xft.h), pozostawiając ten błąd pliku kluczy ( oryginalny załączony plik ):
resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency
Packages (21) freetype2-2.10.2-1 graphite-1:1.3.14-1 harfbuzz-2.7.2-1 libepoxy-1.5.4-2 libevdev-1.9.1-1 libfontenc-1.1.4-3 libgudev-234-1 libinput-1.16.1-1 libpng-1.6.37-3 libwacom-1.5-1 libxfont2-2.0.4-3 libxkbfile-1.1.0-2 mtdev-1.1.6-1 pixman-0.40.0-1 xf86-input-libinput-0.30.0-1 xkeyboard-config-2.30-2 xorg-fonts-encodings-1.0.5-2 xorg-server-common-1.20.9-2 xorg-setxkbmap-1.3.2-2 xorg-xkbcomp-1.4.3-1 xorg-server-1.20.9-2
Total Installed Size: 23.80 MiB
:: Proceed with installation? [Y/n] checking keyring...
downloading required keys...
:: Import PGP key 3B94A80E50A477C7, "Jan Alexander Steffens (heftig) <[email protected]>"? [Y/n] error: key "3B94A80E50A477C7" could not be looked up remotely
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.
Czy istnieje alternatywny sposób uzyskania Xft.h?
Odpowiedzi
Tak, kompilator skarży się, że nie może znaleźć X11/Xft/Xft.hkatalogów dołączania w systemie.
Możesz zapytać bazę danych plików pacmana, aby dowiedzieć się, które pakiety, w tym te niezainstalowane, dostarczają plik:
sudo pacman -Fy # the database likely needs to be refreshed
pacman -F Xft.h
Lub, jeśli masz zainstalowaną bardziej bogatą w funkcje pkgfile(która utrzymuje własną bazę danych plików):
pkgfile Xft.h
Oba powiedzą Ci, że usr/include/X11/Xft/Xft.hjest to dostarczane przez libxft.
Zwróć uwagę, że możesz również skorzystać z istniejących pakietów: dwm istnieje w AUR i nawet jeśli chcesz skompilować własną wersję, możesz nadal spojrzeć na zależności („depend”, „makedepends”) zadeklarowane w PKGBUILDdostarczonym tam pliku.
Zgłoszenia problemów z kluczem gpg [email protected] pojawiały się więcej niż raz na forach Arch Linux w ciągu ostatnich kilku miesięcy [1] [2] . Jeśli Twój archlinux-keyringpakiet jest aktualny i nadal widzisz błędy związane z brakującym kluczem, możesz spróbować zaimportować klucz 3B94A80E50A477C7, który jest podkluczem:
sudo gpg --recv-keys --keyserver hkp://pool.sks-keyservers.net \
--homedir /etc/pacman.d/gnupg 19802F8B0D70FC30