LoginSignup

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Rubyのバージョンをインストールしたいパッケージに適用できない

Q&AClosed

解決したいこと

Shopify-CLIがバージョンアップしているので、新しいバージョンのインストールをしたいです。

私は、Ubuntu18.04LTSを使っています。

解決方法を教えて下さい。

発生している問題・エラー

ERROR:  Error installing shopify-cli:
	shopify-cli-2.15.6 requires Ruby version >= 2.6. The current ruby version is 2.5.1.p57.

自分で試したこと

ネットで検索して、次のように必要なversionの2.6.10をインストールしました。
そして、反映できました。

ruby 2.6.10p210 (2022-04-12 revision 67958) [x86_64-linux]

 rbenv versions
  system
  2.6.0
* 2.6.10 (set by /home/***i/***/shopify_theme/.ruby-version)
  3.1.2

sudoあるなしで、バージョンが異なります。

~$ sudo ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
~$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

パスを確認しました。

***@***:~$ sudo which ruby
[sudo] *** のパスワード: 
/usr/bin/ruby
***@***:~$ which ruby
/home/***/.rbenv/shims/ruby


curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: multiple
  You seem to have multiple rbenv installs in the following locations.
  Please pick just one installation and remove the others.
  
  /home/***/.rbenv/bin/rbenv
  /home/***/.rbenv/bin/rbenv
  /usr/bin/rbenv

Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/***/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220415)
Counting installed Ruby versions: 3 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK


sudoを付けてインストールしても、usrのディレクトリには、インストールされないです。

 sudo rbenv install 3.1.2
rbenv: /home/***/.rbenv/versions/3.1.2 already exists
continue with installation? (y/N) y
Downloading ruby-3.1.2.tar.gz...

おしい

古いパッケージを削除したら、直りました。

 sudo apt-get autoremove

こちらの記事を参考にしました。
https://codechacha.com/ja/linux-apt-purge-vs-remove/

まだバージョンが、違う><

解決しました

rubyのsudoユーザーと一般ユーザーとのバージョンが違う件は、私がubuntuのリポジトリからrubyを最初にインストールしていたようです。

2.5.1は、ubuntuのリポジトリでインストールしたような気がするからです。
rbenv経由でインストールしたバージョンしかrbenvでは、表示できないと知りました。

~$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
~$ sudo  ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

x86_64-linux-gnuのgnuが、気になります。

最終的に、もう一度コマンドラインから、

gem install shopify-cli

shopify version
2.16.1

最初のshopify-cliは、

shopify version
1.14.0

でした。

一番最初の私のrubyのバージョンが2.5.1だったので、一つ前のバージョンのshopify-cli が、インストールされたようです。
そのためshopify-cli のバージョンがを上げるようにメッセージが表示されたのだと思います。
最初から私のrubyのバージョンが2.7以上であれば、コマンドラインから問題なくインストールできたようです。
お騒がせしました。

0

1Answer

$ ls -al | grep .ruby
-rw-r--r--  ... ... ... .ruby-version

というコマンドで.ruby-versionが表示されているとそのディレクトリではそのバージョンが固定されますが、そういうファイルがあるとか?

0

Comments

  1. @masaru21

    Questioner
    ありがとうございます。
    今、試しました。
    ファイルありました。
    このように表示されました。


    $ ls -al | grep .ruby
    -rw-r--r-- 1 root root 6 4月 25 08:07 .ruby-version
  2. @masaru21

    Questioner
    ありがとうございます。
    しっかりと読みます。

  3. @masaru21

    Questioner
    @github0013@github さん、色々とありがとうございます。
    sudo which ruby
    /usr/bin/ruby
    で確認できました。
    ファイルの中身を見たら、2.5.1でした。
    でも、vimやnanoで開いたので、文字化けしていたので、手入力で修正できませんでした。
  4. @masaru21

    Questioner
    ごめんない。
    勘違いしていました。
    ruby本体ですよね。
  5. @masaru21

    Questioner
    やっとバージョンが揃いました。
    qpで、古いパッケージを削除したら、直りました。
    sudo apt-get autoremove
  6. @masaru21

    Questioner
    なぜsudoのrubyのバージョンが上がらないのか、分かりました。
    2.5.1は、ubuntuのリポジトリでインストールしたような気がするからです。
    rbenv経由でインストールしたバージョンしかrbenvでは、表示できないと知りました。

    インストールの方法が違うことが、今回の原因なのでしょうか?
  7. $ which ruby
    /usr/bin/ruby

    と表示されていたので、まずはシステムにrubyがインストールされていたと分かります。
    その上でrbenv経由でもrubyをインストールしていたのかと思いますが、そもそもrbenvが実行されておらず、shims経由でrubyのパスが設定されていなかったのかと思います。

    その原因としては正しくrbenvをインストール、設定していなかったはずです。

    https://github.com/rbenv/rbenv

    2. Set up rbenv in your shell.
    以降が特に設定漏れしている可能性が高いのではないか、または設定後に`. ~/.zshrc`などで反映させていないか

    3. Close your Terminal window and open a new one so your changes take effect.
    をしていないか

    https://www.deepl.com/ja/translator
  8. @masaru21

    Questioner
    ありがとうございます。
    こちらの記事を見ながら、設定を進めました。
    https://lab4ict.com/system/archives/2608

    それから、
    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
    を行う時に、新しくターミナルを開いたのですが、それまで使っていたターミナルは、閉じていなかったように思います。
    それで、今、やり直しました。

    今回下記を実行した際、ネットで書かれている記事とファイル名が違っていたので、私が見落としたかと思い、設定をやり直しました。
    ~$ ~/.rbenv/bin/rbenv init
    # Load rbenv automatically by appending
    # the following to ~/.bash_profile:

    eval "$(rbenv init - bash)"

    それから、このエラーが出ることが有るので、気になっています。
    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
    curl: (22) The requested URL returned error: 404
  9. @masaru21

    Questioner
    $ sudo nano /etc/sudoers
    Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/***/.rbenv/bin:/home/***/.rbenv/s$
    このようになっています。
  10. @masaru21

    Questioner
    ありがとうございます。

    $ sudo nano /etc/sudoers は、sudoのユーザーと一般ユーザーでrubyのバージョンが異なるで一緒にしたいと思いました。
    こちらの記事を参考にしました。
    https://tsumikiasobi.net/wordpress/archives/402


    $ curl -fsSL https://raw.githubusercontent.com/rbenv/rbenv-installer/main/bin/rbenv-doctor | bash
    Checking for `rbenv' in PATH: multiple
    You seem to have multiple rbenv installs in the following locations.
    Please pick just one installation and remove the others.

    /home/***/.rbenv/bin/rbenv
    /usr/bin/rbenv

    Checking for rbenv shims in PATH: OK
    Checking `rbenv install' support: /home/***/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426)
    Counting installed Ruby versions: 2 versions
    Checking RubyGems settings: OK

    $ echo $PATH
    /home/***/.rbenv/shims:/home/***/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

    ~$ rbenv init -
    export PATH="/home/***/.rbenv/shims:${PATH}"
    export RBENV_SHELL=bash
    source '/home/***/.rbenv/libexec/../completions/rbenv.bash'
    command rbenv rehash 2>/dev/null
    rbenv() {
    local command
    command="${1:-}"
    if [ "$#" -gt 0 ]; then
    shift
    fi

    case "$command" in
    rehash|shell)
    eval "$(rbenv "sh-$command" "$@")";;
    *)
    command rbenv "$command" "$@";;
    esac
    }

    vi ~/.bash_profile

    export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"
    eval "$(rbenv init - bash)"

    2つとも実行しましたが、反映されいないようです。
    source ~/.bashrc
    . ~/.bash_profile

    $ sudo ruby -v
    ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
    $ ruby -v
    ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]



    今回インストールしたいパッケージを、rubyの3.1.2でインストールできました。
    sudoのrubyのバージョンが違う謎は、残っています。


  11. @masaru21

    Questioner
    今は、このようになっています。
    ~$ which ruby
    /home/***.rbenv/shims/ruby

    $ sudo which ruby
    /usr/bin/ruby


Your answer might help someone💌