【问题标题】:Mac/Xcode - pod install, pod init, pod... all error "bad interpreter: No such file or directory"Mac/Xcode - pod install, pod init, pod...所有错误“错误的解释器:没有这样的文件或目录”
【发布时间】:2021-06-17 06:52:24
【问题描述】:

我看到很多很多与最近的 Mac OS/xCode 更新相关的类似问题的实例,其中提出了许多似乎经常起作用的解决方案。到目前为止,没有一个对我有用。这就是我所看到的。

我有一个使用 cocoapods 的长期 xCode 项目。第二个开发人员在不同的系统上进行了一些更新,导致构建错误读取:

"The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation."

当我使用终端尝试“pod init、pod update、pod install、pod deintegrate 等...我得到:

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory

我机器上实际存在的 Ruby 版本是 2.6,而不是 2.3

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby:

我的机器上没有文件夹位于

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby:

$ which ruby 说:/usr/bin/ruby 该文件确实存在。

多个消息来源说 HOMEBREW 安装的 ruby​​ 可以在以下位置找到:

/usr/local/opt/ruby/bin/ruby

目前在该位置没有 Ruby 的别名。 /usr/local/opt 充满了文件夹别名,但没有“ruby”别名

我已经删除并重新安装了 xCode 命令行工具,但是当我尝试使用 homebrew 做任何事情(brew doctor、brew update、brew upgrade 等)时,我收到如下错误:

Mainframe:~ username$ brew -v
Homebrew 0.9.5
Mainframe:~ username$ brew upgrade
Traceback (most recent call last):
    4: from /usr/local/Library/brew.rb:31:in `<main>'
    3: from /usr/local/Library/Homebrew/os/mac.rb:15:in `version'
    2: from /usr/local/Library/Homebrew/os/mac.rb:15:in `new'
    1: from /usr/local/Library/Homebrew/os/mac/version.rb:24:in `initialize'
/usr/local/Library/Homebrew/version.rb:176:in `initialize': Version value must be a string (TypeError)

所有这一切的开始(显然)是因为在其他开发者机器上有些不同。几天来我一直在兜售这个问题,但一无所获。

完成所有这些之后,我认为问题出在我的机器开始寻找不存在的 Ruby 2.3 而不是存在的 2.6 但我不知道如何确定或如何解决它。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby xcode cocoapods homebrew


    【解决方案1】:

    解决方案:破解 pod 文件

    短版: 1.) 在 usr/local/bin/pod 打开文件 2.) 将顶行的 2.3 更改为 2.6

    长版:

    有一个可执行文件位于:usr/local/bin/pod 内容如下:

    #!/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
    #
    # This file was generated by RubyGems.
    #
    # The application 'cocoapods' is installed as part of a gem, and
    # this file is here to facilitate running it.
    #
    
    require 'rubygems'
    
    version = ">= 0.a"
    
    if ARGV.first
      str = ARGV.first
      str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
      if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
        version = $1
        ARGV.shift
      end
    end
    
    load Gem.bin_path('cocoapods', 'pod', version)
    

    我在以下位置打开了文件:usr/local/bin/pod 并编辑第一行将 2.3 更改为 2.6。

    这有一些影响。现在,如果我 cd 进入我的 xcode 项目并尝试运行“pod update”,我会得到一个不同的错误。

    Mainframe:graffwriter username$ pod update
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin20/rbconfig.rb:229: warning: Insecure world writable dir /Users/pilotrase/bin/FDK/Tools/osx in PATH, mode 040777
    Traceback (most recent call last):
        2: from /usr/local/bin/pod:22:in `<main>'
        1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:262:in `bin_path'
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': can't find gem cocoapods (>= 0.a) with executable pod (Gem::GemNotFoundException)
    

    豆荚现在似乎不见了……

    我跑了:

    sudo gem install -n /usr/local/bin cocoapods
    

    似乎奏效了。

    我跑了:

    pod update
    

    似乎奏效了。

    我打开了 xCode 项目并运行了构建。错误不再发生,构建成功。

    【讨论】:

      【解决方案2】:

      我机器上实际存在的 Ruby 版本

      其实,这就是问题的根源。在任何情况下都不应使用系统红宝石!使用 rbenv 来控制你的 ruby​​ 版本。

      sudo gem install ...
      

      哗啦啦!游戏结束,感谢参与。你不得不说 sudo 的事实是一个重大的赠品。这会给以后带来很大的麻烦。同样,这是因为您使用的是邪恶的系统 ruby​​。这总是错误的。它不适合公众使用!使用 rbenv,永远不要再说sudo

      【讨论】:

      • 嗨,马特,好名字。我是马特。谢谢你的提示。看起来像一个很棒的教程。我正在研究我可以控制的版本。问题的具体原因是指向不存在的旧版本系统 Ruby 的配置(pod)文件。由于 Ruby 2.3 不存在,因此解构或重新安装 pod 的标准程序都不起作用。更新 Homebrew 对我来说也不是很顺利,所以我现在备份到问题的根源。下面的解决方案有效,从我正在阅读的内容来看,我认为很多人可能有同样的问题。
      猜你喜欢
      • 2015-10-05
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2017-08-15
      相关资源
      最近更新 更多