社区首页 >问答首页 >/usr/bin/env:‘ruby2.7’:没有此类文件或目录

/usr/bin/env:‘ruby2.7’:没有此类文件或目录
EN

Server Fault用户
提问于 2021-11-26 11:28:23
回答 1查看 3.3K关注 0票数 1

我试图在服务器上使用rbenv来设置ruby,而不是安装了ruby和bundler的apt-get版本。

我遵循数字海洋指南,只在ruby版本(我需要2.7.1)和ruby安装路径(PREFIX=~/local ./ruby-build/install.sh)上偏离,因为我不是根用户,所以所有东西都保存在我的主文件夹中。

什么起作用了

  • 安装rbenv
  • 安装ruby构建
  • rbenv install 2.7.1
  • rbenv shell 2.7.1
  • rbenv global 2.7.1
  • bundle install
  • sudo apt-get purge ruby

但是,bundle exec rake没有运行,并返回以下错误:

代码语言:javascript
代码运行次数:0
复制
/usr/bin/env: ‘ruby2.7: No such file or directory
代码语言:javascript
代码运行次数:0
复制
$ rbenv exec bundle exec ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
代码语言:javascript
代码运行次数:0
复制
$ rbenv exec bundle exec rake
Your Ruby version is 2.7.0, but your Gemfile specified 2.7.1

当我简单地在我的应用程序文件夹中运行rake时(没有经过bundle exec),我会得到以下错误:

代码语言:javascript
代码运行次数:0
复制
$ rake
rake aborted!
LoadError: libruby-2.7.so.2.7: cannot open shared object file: No such file or directory - /home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/msgpack-1.4.2/lib/msgpack/msgpack.so
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/msgpack-1.4.2/lib/msgpack.rb:8:in `require'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/msgpack-1.4.2/lib/msgpack.rb:8:in `'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/store.rb:4:in `require'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/store.rb:4:in `block in '
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/explicit_require.rb:44:in `rescue in with_gems'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/explicit_require.rb:40:in `with_gems'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/store.rb:4:in `'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache.rb:61:in `require_relative'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache.rb:61:in `'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap.rb:5:in `require_relative'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap.rb:5:in `'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/setup.rb:2:in `require_relative'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/setup.rb:2:in `'
/home/gchampenois/www/staging/releases/20211126155023/config/boot.rb:4:in `require'
/home/gchampenois/www/staging/releases/20211126155023/config/boot.rb:4:in `'
/home/gchampenois/www/staging/releases/20211126155023/config/application.rb:1:in `require_relative'
/home/gchampenois/www/staging/releases/20211126155023/config/application.rb:1:in `'
/home/gchampenois/www/staging/releases/20211126155023/Rakefile:4:in `require_relative'
/home/gchampenois/www/staging/releases/20211126155023/Rakefile:4:in `'

它看起来像是运行rbenv exec bundle exec rake [command] actually调用 /usr/local/bin/bundle而不是rbenv的shim,尽管.rbenv/shims.rbenv/binPATH中是第一位的。

知道为什么吗,以及如何解决这个问题?

我已经尝试过了,

  • gem update --system
  • rbenv rehash
  • 完全拆卸和重新安装rbenv
  • 通过rbenv安装ruby 2.7.0

这是我的环境:

代码语言:javascript
代码运行次数:0
复制
$ echo $PATH
/home/gchampenois/.rbenv/shims:/home/gchampenois/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

$ lsb_release -a | grep 'Description'
Description:    Ubuntu 20.04.2 LTS

$ rbenv versions
* 2.7.1 (set by RBENV_VERSION environment variable)

$ which -a bundle
/home/gchampenois/.rbenv/shims/bundle
/usr/local/bin/bundle
/usr/bin/bundle
/bin/bundle

$ which -a gem
/home/gchampenois/.rbenv/shims/gem

$ which -a ruby
/home/gchampenois/.rbenv/shims/ruby

$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

$ cat /usr/local/bin/bundle
#!/usr/bin/ruby2.7
#
# This file was generated by RubyGems.
#
# The application 'bundler' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0.a"

str = ARGV.first
if str
  str = str.b[/\A_(.*)_\z/, 1]
  if str and Gem::Version.correct?(str)
    version = str
    ARGV.shift
  end
end

if Gem.respond_to?(:activate_bin_path)
load Gem.activate_bin_path('bundler', 'bundle', version)
else
gem "bundler", version
load Gem.bin_path("bundler", "bundle", version)
end

$ bundle env | head -n30
## Environment

Bundler       2.2.32
  Platforms   ruby, x86_64-linux
Ruby          2.7.1p83 (2020-03-31 revision a0c7c23c9cec0d0ffcba012279cd652d28ad5bf3) [x86_64-linux]
  Full Path   /home/gchampenois/.rbenv/versions/2.7.1/bin/ruby
  Config Dir  /home/gchampenois/.rbenv/versions/2.7.1/etc
RubyGems      3.2.32
  Gem Home    /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  Gem Path    /home/gchampenois/.gem/ruby/2.7.0:/home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  User Home   /home/gchampenois
  User Path   /home/gchampenois/.gem/ruby/2.7.0
  Bin Dir     /home/gchampenois/.rbenv/versions/2.7.1/bin
Tools         
  Git         2.25.1
  RVM         not installed
  rbenv       rbenv 1.2.0-6-g304cb7b
  chruby      not installed

## Bundler Build Metadata

Built At          2021-11-23
Git SHA           20d4957649
Released Version  true

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.32
  - RUBY VERSION: 2.7.1 (2020-03-31 patchlevel 83) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  - USER INSTALLATION DIRECTORY: /home/gchampenois/.gem/ruby/2.7.0
  - RUBY EXECUTABLE: /home/gchampenois/.rbenv/versions/2.7.1/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /home/gchampenois/.rbenv/versions/2.7.1/bin
  - SPEC CACHE DIRECTORY: /home/gchampenois/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /home/gchampenois/.rbenv/versions/2.7.1/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
  - GEM PATHS:
     - /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
     - /home/gchampenois/.gem/ruby/2.7.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-document --no-ri"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/gchampenois/.rbenv/versions/2.7.1/bin
     - /home/gchampenois/.rbenv/libexec
     - /home/gchampenois/.rbenv/plugins/ruby-build/bin
     - /home/gchampenois/.rbenv/shims
     - /home/gchampenois/.rbenv/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
     - /snap/bin
EN

回答 1

Server Fault用户

发布于 2022-01-11 13:07:07

我通过删除/供应商/包中的所有内容来解决这个问题。

rm -rf /供应商/包

确保在我的个人档案里

ruby '2.7.0‘

然后。

gcloud配置集应用程序/云_build_timeout 86400

gcloud应用程序部署

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1084685

复制
相关文章
java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]
java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子。
全栈程序员站长
2022/09/22
8.2K0
怎样从数组中删除给定元素_java数组包含某个元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169528.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.1K0
怎样从数组中删除给定元素_java数组包含某个元素
删除数组中某个指定元素的值_如何删除数组中的元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169504.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
12.6K0
vue删除数组中指定元素_如何删除数组中的元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169518.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
7.8K0
js算法之删除数组中的第一个元素
思路:先用slice(0)做出一个新的数组。 然后是从下标0开始删除一个元素,并且输出.
贵哥的编程之路
2021/03/26
3.1K0
js算法之删除数组中的第一个元素
PHP 如何返回数组中第一个通过测试的元素
PHP 的 array_filter() 函数可以通过回调函数过滤数组的元素,但是返回的是过滤后的数组。
Denis
2023/04/14
2.8K0
js删除数组中的一个元素_js数组包含某个元素
1. 不可以使用 delete 方式删除数组中某个元素,此操作会造成稀疏数组,被删除的元素的为位置依然存在为empty,且数组的长度不变
全栈程序员站长
2022/11/10
11.7K0
用于从数组中删除第一个元素的 Python 程序
为了删除数组的第一个元素,必须考虑的索引为 0,因为任何数组中第一个元素的索引始终为 0。与从数组中删除最后一个元素一样,从数组中删除第一个元素可以使用相同的技术进行处理。
很酷的站长
2023/08/11
2760
用于从数组中删除第一个元素的 Python 程序
java中输出数组元素的方法[通俗易懂]
Array.toString(要输出的数组名): 返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开。 方法三:
全栈程序员站长
2022/11/07
2.7K0
[javascript] js删除数组中的元素
arr.splice(start,delete_length) 这种方式数组长度相应改变,原来的索引也相应改变。 splice()删除后返回的是删除的元素。 另外splice()还可以添加,替换数组元素。
唯一Chat
2021/08/05
11.4K0
[随缘一题]排序数组中的单个元素
因为我发现每日一题太难了,,,总会出现一些加班已经很累了(懒得不想动)的时候,而且周末有事多做两道题都叫做同一天的每日一题也让我这个强迫症贼难受.
呼延十
2019/07/01
2.2K0
php如何获取数组的第一个元素
获取数组的第一个元素 在这里,我们将介绍如何使用array_shift和reset函数来检索数组的第一个元素。
用户8099761
2023/05/11
2K0
es6删除数组指定元素_如何删除数组中的元素
如图,这个数组里面有三个元素,现在要删掉这个id是24的元素,那我们代码就应该这么写
全栈程序员站长
2022/09/22
6.8K0
es6删除数组指定元素_如何删除数组中的元素
jquery判断数组中是否包含某个元素的值_java判断元素是否在数组中
如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1
全栈程序员站长
2022/11/02
5.8K0
char数组中除去某个元素
1 /* 2 本程序说明: 3 4 char数组中除去某个元素(其实就是strcpy源码的变形) 5 6 */ 7 #include <iostream> 8 #include <cassert> 9 #include <cstring> 10 using namespace std; 11 12 char * remove_char(char* src, int length, char c){ 13 char *dst=src; 14 char *res=dst;
xiaoxi666
2018/10/29
1.5K0
js判断数组中是否包含某个指定元素的个数_js 数组包含某个元素
indexOf()完整语法: array.indexOf(item,start)
全栈程序员站长
2022/11/02
11.3K0
c语言从数组中删除指定元素_c语言数组添加元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169514.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.8K0
c语言从数组中删除指定元素_c语言数组添加元素
封装数组之实现在数组中查询元素和修改元素
前言:在上一小节中,我们已经对如何往数组中添加一个元素的方法进行了编写,此节中我们就如何查询出数组中元素与修改元素的方法进行编写。
wfaceboss
2019/04/08
1.1K0
最长的连续元素序列的长度
给定一个无序的整数类型数组,求最长的连续元素序列的长度。 例如: 给出的数组为[100, 4, 200, 1, 3, 2], 最长的连续元素序列为[1, 2, 3, 4]. 返回这个序列的长度:4 你需要给出时间复杂度在O(n)之内的算法
名字是乱打的
2021/12/22
6800
最长的连续元素序列的长度
JavaScript数组求和_js获取对象数组的第一个元素
您如何找到其元素的总和?好吧,解决方案是一个array.reduce()方法。Array.prototype.reduce()函数可用于遍历数组,将当前元素值添加到先前项目值的总和中。
全栈程序员站长
2022/11/10
6.9K0

相似问题

随机化数组元素

50

将数组中的元素随机化?

40

数组中连续元素的组合

12

如何在过滤元素(不是过滤数组,然后随机化元素)中随机化数组?

10

数组连续元素和

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文