Como instalo o Oh My Zsh com uma instalação personalizada do Zsh?

4

Então, consegui instalar o zsh em uma máquina para a qual tenho acesso SSH (mas, principalmente, sem acesso root), conforme sugestões aqui . Eu então tentei instalar o Oh My Zsh, e fui recebido por esta mensagem:

Zsh is not installed! Please install zsh first!

O que não foi tão surpreendente. Ao inspecionar o script de instalação, o código para verificar se o zsh está instalado é:

CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
    printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n"
    exit
fi
unset CHECK_ZSH_INSTALLED

Portanto, sem acesso root, não consigo editar / etc / shells. Também é possivelmente importante notar que quando eu SSH neste sistema, eu não estou necessariamente logando na mesma máquina física; em vez disso, estou conectado a uma das várias máquinas, nas quais meu diretório pessoal é copiado. Atualmente tenho código no meu .profile que adiciona ~/bin ao meu $PATH e lança o zsh no login.

Essencialmente, há alguma maneira de contornar isso? Eu suponho que o script de instalação pode ser modificado para acomodar zsh sendo instalado em ~ / bin / zsh, mas apenas remover cegamente a lógica de verificação certamente não parece nada, se não mal aconselhado.

    
por element15 17.08.2016 / 23:06

1 resposta

8

A lógica de verificação está lá apenas para evitar que chsh falhe no final da instalação. Se o seu binário zsh não estiver listado em /etc/shells , você não poderá usar chsh para alterar seu shell de login. Nesse caso, executar ~/bin/zsh de um dos seus arquivos de inicialização de shells de login atuais é a única maneira de iniciar zsh automaticamente. Como ~/.profile geralmente é usado apenas para sessões de login, ele deve estar bem. Você pode querer executar zsh -l para obter uma sessão de login em vez de apenas uma sessão interativa (é diferente em quais arquivos de configuração são carregados).

Para instalar oh-my-zsh , você terá que remover algum código de install.sh : a verificação mencionada na pergunta e onde ela tenta executar automaticamente% código%. Ou você apenas executa os dois comandos a seguir:

git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

A menos que você queira instalar oh-my-zsh em algum lugar que não seja chsh , nada mais é necessário. Tudo o mais em ~/.oh-my-zsh é apenas:

  • salvaguardas contra a substituição de uma instalação oh-my-zsh já existente no mesmo local, o que install.sh impediria de qualquer forma
  • fazendo o backup de git clone , o que você provavelmente não tem em uma instalação nova
  • definindo o shell de login, que não funciona no seu caso de qualquer maneira
  • e muita saída colorida.
por 18.08.2016 / 08:27