ruby - Bundler::GemNotFound: No se pudo encontrar mimemagic-0.3.5 en ninguna de las fuentes del proyecto Rails con Docker

CorePress2024-01-25  151

Soy consciente de los recientes problemas de mimemagic, que logré resolver en uno de mis proyectos Rails mediante la actualización del paquete a 0.3.7, pero por alguna razón, no puedo resolverlo en el proyecto siguiente.

Tengo un proyecto Rails 6 que estoy configurando por primera vez en una computadora portátil nueva. Mi computadora portátil no tiene la configuración correcta de Ruby, así que agregué un Dockerfile a mi proyecto de esta manera:-

Archivo Docker

FROM ruby:2.7
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /radius
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle update mimemagic
RUN bundle install
COPY . /myapp


COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000


CMD ["rails", "server", "-b", "0.0.0.0"]

Archivo de gemas

# frozen_string_literal: true

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.7.2'
gem 'airbrake'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'dotenv-rails'
gem 'rails', '~> 6.0.3.6'
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5'
gem 'shortener'

# Use Honeybadger for error reporting/monitoring
gem 'honeybadger', '~> 4.0'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem 'newrelic_rpm'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false

group :development, :test do
  gem 'awesome_print'
  gem 'byebug', platforms: %i[mri mingw x64_mingw]
  gem 'pry-byebug'
  # Version specified as workaround for this issue https://github.com/rails/rails/issues/35417
  gem 'rspec-rails', '~> 4.0.0.beta2'
end

group :development do
  gem 'factory_bot_rails', '~> 4.0'
  gem 'fasterer'
  gem 'haml_lint', require: false
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'rails_best_practices'
  gem 'reek'
  gem 'rubocop'
  gem 'scss_lint', require: false
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'web-console', '>= 3.3.0'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15'
  gem 'rspec_junit_formatter'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
  gem 'webmock'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]

gem 'administrate', '0.12.0'
gem 'bootstrap', '~> 4.3', '>= 4.3.1'
gem 'devise', '~> 4.6', '>= 4.6.1'
gem 'devise-bootstrapped',  github: 'excid3/devise-bootstrapped',
                            branch: 'bootstrap4'
gem 'devise_masquerade', '~> 0.6.2'
gem 'font-awesome-sass', '~> 5.6', '>= 5.6.1'
gem 'friendly_id', '~> 5.2', '>= 5.2.5'
gem 'gibbon'
gem 'gmaps4rails'
gem 'gravatar_image_tag', github: 'mdeering/gravatar_image_tag'
gem 'httparty'
gem 'mini_magick', '~> 4.9', '>= 4.9.2'
gem 'name_of_person', '~> 1.1'
gem 'omniauth-facebook', '~> 5.0'
gem 'omniauth-github', '~> 1.3'
gem 'omniauth-twitter', '~> 1.4'
gem 'pundit', '~> 1.1.0'
gem 'sidekiq', '~> 5.2', '>= 5.2.5'
gem 'sitemap_generator', '~> 6.0', '>= 6.0.1'
gem 'underscore-rails'
gem 'whenever', require: false

Luego intento:-

docker-compose build
docker-compose up

Junto con cada combinación de lo siguiente:-

Usando mimemagic de actualización de paquete en mi dockerfile Agregar la gema específicamente a mi Gemfile con gem 'mimemagic', '~> 0.3.7' Cambiar manualmente mi versión mimemagic de Gemfile.lock de 0.3.5 a 0.3.7 Agregar RUN apt-get installshared-mime-info a mi Dockefile

ySimplemente obtengo uno de los siguientes:-

Could not find mimemagic-0.3.x in any of the sources
web_1  | Bundler::GemNotFound: You have requested:
web_1  |   mimemagic ~> 0.3.7
web_1  | 
web_1  | The bundle currently has mimemagic locked at 0.3.5.
web_1  | Try running `bundle update mimemagic`

También intenté cambiar Rails a 6.0.3.6 y ejecutar la compilación de la ventana acoplable nuevamente, lo que me genera problemas de soporte activo:-

web_1  | Bundler::VersionConflict: Bundler could not find compatible versions for gem "activesupport":
web_1  |   In snapshot (Gemfile.lock):
web_1  |     activesupport (= 6.0.3.5)
web_1  | 
web_1  |   In Gemfile:
web_1  |     rails (~> 6.0.3.6) was resolved to 6.0.3.6, which depends on
web_1  |       activesupport (= 6.0.3.6)
web_1  | 
web_1  |     dotenv-rails was resolved to 2.7.6, which depends on
web_1  |       railties (>= 3.2) was resolved to 6.0.3.5, which depends on
web_1  |         activesupport (= 6.0.3.5)
web_1  | 
web_1  | Running `bundle update` will rebuild your snapshot from scratch, using only
web_1  | the gems in your Gemfile, which may resolve the conflict.

¿Qué debo hacer exactamente para instalar esta gema?

Probablemente sea esa versión de Rails la que bloquea la mimemagia. Verifique su Gemfile.lock. Utilice la última versión. Si es un proyecto nuevo, no hay razón para utilizar una versión anterior ni una versión candidata. joya 'rieles', '~> 6,1'. Y deberías realizar las actualizaciones del paquete antes de implementarlo.

- Schwern

28/03/2021 a las 18:34

No es un proyecto nuevo, más bien nuevo. Sin embargo, es la primera vez que se configura en esta computadora portátil. Intenté actualizarlo a Rails 6.0.3.6 y me da los errores de soporte activo mencionados en mi publicación.

- s89_

28/03/2021 a las 18:41

@Schwern ¿Y qué quieres decir con agrupar las actualizaciones antes de implementarlas? No implementaré este proyecto en ninguna parte.

- s89_

28/03/2021 a las 18:46

Lo estás implementando/instalando en Docker. El objetivo de Gemfile.lock es bloquear las versiones de sus gemas para obtener instalaciones consistentes. La actualización del paquete justo antes de la instalación del paquete anula el punto. También es lento, no es necesarioActualización del paquete en Docker, puedes hacerlo en cualquier lugar. De todos modos, ¿qué más hay en tu Gemfile? dotenv-rails no es una dependencia de Rails.

- Schwern

28/03/2021 a las 18:52

@Schwern algunas cosas más: las agregó a la publicación. Aún así, el problema persiste con Rails' dependencia de activesupport, independientemente de la de dot-env.

- s89_

28/03/2021 a las 18:58



------------------------------------

bundle update --conservative mimemagic 

Pruebe también con una versión más reciente en lugar de bloquearla. A nosotros nos funcionó con 0.3.9, pero ahora hay 0.3.10 (no lo he probado),

3

Gracias, funcionó para mí en Ruby 2.6.6 con mimemagic 0.3.10 (era 0.3.5)

- briancollins081

30/03/2021 a las 20:10

mismo error en Ruby 2.5.8 con mimemagic 0.3.10 (era 0.3.9)

-Hamid Shoja

2 de abril de 2021 a las 6:07

1

Gracias. Funcionó para nosotros. Estamos ejecutando Rails 5.2.3 y Ruby 2.5.1. mimagic ahora es 0.3.10 (antes 0.3.4)

– João Ramires

5 de abril de 2021 a las 14:01



------------------------------------

Lo resolvió usando:

bundle update mimemagic

Recibí el error Tu paquete está bloqueado en mimemagic (0.3.5) de rubygems en la instalación del paquete.

Esta versión actualizó mimemagic a 0.3.10 y agregó dependencias de nokigiri y rake en Gemfile.lock para mí.



------------------------------------

Puedes modificar tu Gemfile de la siguiente manera:

gem 'mimemagic', github: 'mimemagicrb/mimemagic', ref: '01f92d86d15d85cfd0f20dabd025dcbd36a8a60f' 

Más detalles están aquí

1

Deberías editar esta respuesta para incorporar tu otra respuesta, ya que es unaLa respuesta proviene de una pregunta que se marcó como duplicado de ésta.

-Peter O.

27/04/2021 a las 12:30



------------------------------------

Para mi caso esta fue la solución de macOS: 'Necesitará una copia de la base de datos de información mime compartida de Freedesktop.org para que esté disponible. Si estás en Linux, probablemente esté disponible a través de tu administrador de paquetes y probablemente estará en la ubicación que se busca cuando se instala la gema.

Los usuarios de macOS pueden instalar la base de datos a través de Homebrew con brew installshared-mime-info.' https://github.com/mimemagicrb/mimemagic



------------------------------------

Otras soluciones pueden actualizar más gemas de las que te gustaría.

Otra solución es editar tu Gemfile.lock

Encuentra la línea que dice mimemagia (0.3.5)

Reemplazar con mimemagia (0.3.10)

O cualquiera que sea la versión 0.3.x más alta que encuentres aquí: https://github.com/mimemagicrb/mimemagic/tags

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare