Mac OSX Mavericks-ZSH 无法“source ~/.zshrc”,打开的文件太多

Mac OSX Mavericks-ZSH 无法“source ~/.zshrc”,打开的文件太多

我无法对我的 .zshrc(或者我的 .bash_profile)进行任何更改,因为当我尝试时出现此错误:

/Users/ME/.zshrc:source:100: too many open files: /Users/ME/.zshrc

我试过了ulimit -n 10000,但是没用。我还尝试添加一个 launchd.conf 文件(那里没有,我必须创建它)来永久更改硬文件和软文件限制,但是重启时,我的终端立即崩溃并显示一条Process Completed消息。(删除 launchd.conf 文件并重启可修复此问题)。

这可能与此有关:出于某种原因,我的$PATH变量非常长,有数千个字符。有很多重复的部分,例如,如果我执行以下命令,以下是我得到的结果的一部分echo $PATH

/Applications/MAMP/bin/php/php5.4.10/bin:/Applications/MAMP/bin/php/php5.4.10/bin:/Applications/MAMP/bin/php/php5.4.10/bin:/Applications/MAMP/bin/php/php5.4.10/bin:/Applications/MAMP/bin/php/php5.4.10/bin........

这样的情形持续了数百次。

这让我认为 MAMP 中的某些东西正在一遍又一遍地重写我的 $PATH 变量,从而导致了我所有的其他问题,但我找不到它发生在哪里,也不知道如何解决它。

有人遇到过这种情况吗?

答案1

这是一个十年前的问题,但是这些症状很容易在 ~/.zshrc 中重现:

path+=/Applications/MAMP/bin/php/php5.4.10/bin
source ~/.zshrc

这表明启动文件链中的某个东西正在为其中一个启动文件提供来源。

答案2

要查找 PATH 变量中损坏的内容,在 Mavericks 上,您需要检查以下文件:

cat /etc/paths
ls -l /etc/paths.d/

(我敢打赌你会发现一些有关 MAMP 的东西!)

我会将所有东西移到/etc/paths.d/安全的地方,重新启动,看看是否有帮助。

如果确实如此(因为您也可以在其他地方拥有路径) - 从/etc/paths.d/相关的“MAMP”发布文件,我们会查看。

相关内容