Le paquet ZSH contient un interpréteur de commandes (shell) utilisable en tant que shell de connexion interactif et en tant que manipulateur de commandes de shell script. Parmi les shells standards, ZSH est l'un des plus ressemblant à KSH mais il comprend beaucoup d'améliorations.
Les versions de développement de BLFS peuvent ne pas arriver à contruire ou à exécuter certains paquets correctement si LFS ou des dépendances ont été mises à jour depuis la dernière version stable des livres.
Téléchargement (HTTP) : https://www.zsh.org/pub/zsh-5.9.2.tar.xz
Somme de contrôle MD5 du téléchargement : 5c8305ba85166838ef062c5e7b245820
Taille du téléchargement : 3,3 Mo
Estimation de l'espace disque requis : 66 Mo (avec la documentation et les tests)
Estimation du temps de construction : 1,6 SBU (avec parallélisme = 4 ; avec la documentation et les tests)
Quand il y a une nouvelle publication de zsh, les anciens fichiers montrés précédemment sont déplacés dans un nouveau répertoire du serveur : https://www.zsh.org/pub/old/.
Les fichiers de documentation contiennent des fichiers de
configuration zsh dans /etc, mais
nous utilisons /etc/zsh pour ces
fichiers de configuration. Le système de construction mettra à jour
ces références si le paquet yodl
est disponible, mais il ne rentre pas dans le périmètre de BLFS. En
conséquence, nous devons corriger les références
manuellement :
sed -e 's|/etc/z|/etc/zsh/z|g' \
-i Doc/*.*
Installez zsh en exécutant les commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc/zsh \
--enable-etcdir=/etc/zsh \
--enable-cap \
--enable-gdbm \
--enable-pcre &&
make &&
makeinfo Doc/zsh.texi --html -o Doc/html &&
makeinfo Doc/zsh.texi --plaintext -o zsh.txt &&
makeinfo Doc/zsh.texi --html --no-split --no-headers -o zsh.html
Si vous avez installé texlive-20260301, vous pouvez construire la documentation au format PDF en exécutant les commandes suivantes :
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf
Pour tester les résultats, exécutez : make check.
Maintenant, en tant qu'utilisateur root :
make install &&
make infodir=/usr/share/info install.info &&
make htmldir=/usr/share/doc/zsh-5.9.2/html install.html &&
install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-5.9.2
Si vous avez construit la documentation au format PDF, installez-le
en exécutant la commande suivante en tant qu'utilisateur
root :
install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9.2
--sysconfdir=/etc/zsh et
--enable-etcdir=/etc/zsh : Ces
paramètres sont utilisés pour que tous les fichiers de
configuration de zsh soient
regroupés dans le répertoire /etc/zsh. Ne mettez pas ces paramètres si vous
souhaitez assurer une compatibilité historique en mettant tous les
fichiers dans le répertoire /etc.
--enable-cap : ce
paramètre active les possibilités POSIX.
--enable-gdbm : ce
paramètre active l'utilisation de la bibliothèque GDBM.
--enable-pcre : Ce
paramètre permet à zsh d'utiliser la bibliothèque d'expression
régulière PCRE2 dans les
intégrations du shell.
Il y a tout un tas de fichiers de configuration pour ZSH, incluant /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin et /etc/zsh/zlogout. Vous pouvez trouver plus
d'informations à leur sujet dans zsh(1) et les pages de
manuel qui s'y rapportent.
Créez un fichier /etc/zsh/zprofile
de base. Comme pour /etc/profile
qui a été fourni dans Les fichiers de
démarrage du shell Bash, il met en place certaines fonctions
auxiliaires et certains paramètres de base, puis charge les
scripts de /etc/profile.d :
install -vdm755 /etc/zsh &&
cat > /etc/zsh/zprofile << "EOF"
# Début de /etc/zsh/zprofile
# Écrit pour Beyond Linux From Scratch
# Variables d'environnement et programmes de démarrage pour tout le système.
# Fonctions pour aider à gérer les chemins. Le second argument est le nom de la
# variable de chemin à modifier (par défaut : PATH)
pathremove () {
local IFS=':'
local NEWPATH
local DIR
local PATHVARIABLE=${2:-PATH}
for DIR in ${(P)=PATHVARIABLE} ; do
if [ "$DIR" != "$1" ] ; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
export $PATHVARIABLE="$NEWPATH"
}
pathprepend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="$1${(P)PATHVARIABLE:+:${(P)PATHVARIABLE}}"
}
pathappend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="${(P)PATHVARIABLE:+${(P)PATHVARIABLE}:}$1"
}
# Indique le chemin initial
export PATH=/usr/bin
# Essaye de fournir une compatibilité arrière avec les LFS antérieures à la version 11
if [ ! -L /bin ]; then
pathappend /bin
fi
if [ $EUID -eq 0 ] ; then
pathappend /usr/sbin
if [ ! -L /sbin ]; then
pathappend /sbin
fi
unset HISTFILE
fi
# Indique quelques valeurs par défaut pour les systèmes graphiques
export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share}
export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg}
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}
for script in /etc/profile.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
unset script
# Fin de /etc/zsh/zprofile
EOF
La première fois que zsh est lancé, vous devrez répondre à
quelques questions. Les réponses seront utilisées pour créer un
fichier ~/.zshrc. Si vous souhaitez
lancer ces questions de nouveau, lancez zsh
/usr/share/zsh/5.9.2/functions/zsh-newuser-install
-f.
Plusieurs invites de commandes avancées sont construites. Dans le
shell zsh, démarrez
le support des invites de commandes avancées avec autoload -U promptinit, ensuite
promptinit. Les
noms des invites de commandes disponibles sont listés avec
prompt -l.
Sélectionnez-en une en particulier avec prompt <prompt-name>. Affichez
toutes les invites de commandes disponibles avec prompt -p. En dehors de la
liste et les commandes d'affichages, vous pouvez insérer les
autres dans ~/.zshrc pour qu'elles
soient automatiquement exécutées au démarrage du shell, avec
l'invite de commande de votre choix.
Mettez à jour /etc/shells pour
inclure les noms de programme shell ZSH (en tant qu'utilisateur root) :
cat >> /etc/shells << "EOF"
/bin/zsh
EOF