исполняемые файлы gem не запускаются - PullRequest
0 голосов
/ 07 января 2019

Запуск установки gem из сценария оболочки выдает ошибку, хотя на моей машине установлена ​​ruby ​​версии 2.3.0.

Я пытаюсь установить гем из файла sh. Код файла sh как ниже:

    cat > /tmp/install_bandshell.sh <<EOF
    #!/bin/sh -e
    cd /tmp
    git clone git://github.com/concerto/bandshell.git
    cd bandshell
    gem build bandshell.gemspec
    gem install *.gem
    cd /
    rm -rf /tmp/bandshell
    EOF
    chmod +x /tmp/install_bandshell.sh
    /tmp/install_bandshell.sh

Но когда я запускаю этот sh-файл, получаю ошибку ПРЕДУПРЕЖДЕНИЕ: у вас нет /root/.gem/ruby/1.9.1/bin в вашем PATH, исполняемые файлы gem не запускаются. ОШИБКА: Ошибка при установке bandhell-1.7.2.gem: для стойки требуется версия Ruby> = 2.2.2.

Даже я устанавливаю вывод 2.3.0 gem env

    RubyGems Environment:
      - RUBYGEMS VERSION: 2.5.1
      - RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
      - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/
      - USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.3.0
      - RUBY EXECUTABLE: /usr/local/bin/ruby
      - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/bin
      - SPEC CACHE DIRECTORY: /root/.gem/specs
      - SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
      - RUBYGEMS PLATFORMS:
        - ruby
        - x86_64-linux
      - GEM PATHS:
         - /usr/local/lib/ruby/gems/2.3.0/gems/
         - /root/.gem/ruby/2.3.0
         - /usr/local/lib/ruby/gems/2.3.0
      - GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :backtrace => false
         - :bulk_threshold => 1000
      - REMOTE SOURCES:
         - https://rubygems.org/
      - SHELL PATH:
         - /usr/local/sbin
         - /usr/local/bin
         - /usr/sbin
         - /usr/bin
         - /sbin
         - /bin
         - /usr/local/lib/ruby/gems/2.3.0/gems

Из терминала, если я установлю этот гем, он работает, но из скрипта оболочки, выдающего ошибку выше. Пожалуйста, помогите мне с этим. Платформа Debian Wheezy.

1 Ответ

0 голосов
/ 08 января 2019

Я отвечаю только на ваш основной вопрос относительно сообщения. (Честно говоря, я не знаю, что происходит с вашим файлом sh, поэтому я не собираюсь решать любые другие проблемы, которые он вызывает.)

Сообщение является предупреждением о том, что любые исполняемые файлы, которые устанавливает gem, не находятся на вашем пути. Если гем не устанавливает какие-либо исполняемые файлы, вы можете спокойно проигнорировать это сообщение. Если он делает (или вы просто не уверены), измените путь соответствующим образом. Как вы это сделаете, зависит от того, какую оболочку вы используете. Поскольку вы пометили вопрос как «linux», я думаю, вы используете bash; если это так, добавьте к вашей ~/.profile или ~/.bash_profile запись, подобную:

PATH="$PATH:/root/.gem/ruby/1.9.1/bin"

Теперь, на данный момент, я должен задаться вопросом - вы используете ruby-1.9? Вы знаете, что ruby ​​1.9 устарел, верно? На самом деле, учитывая, что вы, кажется, используете Ruby 2.3.0, это маловероятно. Я бы посоветовал (хотя бы временно) скорректировать свой PATH, как указано выше, чтобы избежать предупреждения. Я подозреваю, что у вас будут проблемы, но тогда вы сможете задать новый вопрос без ПРЕДУПРЕЖДЕНИЯ, которое вы упомянули.

И последнее: не обращайте внимания на предложения о том, что вы должны изменить свой шебанг, чтобы он отличался от "#! / Bin / sh"; это очень вряд ли поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...