Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在OS X中是否可能设置了太多的$path?_Bash_Macos_Unix_Shell_Rubygems - Fatal编程技术网

Bash 在OS X中是否可能设置了太多的$path?

Bash 在OS X中是否可能设置了太多的$path?,bash,macos,unix,shell,rubygems,Bash,Macos,Unix,Shell,Rubygems,我最近一直在学习宝石,我犯的一个错误是: WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and /usr/bin aren't both writable. WARNING: You don't have /Users/Alex/.gem/ruby/1.8/bin in your PATH, gem executables will not run. ERROR: Error installing rubygam

我最近一直在学习宝石,我犯的一个错误是:

WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
  /usr/bin aren't both writable.
WARNING:  You don't have /Users/Alex/.gem/ruby/1.8/bin in your PATH,
 gem executables will not run.
ERROR:  Error installing rubygame:
 ffi requires rake (>= 0.8.7, runtime)
我知道UNIX(更具体地说,是bash)使用这个.bash_概要文件来知道在我运行脚本/命令时在哪里查找可执行文件,而且它是“按顺序”查找的

我的问题是:我是否可以在需要时继续在末尾添加目录,这样做是否会让我更容易。。。有什么事吗

(值得一提的是,我以“sudogem…”的形式重新运行了该命令,但它仍然显示“
ERROR:ERROR安装rubygame:
ffi需要rake(>=0.8.7,运行时)

)我不知道$PATH变量或任何一个env变量的长度有什么限制。但我猜一般来说,环境变量是有限制的,比如65KB的总量。仍然不确定。

我不知道$PATH变量或任何一个env变量的长度有什么限制。但我猜一般来说,环境变量是有限制的,s总大小约为65KB。仍然不确定。

您可以将内容添加到路径的末尾(或顶部),直到达到变量的长度限制。这就是looooong


但它会减慢命令搜索速度。每次键入命令时,可执行文件都会被搜索到路径告诉它搜索到的任何地方。命令输入错误可能会导致不存在的文件,而这些文件的排序速度可能会变慢。

您可以将内容添加到末尾(或顶部)直到达到变量的长度限制为止,即looooong


但它会减慢命令搜索速度。每次键入命令时,可执行文件都会被搜索到任何地方,路径告诉它搜索直到找到为止。命令输入错误可能会导致不存在的文件,而这些文件的排序速度可能会变慢。

我相信bash会缓存可执行文件的位置,因此即使路径很长,也不需要更长的时间来查找联合国方案


您可以尝试
sudo gem update rake
查找最后一个错误…

我相信bash会缓存可执行文件的位置,因此即使您有很长的路径,运行程序也不会花费更长的时间


您可以尝试
sudo gem update rake
查找最后一个错误…

实际上这取决于shell(用于命令搜索)。像zsh这样的聪明shell(每个人都应该使用它:p)保留所有可用命令的哈希表,这就是为什么您需要在安装某些东西后进行“重新哈希”的原因。嗯,bash进行哈希处理。(检查
帮助散列
)它是惰性散列,是的。它不会搜索尚未找到的内容。然后,手动重新对乳齿路径的活动散列进行散列,可以证明这是一个很长的操作。实际上,这取决于shell(用于命令搜索)。像zsh这样的聪明shell(每个人都应该使用它:P)保留一个包含所有可用命令的哈希表,这就是为什么在安装某些命令后需要进行“重新哈希”的原因。嗯,bash进行哈希运算。(检查
help hash
)它是惰性哈希,是的。它不会搜索它尚未找到的内容。然后,手动重新哈希乳齿路径的活动哈希,可能会被证明是一个很长的操作。