Installing Ruby on Rails on Fedora 38 one Qubes

Apologies if this isn’t the correct forum to post to.

Has anyone here installed and run Ruby on Fedora 38 on their Qubes machine?

I’ve been trying to, having attempted it using both this fedora guide and the official ruby guide, including using the fedora guide on a fresh fedora standalone.

Both ruby and rails install without a complaint however when I run rails new app, I get a myriad of permissions errors, often asking me to grant permissions and when I do, it just ends up with another issue.

An example of an error I get is:

$ rails new app
      create  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  .gitattributes
      create  Gemfile
         run  git init -b main from "."
Initialized empty Git repository in /home/user/Documents/app/.git/
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/jobs/application_job.rb
      create  app/mailers/application_mailer.rb
      create  app/models/application_record.rb
      create  app/views/layouts/application.html.erb
      create  app/views/layouts/mailer.html.erb
      create  app/views/layouts/mailer.text.erb
      create  app/assets/images
      create  app/assets/images/.keep
      create  app/controllers/concerns/.keep
      create  app/models/concerns/.keep
      create  bin
      create  bin/rails
      create  bin/rake
      create  bin/setup
      create  Dockerfile
      create  .dockerignore
      create  bin/docker-entrypoint
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/cable.yml
      create  config/puma.rb
      create  config/storage.yml
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/assets.rb
      create  config/initializers/content_security_policy.rb
      create  config/initializers/cors.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/new_framework_defaults_7_1.rb
      create  config/initializers/permissions_policy.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/master.key
      append  .gitignore
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  lib
      create  lib/tasks
      create  lib/tasks/.keep
      create  lib/assets
      create  lib/assets/.keep
      create  log
      create  log/.keep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/apple-touch-icon-precomposed.png
      create  public/apple-touch-icon.png
      create  public/favicon.ico
      create  public/robots.txt
      create  tmp
      create  tmp/.keep
      create  tmp/pids
      create  tmp/pids/.keep
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor
      create  vendor/.keep
      create  test/fixtures/files
      create  test/fixtures/files/.keep
      create  test/controllers
      create  test/controllers/.keep
      create  test/mailers
      create  test/mailers/.keep
      create  test/models
      create  test/models/.keep
      create  test/helpers
      create  test/helpers/.keep
      create  test/integration
      create  test/integration/.keep
      create  test/channels/application_cable/connection_test.rb
      create  test/test_helper.rb
      create  test/system
      create  test/system/.keep
      create  test/application_system_test_case.rb
      create  storage
      create  storage/.keep
      create  tmp/storage
      create  tmp/storage/.keep
      remove  config/initializers/cors.rb
      remove  config/initializers/new_framework_defaults_7_1.rb
         run  bundle install
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Using rake 13.1.0
Fetching base64 0.2.0
Fetching bigdecimal 3.1.4

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/base64-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/base64-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bigdecimal-3.1.4.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/base64-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bigdecimal-3.1.4.gem`. It is likely that you need to grant write permissions for that path.

Using concurrent-ruby 1.2.2
Using connection_pool 2.4.1
Using ruby2_keywords 0.0.5
Using minitest 5.20.0
Fetching mutex_m 0.2.0

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bigdecimal-3.1.4.gem`. It is likely that you need to grant write permissions for that path.

Using builder 3.2.4
Using erubi 1.12.0
Fetching racc 1.7.3

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/mutex_m-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/mutex_m-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/mutex_m-0.2.0.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/racc-1.7.3.gem`. It is likely that you need to grant write permissions for that path.

Using crass 1.0.6
Using rack 3.0.8
Using nio4r 2.5.9
Using websocket-extensions 0.1.5
Using zeitwerk 2.6.12
Using timeout 0.4.1
Using marcel 1.0.2
Using mini_mime 1.1.5
Fetching date 3.3.4

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/racc-1.7.3.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/racc-1.7.3.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/date-3.3.4.gem`. It is likely that you need to grant write permissions for that path.

Fetching public_suffix 5.0.3

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/date-3.3.4.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/public_suffix-5.0.3.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/date-3.3.4.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/public_suffix-5.0.3.gem`. It is likely that you need to grant write permissions for that path.

Fetching bindex 0.8.1

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/public_suffix-5.0.3.gem`. It is likely that you need to grant write permissions for that path.

Fetching msgpack 1.7.2

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bindex-0.8.1.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bindex-0.8.1.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/bindex-0.8.1.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/msgpack-1.7.2.gem`. It is likely that you need to grant write permissions for that path.

Using bundler 2.4.10
Fetching matrix 0.4.2

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/msgpack-1.7.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/matrix-0.4.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/msgpack-1.7.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/matrix-0.4.2.gem`. It is likely that you need to grant write permissions for that path.

Fetching regexp_parser 2.8.2

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/matrix-0.4.2.gem`. It is likely that you need to grant write permissions for that path.

Using stringio 3.0.9
Using io-console 0.6.0
Using webrick 1.8.1
Using thor 1.3.0
Fetching rexml 3.2.6

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/regexp_parser-2.8.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/regexp_parser-2.8.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rexml-3.2.6.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/regexp_parser-2.8.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rexml-3.2.6.gem`. It is likely that you need to grant write permissions for that path.

Fetching rubyzip 2.3.2

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rexml-3.2.6.gem`. It is likely that you need to grant write permissions for that path.

Fetching websocket 1.2.10

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rubyzip-2.3.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rubyzip-2.3.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/websocket-1.2.10.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/rubyzip-2.3.2.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/websocket-1.2.10.gem`. It is likely that you need to grant write permissions for that path.

Fetching sqlite3 1.6.8 (x86_64-linux)

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/websocket-1.2.10.gem`. It is likely that you need to grant write permissions for that path.


Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/sqlite3-1.6.8-x86_64-linux.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (3/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/sqlite3-1.6.8-x86_64-linux.gem`. It is likely that you need to grant write permissions for that path.

Retrying download gem from https://rubygems.org/ due to error (4/4): Bundler::PermissionError There was an error while trying to write to `/usr/share/gems/cache/sqlite3-1.6.8-x86_64-linux.gem`. It is likely that you need to grant write permissions for that path.

Bundler::PermissionError: There was an error while trying to write to
`/usr/share/gems/cache/base64-0.2.0.gem`. It is likely that you need to grant
write permissions for that path.
  /usr/share/gems/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:105:in
`rescue in filesystem_access'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/shared_helpers.rb:102:in
`filesystem_access'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:483:in
`block in download_gem'
  /usr/share/gems/gems/bundler-2.4.10/lib/bundler/retry.rb:40:in `run'
  /usr/share/gems/gems/bundler-2.4.10/lib/bundler/retry.rb:30:in `attempt'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:474:in
`download_gem'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/source/rubygems.rb:484:in
`download_gem'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/source/rubygems.rb:446:in
`fetch_gem'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/source/rubygems.rb:430:in
`fetch_gem_if_possible'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/source/rubygems.rb:158:in
`install'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/installer/gem_installer.rb:54:in
`install'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/installer/parallel_installer.rb:156:in
`do_install'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/installer/parallel_installer.rb:147:in
`block in worker_pool'
  /usr/share/gems/gems/bundler-2.4.10/lib/bundler/worker.rb:62:in `apply_func'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/worker.rb:57:in `block in
process_queue'
  /usr/share/gems/gems/bundler-2.4.10/lib/bundler/worker.rb:54:in `loop'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/worker.rb:54:in
`process_queue'
/usr/share/gems/gems/bundler-2.4.10/lib/bundler/worker.rb:90:in `block (2
levels) in create_threads'

An error occurred while installing base64 (0.2.0), and Bundler cannot
continue.

In Gemfile:
  rails was resolved to 7.1.1, which depends on
    actioncable was resolved to 7.1.1, which depends on
      actionpack was resolved to 7.1.1, which depends on
        actionview was resolved to 7.1.1, which depends on
          rails-dom-testing was resolved to 2.2.0, which depends on
            activesupport was resolved to 7.1.1, which depends on
              base64
         run  bundle lock --add-platform=x86_64-linux
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Writing lockfile to /home/user/Documents/app/Gemfile.lock
         run  bundle binstubs bundler
Could not find rails-7.1.1, sprockets-rails-3.4.2, sqlite3-1.6.8-x86_64-linux,
puma-6.4.0, importmap-rails-1.2.3, turbo-rails-1.5.0, stimulus-rails-1.3.0,
jbuilder-2.11.5, bootsnap-1.17.0, debug-1.8.0, web-console-4.2.1,
capybara-3.39.2, selenium-webdriver-4.15.0, sprockets-4.2.1, msgpack-1.7.2,
bindex-0.8.1, addressable-2.8.5, matrix-0.4.2, regexp_parser-2.8.2, xpath-3.2.0,
rexml-3.2.6, rubyzip-2.3.2, websocket-1.2.10, base64-0.2.0, bigdecimal-3.1.4,
drb-2.2.0, mutex_m-0.2.0, rdoc-6.6.0, public_suffix-5.0.3, racc-1.7.3,
date-3.3.4, net-protocol-0.2.2, psych-5.1.1.1 in locally installed gems
       rails  importmap:install
Could not find rails-7.1.1, sprockets-rails-3.4.2, sqlite3-1.6.8-x86_64-linux, puma-6.4.0, importmap-rails-1.2.3, turbo-rails-1.5.0, stimulus-rails-1.3.0, jbuilder-2.11.5, bootsnap-1.17.0, debug-1.8.0, web-console-4.2.1, capybara-3.39.2, selenium-webdriver-4.15.0, sprockets-4.2.1, msgpack-1.7.2, bindex-0.8.1, addressable-2.8.5, matrix-0.4.2, regexp_parser-2.8.2, xpath-3.2.0, rexml-3.2.6, rubyzip-2.3.2, websocket-1.2.10, base64-0.2.0, bigdecimal-3.1.4, drb-2.2.0, mutex_m-0.2.0, rdoc-6.6.0, public_suffix-5.0.3, racc-1.7.3, date-3.3.4, net-protocol-0.2.2, psych-5.1.1.1 in locally installed gems
Run `bundle install` to install missing gems.
       rails  turbo:install stimulus:install
Could not find rails-7.1.1, sprockets-rails-3.4.2, sqlite3-1.6.8-x86_64-linux, puma-6.4.0, importmap-rails-1.2.3, turbo-rails-1.5.0, stimulus-rails-1.3.0, jbuilder-2.11.5, bootsnap-1.17.0, debug-1.8.0, web-console-4.2.1, capybara-3.39.2, selenium-webdriver-4.15.0, sprockets-4.2.1, msgpack-1.7.2, bindex-0.8.1, addressable-2.8.5, matrix-0.4.2, regexp_parser-2.8.2, xpath-3.2.0, rexml-3.2.6, rubyzip-2.3.2, websocket-1.2.10, base64-0.2.0, bigdecimal-3.1.4, drb-2.2.0, mutex_m-0.2.0, rdoc-6.6.0, public_suffix-5.0.3, racc-1.7.3, date-3.3.4, net-protocol-0.2.2, psych-5.1.1.1 in locally installed gems
Run `bundle install` to install missing gems.

I’ve been at this for a while now and there doesn’t seem to be many people talking about it so I thought maybe it was a Qubes thing (perhaps affecting permissions).

Hi @yourbestpal there really is nothing Qubes OS specific about your question — sorry.

You will have better chances finding answers in Fedora and/or Ruby related venues.

I’ll leave the thread open in case someone here does know the exact answer to your troubles but we can’t have a drawn out off-topic thread. Please understand.

Have you tried using a standalone qube? Due to the nature of QubesOS templatevm and appvm architecture, it can get complicated with permissions and persistence after reboots. If not, I’d give that a try first. Then maybe run this through ChatGPT and see what you get. :wink:

Hi i resolve this issue granting permissions to the specific path as follows:
sudo chmod -R 777 /usr/share/gems
Then i just made a restart my pc and everything works good with bundle install, hope this can help you :)!

1 Like