如何使用自定义 Zsh 安装来安装 Oh My Zsh?

如何使用自定义 Zsh 安装来安装 Oh My Zsh?

因此,我刚刚按照建议在一台我有 SSH 访问权限(但重要的是,没有 root 访问权限)的机器上安装了 zsh这里然后我继续尝试安装 Oh My Zsh,并收到了以下消息:

Zsh is not installed! Please install zsh first!

这并不奇怪。检查安装脚本后,检查 zsh 是否安装的代码是:

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

因此,如果没有 root 权限,我就无法编辑 /etc/shells。可能还需要注意的是,当我通过 SSH 进入此系统时,我不一定登录到同一台物理机器;相反,我登录到几台机器中的一台,我的主目录被复制到这些机器中。目前,我的系统中有代码,可以在登录时.profile添加~/bin到我的系统中$PATH并启动 zsh。

从本质上讲,有什么办法可以解决这个问题吗?我认为可以修改安装脚本以适应将 zsh 安装到 ~/bin/zsh,但盲目地删除检查逻辑似乎没有什么用,如果不是不明智的话。

答案1

检查逻辑只是为了防止chsh在安装结束时失败。如果您的zsh二进制文件未在 中列出/etc/shells,您将无法使用它chsh来更改您的登录 shell。在这种情况下,~/bin/zsh从您当前的登录 shell 启动文件之一运行是自动启动的唯一方法zsh。由于~/.profile通常仅用于登录会话,所以应该没问题。您可能希望zsh -l从那里运行以获取登录会话,而不仅仅是交互式会话(它在加载的配置文件方面有所不同)。

为了安装哦我的天啊,您必须从中删除一些代码install.sh:即问题中提到的检查以及它尝试自动运行的位置chsh。或者您只需运行以下两个命令:

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

除非你想安装哦我的天啊除了~/.oh-my-zsh不需要其他任何东西之外,其他一切install.sh都只是:

  • 防止覆盖已经存在的哦我的天啊安装在同一个地方,这样git clone可以防止
  • 备份~/.zshrc,在全新安装时可能没有
  • 设置登录 shell,这对你的情况不起作用
  • 以及大量丰富多彩的输出。

相关内容