Macos 无法激活MacPorts安装的Zsh

Macos 无法激活MacPorts安装的Zsh,macos,zsh,macports,Macos,Zsh,Macports,通过将以下路径设置为Settings,我将MacPorts安装的Zsh作为登录shell,但未成功 /opt/local/bin/zsh /opt/local/var/macports/software/zsh/4.2.7_0+mp_completion 我也把它放到了用户帐户的高级选项中。我得到以下错误 我将以下路径放入设置失败 /opt/local/bin/zsh /opt/local/var/macports/software/zsh/4.2.7_0+mp_completion

通过将以下路径设置为Settings,我将MacPorts安装的Zsh作为登录shell,但未成功

/opt/local/bin/zsh
/opt/local/var/macports/software/zsh/4.2.7_0+mp_completion
我也把它放到了用户帐户的高级选项中。我得到以下错误

我将以下路径放入设置失败

/opt/local/bin/zsh
/opt/local/var/macports/software/zsh/4.2.7_0+mp_completion
当我再次启动shell时,出现以下错误

login: /opt/local/var/macports/software/zsh/4.2.7_0+mp_completion: Permission denied

[Process completed]

如何将您的Zsh激活为登录shell?

您是否将shell输入到/etc/shell中。似乎Mac OS管理着其中的有效shell。我不能确切地说,因为我不在Mac上,正如诺伯特所说,我认为答案在/etc/shell中。我的建议是:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

/opt/local/bin/zsh
添加到该列表中,您就可以了。然后,您应该能够使用
chsh
更改shell(每个用户都可以单独更改),我知道这个问题已标记为已回答,但是

/opt/local/var/macports/software/zsh/4.2.7_0+mp_完成

甚至不是macports中的可执行文件。这就是你出错的原因。shell必须是可执行的

您想将shell设置为/opt/local/bin/zsh

这在《豹》和《雪豹》中对我都有效。OSX实际上并不使用/etc进行配置管理,它使用NetInfo(Leopard),现在它使用目录服务(Snow Leopard)。您希望通过右键单击系统首选项>帐户(S.L.)中的用户或使用Netinfo Manager(Leopard)来设置

编辑:

雪豹:苏多dscl-创建/Users/chiggsy UserShell/opt/local/bin/zsh

(创建或更新)


编辑:请想象我身上沾满了肮脏、恶臭的耻辱。我正在使用iTerm,在我的帐户中更改shell工作得非常完美。在Terminal中,我得到了与OP相同的结果,并通过编辑/etc/shells修复了它。现在,在我看来,我不应该仅仅通过使用第三方终端来绕过/etc/shell限制,但情况似乎是这样。

我发现Mac默认具有Zsh 4.3.4。MacPorts安装的版本为4.2.7。--我最初的问题是所有程序都要完成制表符。请注意,通过将以下内容放入.zshrc:autoload-U compinstall,您可以在不使用MacPorts的Zsh的情况下完成选项卡。它最终解决了我的问题。iTerm没有以任何方式更改您的登录shell或绕过/etc/shell。它只是设置您对运行shell iTerm的首选项。