Uninstalling a gem fails if bin directory doesn't exist
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 73/100
Direzione di ricerca
L’errore rimanda a Gem::Uninstaller#remove_executables in uninstaller.rb; leggi prima quel metodo e i test esistenti del programma di disinstallazione. Riproduci il problema con gem uninstall quando manca la directory bin del gem, poi verifica che la disinstallazione riesca senza errori di permesso ed esegui i test pertinenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the problem as clearly as you can
See title.
Did you try upgrading RubyGems?
Every day.
Post steps to reproduce the problem
See below.
Which command did you run?
$ gem uninstall minitest # or other gem
What were you expecting to happen?
Uninstall the gem.
What actually happened?
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /opt/homebrew/Cellar/ruby/4.0.7_1/lib/ruby/gems/4.0.0/bin directory.
/opt/homebrew/lib/ruby/site_ruby/4.0.0/rubygems/uninstaller.rb:225:in 'Gem::Uninstaller#remove_executables'
remove_executables(spec) tests write permissions without first testing existence, causing a misguided failure.
Run gem env and paste the output below
RubyGems Environment:
- RUBYGEMS VERSION: 4.0.23
- RUBY VERSION: 4.0.7 (2026-09-15 patchlevel 0) [arm64-darwin27]
- GEM PATHS:
- /opt/homebrew/lib/ruby/gems/4.0.0
- /Users/omega/.local/share/gem/ruby/4.0.0
- /opt/homebrew/Cellar/ruby/4.0.7_1/lib/ruby/gems/4.0.0
$ echo $GEM_HOME $GEM_PATH $GEM_ROOT
$ ruby -e 'Gem.path.each { puts [File.directory?(it), File.directory?("#{it}/bin"), it].join("\t") }'
false false ~/.local/share/gem/ruby/4.0.0
true true /opt/homebrew/lib/ruby/gems/4.0.0
true false /opt/homebrew/Cellar/ruby/4.0.7_1/lib/ruby/gems/4.0.0
The bin directory not existing might be another issue.
Proposal
Handle the absence gracefully.
$ diff uninstaller~.rb uninstaller.rb
222,224c222,225
< if remove
< bin_dir = @bin_dir || Gem.bindir(spec.base_dir)
<
---
> bin_dir = @bin_dir || Gem.bindir(spec.base_dir)
> if !File.directory? bin_dir
> say "#{bindir} does not exist, assuming #{exe_name} does not either."
> elsif remove
- Lingua principale
- Ruby
- Stelle
- 4k
- Fork
- 1.9k
- Merge medio
- 1g 9h
- PR unite (30g)
- 37
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ruby/rubygems
-
Record `override` directives in Gemfile.lock (an `OVERRIDES` section)Forse già presa @paracycle l’ha presa 1 giorno fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ruby/rubygems#9957 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Parallel `bundle install` races on a git cache shared by multiple gems from one repoForse già presa @Shaisolaris l’ha presa 6 giorni fa. ApertaBundler
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
ruby/rubygems#9945 · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Bundler
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Bundler
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ruby/rubygems
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
NatLabRockies/OpenStudio-HPXML#2284 ·
-
aikido security:critical
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
dequelabs/axe-core-gems#532 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
phusion/passenger-docker#480 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 5 giorni
-
f:search improvement user-experience
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno