为什么我有/如何解决此错误:“ shell_session_update:未找到命令”

裂解

背景

我正在使用OS X El Capitan(10.11.3)在MacBook上使用Ruby 2.x和Rails 4.x,使用鱼壳,并使用此页面上列出的集成功能:RVM-Fish Shell(集成)

问题

当执行各种命令如rvm versionrvm install ...rvm use ...rvm --default ...等,收到以下错误消息:

/var/folders/2w/zhgybz7d25s1gdy41qdxwp48001gfh/T/rvm.fish.Pqd0CuZRJW: shell_session_update: command not found

与其他许多开发设置问题一样,Google快速搜索不会返回任何相关的结果来帮助我识别和/或解决问题。

我在rvm.fish功能文件,.config/fish目录以及$HOME/.rvm/bin/rvm主可执行文件中进行了快速文本搜索,但没有看到诸如shell_session_update直接在该文件中调用的命令

问题

有谁知道为什么会这样,我该如何解决?我是一个喜欢将东西固定在我眼前的人,因此只有我需要采取行动的东西才会出现在我眼前,因此我想删除此错误/警告消息。:)

PS我尝试安装和使用的特定Ruby版本(2.0.0)似乎可以正常运行,即使在同一终端(iTerm(2))会话中,也无需重新启动它。从那以后,我已经关闭了那个并创建了一个新的终端会话,并且在运行上述各种命令时仍然看到该消息。

裂解

TL; DR:通过重新安装或发出命令确保RVM至少为1.26.11 rvm get head,并且在每个终端环境中仅初始化一次。

结果

最终,我得以修复我的环境。我将发布一些与我的特定问题有关的信息,以帮助某些人,即使其他人可能具有相同的症状但又是另一个根本原因。

原因

根本问题的一部分来自RVM,以及如何针对我的命令行环境对其进行初始化。我发现了几种不同的方法来执行此操作,特别是因为针对fish外壳环境专门设计了一种额外的方法

似乎根本原因是:

  • 多次初始化RVM,因为我有多个语句,每个终端配置文件一个,并且由于它们如何链接,我不知道其他语句是自动添加的。
  • 或者,以某种方式添加了一些语句,这些语句混合了一个终端环境的初始化,例如fish,并在我的另一个终端环境中运行,bash反之亦然。可以在下面的详细信息中看到,其中损坏的bashPATH的某些路径用:s分隔,但其他路径也用空格分隔,这是的语法错误bash,但正确的fish
  • 或两者都在发生!

然后,根本问题的另一部分是,似乎最近有一个与RVM / direnv相关的错误爬上了有关陷阱功能的漏洞。我可能遇到了RVM的另一个有问题的发行版,这可能是由以下原因引起的:

  • 重新安装: curl -sSL https://get.rvm.io | bash
  • 手动更新: rvm get head
  • 通过添加rvm_autoupdate_flag=2自动更新(我刚刚完成的更新)~/.rvmrc

此问题应于2016年3月30日或版本1.26.11修复:

故事

在与GNU实用程序进行了全面的文件系统搜索,窥视文件内容之后,我使用Atom进行了此操作,从而获得更大的成功,并发现唯一出现的shell_session_update/etc/bashrc_Apple_TerminalZanchey提到文件(除历史文件外)等)。我也不确定为什么要运行它,因为我使用的是iTerm(2),$TERM_PROGRAM在这种情况下,valueiTerm.appand not Apple_Terminal

由于某种原因,我不得不多次管理RVM安装,这贯穿了整个安装过程,这显然没有帮助我配置配置,显然已经将配置添加到了多个“点文件”中,在这里我还手动添加了一些或以下代码行。

与此同时,我已经在Mac上制作了一个.bashrc文件并将其链接到该文件.bash_profile,因为默认情况下该文件显然不存在。以前,我曾在Linux系统上阅读过,按照惯例,.bash_profile它适用于某些定制,而.bashrc适用于其他定制,例如定义用户别名和函数,反之亦然。因此,我不习惯在用户目录(.bash_profile尤其是.profile类似系统也要复制)的所有目录中查找文件(尤其是文件)。我们也不要忘记path_helper在mix(!)中有一个,但是似乎并没有造成任何问题。

正确或错误的环境设置方法如下:

更多细节

为了获得更令人难以置信的冗长,下面是一些在调试问题时我在不同环境之间捕获的示例路径:

原始(断)鱼路径

/ Users /用户名/.rvm/gems/ruby-2.0.0-p648/bin / Users /用户名/.rvm/gems/ruby-2.0.0-p648@global/bin / Users /用户名/.rvm/rubies/ ruby-2.0.0-p648 / bin /用户/用户名/.rvm/bin/usr/local/bin/usr/bin/bin/usr/sbin/sbin/usr/local/munki/用户/用户名/.rvm/箱子

“自然地”更好的鱼路径

/ usr / local / opt / coreutils / libexec / gnubin / usr / local / opt / findutils / bin / usr / local / bin / usr / bin / bin / usr / sbin / sbin / usr / local / munki

原始(破碎)bash路径

/ libexec / gnubin:/ bin:/用户/用户名/.rvm/gems/ruby-2.0.0-p648/bin /用户/用户名/.rvm/gems/ruby-2.0.0-p648@global/bin /用户/username/.rvm/rubies/ruby-2.0.0-p648/bin /Users/username/.rvm/bin / usr / local / bin / usr / bin / bin / usr / sbin / sbin / usr / local / munki :/用户/用户名/.rvm/bin

'手动'固定bash路径

/ libexec / gnubin:/ bin:/用户/用户名/.rvm/gems/ruby-2.0.0-p648/bin:/用户/用户名/.rvm/gems/ruby-2.0.0-p648@global/bin: /用户/用户名/.rvm/rubies/ruby-2.0.0-p648/bin:/用户/用户名/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin: / sbin:/ usr / local / munki:/ Users /用户名/.rvm/bin:/Users/用户名/.rvm/bin

自然地更好的bash路径

/ usr / local / opt / coreutils / libexec / gnubin:/ usr / local / opt / findutils / bin:/ usr / local / opt / coreutils / libexec / gnubin:/ usr / local / opt / findutils / bin:/ usr /本地/ bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / munki

笔记:

  • “原始”是从出现问题时在任一命令行解释器中启动全新的环境开始的。
  • 当然,“手册”是指我使用了错误的路径字符串,修复了语法错误并看到了解释器的更正确的操作,因此我知道继续修复根本原因时会发生什么。
  • “自然”来自我首先跳过加载终端环境配置文件(例如.bashrc等等),然后在解决问题后最终使它们运行的​​过程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决“错误:/ bin / sh:py:命令未找到”?

代码不断出现错误“命令帮助已经是现有命令或别名”,为什么会这样,我该如何解决?

出现错误未找到模块:错误:Webpack构建时无法解析'../components/***',我该如何解决此问题?

苹果酒为什么找到错误版本的苹果酒-nrepl,我该如何解决?

shell 脚本中的“if[ 0 -lt 1] 命令未找到”错误

为什么此代码有“内联文件中的EOF”错误,我该如何解决?

如何解决MySql“无法执行此命令”错误?

如何解决此错误“以下参数是必需的:命令”

我如何解决:“ModuleNotFoundError:启动Django shell时没有模块命名错误”错误

为什么UNIX shell会这样,我该如何解决?

我该如何解决这个错误?(错误:未找到Gradle DSL方法:“ implementation()”)

如何解决Bash命令替换中的错误“ bash:!d':未找到事件”

如何解决'/ dev / fd / 63:...命令未找到'bash脚本错误

为什么我在运行mvn -DskipTests -Dgpg.skip = true安装时无法找到com.google.zxing:core:jar:2.2-SNAPSHOT错误,如何解决?

重击错误:此命令未找到

为什么没有找到CMAKE_CXX_COMPILER。如何解决?

如何解决此问题,当我尝试单击单击时会扩展的按钮时出现“无法找到元素”错误

如何解决此源未找到错误?使用缓冲的读取器读取文本文件-Java

如何解决Socket.io 404(未找到)错误?

如何解决配置:错误:未找到readline库?

如何解决Nginx静态资产未找到错误

如何解决Microsoft Azure中未找到DSInit的错误?

如何解决Pyinstaller模块未找到错误

如何解决错误静态文件未找到django

如何解决 Jitpack“错误:未找到构建工件”?

为什么我不断获取`bash:local:命令未找到`

尝试运行Shell脚本时出现错误“:命令未找到”

当我给出命令代码时。在 gitbash 中,它给出了未找到的命令,我还安装了 vs 代码。此问题的任何解决方案?

为什么会出现此错误,我该如何解决?迅速