O pacote zsh contém um interpretador de comandos (shell) utilizável como um shell de login interativo e como um processador de comando de script de shell. Dos shells padrão, o zsh é o que mais se assemelha ao ksh, mas inclui muitos aprimoramentos.
Esse pacote é conhecido por construir e funcionar adequadamente usando-se uma plataforma LFS 13.1.
Transferência (HTTP): https://www.zsh.org/pub/zsh-5.9.2.tar.xz
Soma de verificação MD5 da transferência: 5c8305ba85166838ef062c5e7b245820
Tamanho da transferência: 3,3 MB
Espaço em disco estimado exigido: 66 MB (inclui documentação e testes)
Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; inclui documentação e testes)
Quando existe um lançamento novo do zsh, os arquivos antigos mostrados acima são movidos para um novo diretório do servidor: https://www.zsh.org/pub/old/ .
Os arquivos de documentação contém referências aos arquivos de
configuração do zsh em /etc, mas nós
usaremos /etc/zsh para armazenar
esses arquivos de configuração em vez disso. O sistema de
construção atualizará essas referências se o pacote yodl estiver disponível, mas ele está fora do
escopo do BLFS. Como resultado, nós precisamos corrigir as
referências manualmente:
sed -e 's|/etc/z|/etc/zsh/z|g' \
-i Doc/*.*
Instale zsh executando os seguintes comandos:
./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
Se você tiver texlive-20260301 instalado, poderá construir a documentação no formato PDF emitindo o seguinte comando:
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf
Para testar os resultados, emita: make check.
Agora, como o(a) usante 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
Se você construiu o formato PDF da documentação, [então] instale-o
emitindo o seguinte comando como o(a) usuário(a) root:
install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9.2
--sysconfdir=/etc/zsh e
--enable-etcdir=/etc/zsh:
Esses parâmetros são usados para que todos os arquivos de
configuração do zsh sejam
consolidados no diretório /etc/zsh.
Omita esses parâmetros se você desejar manter a compatibilidade
histórica tendo todos os arquivos localizados no diretório
/etc.
--enable-cap: Essa opção
habilita os recursos POSIX.
--enable-gdbm: Essa opção
habilita o uso da biblioteca GDBM.
--enable-pcre: Essa opção
permite que o zsh use a biblioteca de expressões regulares
PCRE2 em integrados de shell.
Existe toda uma série de arquivos de configuração para o
zsh, incluindo /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin e /etc/zsh/zlogout. Você consegue encontrar mais
informação a respeito deles na zsh(1) e nas páginas de
manual relacionadas.
Crie um arquivo /etc/zsh/zprofile
básico. Assim como o /etc/profile
fornecido em Os Arquivos de Iniciação
do Shell Bash, ele configura algumas funções auxiliares e
alguns parâmetros básicos e, em seguida, carrega os conjuntos de
comandos sequenciados em /etc/profile.d:
install -vdm755 /etc/zsh &&
cat > /etc/zsh/zprofile << "EOF"
# Begin /etc/zsh/zprofile
# Written for Beyond Linux From Scratch
# System wide environment variables and startup programs.
# Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: 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"
}
# Set the initial path
export PATH=/usr/bin
# Attempt to provide backward compatibility with LFS earlier than 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
# Set some defaults for graphical systems
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
# End /etc/zsh/zprofile
EOF
Na primeira vez que o zsh for executado, você será avisado(a) por
mensagens com várias perguntas. As respostas serão usadas para
criar um arquivo ~/.zshrc. Se
desejar executar essas perguntas novamente, [então] execute
zsh
/usr/share/zsh/5.9.2/functions/zsh-newuser-install
-f.
Existem vários prompts avançados integrados. No shell
zsh, inicie o
suporte avançado de prompt com autoload -U promptinit e, em
seguida, promptinit. Os nomes
disponíveis de prompt são listados com prompt -l. Selecione um em
particular com prompt <nome-de-prompt>. Exiba
todos os prompts disponíveis com prompt -p. Exceto os comandos
list e display acima, você consegue inserir os outros em
~/.zshrc para serem executados
automaticamente quando o shell iniciar, com o prompt que
escolher.
Atualize /etc/shells para incluir
os nomes do aplicativo de shell zsh (como o(a) usuário(a) root):
cat >> /etc/shells << "EOF"
/bin/zsh
EOF