Рейтинг:0

/usr/bin/env: «ruby2.7»: нет такого файла или каталога

флаг cn

Я пытаюсь настроить ruby ​​с помощью rbenv на сервере вместо установленной версии ruby ​​и bundler apt-get.

Я последовал за Путеводитель по цифровому океану, отклоняясь только от версии ruby ​​(мне нужна 2.7.1) и пути установки ruby ​​(ПРЕФИКС=~/local ./ruby-build/install.sh), чтобы хранить все в моей домашней папке, потому что я не root.

Что сработало

  • Установка rbenv
  • Установка рубиновой сборки
  • рбенв установить 2.7.1
  • оболочка rbenv 2.7.1
  • глобальный rbenv 2.7.1
  • пакетная установка
  • sudo apt-get очистить рубин

Однако пакетный исполнительный рейк не запускается и возвращает следующую ошибку:

/usr/bin/env: «ruby2.7»: нет такого файла или каталога
$ rbenv exec bundle exec ruby ​​-v
рубин 2.7.1p83 (версия a0c7c23c9c 2020-03-31) [x86_64-linux]
$ rbenv exec пакет exec грабли
Ваша версия Ruby — 2.7.0, но в вашем Gemfile указано 2.7.1.

Когда я просто бегу грабли в папке моего приложения (не проходя выполнение пакета) получаю следующую ошибку:

$ рейк
рейк прерван!
Ошибка загрузки: libruby-2.7.so.2.7: невозможно открыть общий объектный файл: нет такого файла или каталога - /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 `<top (обязательно)>'
/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 `блок в <top (обязательно) >'
/home/gchampenois/www/staging/shared/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.1/lib/bootsnap/explicit_require.rb:44: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 `<top (обязательно)>'
/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 `<top (обязательно)>'
/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 `<top (обязательно)>'
/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 `<top (обязательно)>'
/home/gchampenois/www/staging/releases/20211126155023/config/boot.rb:4:in `require'
/home/gchampenois/www/staging/releases/20211126155023/config/boot.rb:4:in `<top (обязательно)>'
/home/gchampenois/www/staging/releases/20211126155023/config/application.rb:1:in `require_relative'
/home/gchampenois/www/staging/releases/20211126155023/config/application.rb:1:in `<top (обязательно)>'
/home/gchampenois/www/staging/releases/20211126155023/Rakefile:4:in `require_relative'
/home/gchampenois/www/staging/releases/20211126155023/Rakefile:4:in `<top (обязательно)>'

Это похоже на бег rbenv exec bundle exec rake [команда] на самом деле звонки /usr/местные/бен/комплект вместо прокладки rbenv, несмотря на наличие .rbenv/прокладки и .rbenv/bin первый в моем ДОРОЖКА.

Любая идея, почему, и как обойти это?

Вещи, которые я уже пробовал

  • обновление драгоценного камня --система
  • rbenv перефразировать
  • полное удаление и переустановка rbenv
  • установка ruby ​​2.7.0 через rbenv

Вот моя среда:

$ эхо $ ПУТЬ
/home/gchampenois/.rbenv/shims:/home/gchampenois/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/игры:/usr/местные/игры:/привязка/bin

$ lsb_release -a | grep 'Описание'
Описание: Ubuntu 20.04.2 LTS

$ версии rbenv
* 2.7.1 (устанавливается переменной окружения RBENV_VERSION)

$который -пучок
/home/gchampenois/.rbenv/shims/комплект
/usr/местные/бен/комплект
/USR/бен/комплект
/бен/комплект

$ который - жемчужина
/home/gchampenois/.rbenv/shims/gem

$ который -рубин
/home/gchampenois/.rbenv/shims/рубин

$ рубин -v
рубин 2.7.1p83 (версия a0c7c23c9c 2020-03-31) [x86_64-linux]

$ cat /usr/local/bin/bundle
#!/usr/bin/ruby2.7
#
# Этот файл был сгенерирован RubyGems.
#
# Приложение 'bundler' устанавливается как часть гема, и
# этот файл здесь для облегчения запуска.
#

требуют "rubygems"

версия = ">= 0.a"

ул = ARGV.first
если ул
  ул = ул.b[/\A_(.*)_\z/, 1]
  если str и Gem::Version.correct?(str)
    версия = ул.
    АРГВ.сдвиг
  конец
конец

если Gem.respond_to?(:activate_bin_path)
загрузить Gem.activate_bin_path («комплект», «пакет», версия)
еще
драгоценный камень "бандлер", версия
загрузить Gem.bin_path("комплект", "комплект", версия)
конец

$ бандл env | голова -n30
## Среда

Пакет 2.2.32
  Платформы ruby, x86_64-linux
Ruby 2.7.1p83 (версия 2020-03-31 a0c7c23c9cec0d0ffcba012279cd652d28ad5bf3) [x86_64-linux]
  Полный путь /home/gchampenois/.rbenv/versions/2.7.1/bin/ruby
  Конфигурационный каталог /home/gchampenois/.rbenv/versions/2.7.1/etc
РубиГемс 3.2.32
  Главная /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  Путь к драгоценному камню /home/gchampenois/.gem/ruby/2.7.0:/home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  Домашняя страница пользователя /home/gchampenois
  Путь пользователя /home/gchampenois/.gem/ruby/2.7.0
  Папка бинов /home/gchampenois/.rbenv/versions/2.7.1/bin
Инструменты         
  Гит 2.25.1
  РВМ не установлен
  rbenv rbenv 1.2.0-6-g304cb7b
  чрубы не установлены

## Метаданные сборки сборщика

Построен 23 ноября 2021 г.
Гит SHA 20d4957649
Выпущенная версия верна

$ драгоценный камень окружение
Среда RubyGems:
  - ВЕРСИЯ РУБИГЕМС: 3.2.32
  - РУБИНОВАЯ ВЕРСИЯ: 2.7.1 (31 марта 2020 г., уровень исправления 83) [x86_64-linux]
  - КАТАЛОГ УСТАНОВКИ: /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  - КАТАЛОГ ПОЛЬЗОВАТЕЛЬСКОЙ УСТАНОВКИ: /home/gchampenois/.gem/ruby/2.7.0
  - РУБИНОВЫЙ ИСПОЛНЯЕМЫЙ: /home/gchampenois/.rbenv/versions/2.7.1/bin/ruby
  - GIT ИСПОЛНЯЕМЫЙ: /usr/bin/git
  - ВЫПОЛНЯЕМЫЙ КАТАЛОГ: /home/gchampenois/.rbenv/versions/2.7.1/bin
  - КАТАЛОГ СПЕЦИАЛЬНЫХ КЭШЕЙ: /home/gchampenois/.gem/specs
  - КАТАЛОГ КОНФИГУРАЦИИ СИСТЕМЫ: /home/gchampenois/.rbenv/versions/2.7.1/etc
  - ПЛАТФОРМЫ RUBYGEMS:
     - Рубин
     - x86_64-линукс
  - ДРАГОЦЕННЫЕ ПУТИ:
     - /home/gchampenois/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
     - /home/gchampenois/.gem/рубин/2.7.0
  - КОНФИГУРАЦИЯ КАМЕНЬ:
     - :update_sources => правда
     - :verbose => правда
     - :backtrace => ложь
     - :массовый_порог => 1000
     - "gem" => "--no-document --no-ri"
  - УДАЛЕННЫЕ ИСТОЧНИКИ:
     - https://rubygems.org/
  - ПУТЬ ОБОЛОЧКИ:
     - /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/местные/sbin
     - /USR/локальные/бен
     - /usr/сбин
     - /USR/бен
     - /сбин
     - /бин
     - /usr/игры
     - /usr/местные/игры
     - / привязать / бин
Рейтинг:0
флаг gh

Я решил это, удалив все в <app_name>/vendor/bundle

rm -rf <app_name>/vendor/bundle

убедившись, что в моем Gemfile у меня было

рубин '2.7.0'

а потом.

Приложение gcloud config set/cloud_build_timeout 86400

развертывание приложения gcloud

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.