Daux auf Manjaro installieren

Mittwoch, 13. Dezember, 2023

In Manjaro Linux gibt es Pakete - darunter auch PHP und ist schnell installiert. Den Composer nachzuschieben ist ein Nobrainer und dann kann man

composer global require daux/daux.io

aufrufen, um Daux lokal zu installieren. Das klingt alles straight forward. Wie bei allen anderen Distros mit Paketmanagement auch.

Es gibt jedoch unter Manjaro ein ABER: ein “daux generate” verweigert seinen Dienst, sobald man das Generieren einer Offline-Javascript Suche in einem Doc Projekt aktiviert hat. Es fehle die Funktion iconv. Das entsprechende PHP-Paket kann man installieren, aber dann wird der Apache httpd gleichsam installiert.

Daher nochmal Reset und von vorn. Wie bekommt man Daux nun inkl. Suche zum Laufen? Also, ohne einen Webserver installieren zu müssen und rein mit PHP-CLI?

(1) PHP-Quelle einbinden

Es gibt neben Manjao-Paketen weitere Quellen, die man einbinden kann.
https://aur.archlinux.org/pkgbase/php82

Man folge der dortigen Anleitung:
(a) als root in der /etc/pacman.conf eintragen

[home_el_archphp_Arch]
Server = https://download.opensuse.org/repositories/home:/el:/archphp/Arch/$arch

(b) als root in der Shell:

key=$(curl -fsSL https://download.opensuse.org/repositories/home:el:archphp/Arch/$(uname -m)/home_el_archphp_Arch.key)
fingerprint=$(gpg --quiet --with-colons --import-options show-only --import --fingerprint <<< "${key}" | awk -F: '$1 == "fpr" { print $10 }')
pacman-key --init
pacman-key --add - <<< "${key}"
pacman-key --lsign-key "${fingerprint}"

Und zum Aktualisieren der Paket-Datenbank

pacman -Syy

(2) PHP Pakete installieren

Man installiere diese Pakete:

php82
php82-cli
php82-iconv
php82-mbstring
php82-openssl
php82-phar

Jene werden benötigt, um den Composer zu compilieren.

(3) php verfübar machen

Noch schnell ein Zwischenschritt.

Nach Installieren von PHP82-cli wird bei Eingabe “php” auf der Shell kein Binary gefunden. Das, weil es “php82” heisst - Daux wird aber nach “php” suchen. “which php82” verrät uns, dass es unter /usr/bin liegt (oder aber man schaut in die Paket-Details).

Wie lösen wir das? Ich würde zu einem Softlink greifen.
Man kann sich mit “echo $PATH” ansehen, welche bin-Verzeichnisse verfügbar sind. Weil ich bei mir am Rechner nur allein mit meinem lokalen User arbeite, lege ich den Softlink unter meinem $HOME an. Soll es global für alle User funktionieren, würde ich den Softlink in /usr/bin/ anlegen.

cd ~/bin/
ln -s /usr/bin/php82 php

Test: Wenn anschliessend “php -v” nun etwas ausgibt, dann passt es.

(4) PHP Composer 8.2 installieren

Nun kann man den php82-composer aus den AUR installieren. AUR muss man folglich im Paketmanager aktiviert haben.

(5) Daux installieren

composer82 global require daux/daux.io

Also … statt “composer” ist “composer82” entsprechend der PHP-Version aufzurufen.

(6) Daux verwenden

daux generate

… voila: funktioniert nun inkl. Suche! Viel Spass!

Weiterführende Links:

  1. daux.io (en)
  2. Arch :: Package Base Details: php82 (en)