How can I upgrade Ruby version from 3.2.2 to 3.3.0 using asdf? – Ruby

by
Alexei Petrov
asdf concurrent-ruby ruby-on-rails ubuntu

Quick Fix: To upgrade your Ruby version using asdf, update the asdf plugin using the command asdf plugin update ruby and then install version 3.3.0. Alternatively, use the asdf install ruby 3.3.0 command to directly install the new version.

The Problem:

I am currently using Ruby version 3.2.2, installed using asdf on Ubuntu 22.04 .I want to upgrade to version 3.3.0. However, when I run asdf install ruby 3.3.0, it displays the error message ruby-build: definition not found: 3.3.0. I need guidance on upgrading Ruby to version 3.3.0 using asdf.

The Solutions:

Solution 1: Update asdf plugin

Update asdf plugin: Using the following command asdf plugin update ruby will update the asdf plugin. This should fix the issue and allow you to install Ruby 3.3.0. Once the plugin is updated, you can try installing Ruby 3.3.0 again using asdf install ruby 3.3.0. After updating the asdf plugin, you should be able to install Ruby 3.3.0 without encountering the error message.

Explanation:

  • Updating the asdf plugin ensures that you have the latest version of the plugin with support for Ruby 3.3.0.
  • When you run asdf plugin update ruby, it checks for any updates to the Ruby plugin and downloads and installs the latest version.
  • After updating the plugin, you can try installing Ruby 3.3.0 again using asdf install ruby 3.3.0. This time, it should install successfully without encountering the “definition not found” error.

Solution 2: Using ASDF to Upgrade Ruby Version

Here’s a more detailed and efficient way to upgrade your Ruby version from 3.2.2 to 3.3.0 using ASDF on Ubuntu 22.04:

  1. Update All Languages:
    Run the following command to update all installed languages, including Ruby:

    asdf plugin update --all
    

    This will ensure you have the latest versions of all languages managed by ASDF.

  2. Check Available Ruby Versions:
    Next, list all available Ruby versions:

    asdf list all ruby
    

    This will show you a list of all Ruby versions that are available for installation through ASDF.

  3. Edit .tool-versions File:
    Edit the `.tool-versions` file to specify the Ruby version you want to use.

    vi ~/.tool-versions
    

    Locate the line that starts with `ruby` and change the version to `3.3.0`.
    For example:

    ruby 3.3.0
    

    This will set Ruby 3.3.0 as the default Ruby version for your user account.

  4. Install the New Ruby Version:
    Finally, install the new Ruby version by running:

    asdf install
    

    This command will install the Ruby version specified in your `.tool-versions` file.

  5. Verify the New Ruby Version:
    To verify that you are now using Ruby 3.3.0, run the following command:

    ruby -v
    

    You should see an output similar to:

    ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
    
  6. Update Essential Gems (Optional):
    While not required, it is recommended to update essential gems when installing a new Ruby interpreter. Run the following commands:

    gem update --system
    gem update bundler
    

    This will update the RubyGems system and the Bundler gem.

Solution 3: Using RVM and Arch

To upgrade Ruby from 3.2.2 to 3.3.0 using asdf, follow these steps:

  1. Uninstall the existing Homebrew:
  2. arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
    
  3. Remove the Homebrew folder:
  4. sudo rm -rf /opt/homebrew
    
  5. Reinstall Homebrew:
  6. arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  7. Install Ruby 3.3.0 using RVM:
  8. arch -arm64 rvm install 3.3.0
    
  9. List available Ruby versions:
  10. rvm list
    
  11. Switch to Ruby 3.3.0:
  12. rvm use 3.3.0
    

Note: These steps have been reported to work effectively for managing different Ruby versions and easily switching between them.

Q&A

How to update Ruby version using asdf?

Update asdf plugin using asdf plugin update ruby.

Give another method to update Ruby version.

Utilize devops to update and set Ruby version.