macos - Mac OS X 上多个管理员用户的 Brew + Zsh + Oh My Zsh 的正确设置是什么?

标签 macos homebrew zsh oh-my-zsh zshrc

我的问题是在运行 Homebrew 方面运行两个管理员帐户进行开发的好方法是什么? , ZshOh My Zsh并配置 .zshrc文件?

我的理由是,我最近开始了一份新工作,并想使用我的 Mac 的两个帐户,这两个帐户都是管理员,而这两个帐户我都需要 devtools 以保持我的工作/开发和个人生活/dev 干净分离。我刚刚删除了我的硬盘驱动器并干净地安装了 OS X 10.12.3 并创建了两个管理员帐户。

我已经尝试过设置它,但是每当我切换帐户和运行终端时都会出现权限错误,通常特定于 zsh 完成。

我的步骤:

  • 在两个用户上安装 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" .
  • 使用 brew 安装 zsh brew install zsh并更改为 chsh -s /bin/zsh .
  • 通过 sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 用 curl 安装 oh my zsh .
  • 运行 sudo chown -R $(whoami):admin /usr/local .

  • 然后我尝试了一堆乱七八糟的东西,我不会添加这些东西,因为我相信它们只会引导其他人走上黑暗的道路。

    最佳答案

    虽然这一步以 root 身份运行是安全的,但我仍然建议以非 root 用户身份运行安装,以防止在 shell 不工作时 root 切换 shell 的灾难性问题。永远不应更改 super 用户 shell。

    这是安装的正确方法oh-my-zsh为多个用户。

    步骤 1:确保 umask 不比 022 更严格。如果没有将其设置为 022。

    $ umask 022
    

    第 2 步:使用将安装共享 oh-my-zsh 的目标路径设置并导出 ZSH。
    export ZSH=/usr/local/.zsh/oh-my-zsh
    

    第 3 步:创建父目录并使其归安装脚本的用户所有。
    $ sudo mkdir /usr/local/.zsh
    $ sudo chown ${USER} /usr/local/.zsh
    

    第 4 步:运行安装程序。
    $ bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    

    第 5 步:将安装路径的所有权更改回 root。
    $ sudo chown -R root /usr/local/.zsh
    

    第六步:更新ZSH在${ZSH}/templates/zshrc.zsh-template中的位置
    $ sudo sed -i 's|export ZSH=.*|export ZSH='${ZSH}'|' ${ZSH}/templates/zshrc.zsh-template
    

    (可选的)
    第 7 步:禁用自动更新。建议这样做,因为安装现在由 root 拥有。
    $ sudo sed -i 's/# DISABLE_AUTO_UPDATE="true"/DISABLE_AUTO_UPDATE="true"/' ${ZSH}/templates/zshrc.zsh-template
    

    从这里开始,每个用户都可以复制${ZSH}/templates/zshrc.zsh-template作为 ~/.zshrc

    关于macos - Mac OS X 上多个管理员用户的 Brew + Zsh + Oh My Zsh 的正确设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42874424/

    相关文章:

    macos - 在 OSX 10.12 上升级 ffmpeg(或 rust)找不到 make

    macos - 命令未找到 go — 安装 Go 后在 Mac 上

    objective-c - Cocoa 中 GetNextEvent 的现代等价物是什么?

    macos - brew cask 更新或卸载错误 : definition is invalid: invalid 'depends_on macos' value: ":lion"

    python - SSL错误 : Not a directory

    macos - 安装最新版本的 OS X(Yosemite 或 El Capitan)后缺少 `pg_tblspc`

    linux - 生成推荐选项的 zsh 选项

    shell - zsh while 循环在使用浮点运算的三重嵌套循环中过早退出

    linux - bash - 获取运行脚本的目录

    macos - 如何在 Mac OS X 上正确挂起 vagrant vm 以便能够毫无障碍地恢复它?