我应该用机架覆盖机架吗?

Should I overwrite rack with rackup?

提问人:nipponese 提问时间:11/14/2023 更新时间:11/14/2023 访问量:67

问:

我正在尝试更新到最新版本的 Rails 并收到以下错误:

➜  ~ gem update rails
Updating installed gems
Updating rails
rackup's executable "rackup" conflicts with rack
Overwrite the executable? [yN]  
ERROR:  Error installing rails:
    "rackup" from rackup conflicts with installed executable from rack

我应该用机架替换机架吗?

系统信息

➜  ~ ruby --version
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]

➜  ~ rails --version
Rails 7.0.8

➜  ~ sw_vers -productVersion 
14.1

➜  ~ uname -v
Darwin Kernel Version 23.1.0: Mon Oct  9 21:28:45 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6020
Ruby-on-Rails 红宝石

评论

0赞 tadman 11/14/2023
如果您以前从未使用过此可执行文件,则这不是问题。
3赞 Stefan 11/14/2023
看起来像是版本问题。从 3 开始,可执行文件被提取到具有相同名称的 gem 中。从 2.x 更新到 3.x 应该可以解决问题。rackrackuprack

答:

0赞 Richard Logwood 12/15/2023 #1

我在 Ubuntu 23.10 安装时遇到了同样的问题。在阅读了关于您的问题的评论后,我中断了安装并安装了 gem。打开新 shell 并重新运行已完成,没有问题。railsrackupgem install rails

已安装的 gemrackup

$ gem install rackup
rackup's executable "rackup" conflicts with rack
Overwrite the executable? [yN]  y
Successfully installed rackup-2.1.0
Parsing documentation for rackup-2.1.0
Installing ri documentation for rackup-2.1.0
Done installing documentation for rackup after 0 seconds
1 gem installed

同时更新了 RubyGems

NOTE:
A new release of RubyGems is available: 3.4.14 → 3.4.22!
Run `gem update --system 3.4.22` to update your installation.

$ gem update --system 3.4.22
. . .

之后 7.1.2 安装没有错误:rails

$ gem install rails
. . .
$ rails -v 
Rails 7.1.2