2013-07-22 19 views
14

Ho rimosso una gemma "mygem" dal Gemfile, ma proprio ora mi sono reso conto che è ancora installato.Cosa fare dopo aver rimosso una gemma dal Gemfile?

Quindi, come posso chiedere a bundler di eseguire nuovamente la scansione del file Gemfile e aggiornare Gemfile.lock, senza aggiornando ogni gemma?

Proveniente da php, questo è il modo in cui sono abituato a fare questo: composer update nothing. Esiste un equivalente per bundler?

risposta

25

È possibile eseguire solo bundle o bundle install per installare gemme basate sul proprio Gemfile. Ciò rimuoverà l'istanza di mygem dal file Gemfile.lock. Tuttavia, non rimuoverà la gemma dal tuo sistema. Per farlo, esegui gem uninstall mygem.

Non del tutto relativo, ma ancora utile:

  • bundle outdated vi mostrerà le gemme che non sono sulla versione più recente. Non ottenere troppo legato a questa lista - è abbastanza comune avere gemme che non sono nella versione più recente, perché alcune gemme sono installate come dipendenze & una gemma potrebbe richiedere una versione precedente di un'altra gemma.
  • bundle upgrade mygem aggiornerà solo questa gemma e porterà le sue dipendenze aggiornate. Ciò significa che altre gemme potrebbero essere aggiornate o installate.
  • È possibile cercare RubyGems per vedere le dipendenze di una gemma in ciascuna delle sue versioni. Come utente gem, dovrai solo preoccuparti dell'elenco "Dipendenze runtime" nella parte inferiore della pagina della gemma.
+6

C'è anche molto utile 'comando Clean' fascio per rimuovere automaticamente le gemme vecchi e inutilizzati. Funziona con Bundler> = 1.1 e se le gemme sono state installate con l'opzione '--path'. – Torimus

+0

Oh, bello! Sto usando 'gem cleanup' ... Qualche idea su come i due differiscono? –

+0

Mi piacciono le risposte complete come queste – Donato

1

pulisce gemme non utilizzate nella directory bundler: fascio --force pulita

Problemi correlati