2010-06-08 12 views
10

Me gusta que Rails 3 sea tan fácil de instalar: gem install rails --pre, y todas las dependencias se instalan automáticamente. Pero, ¿qué hay de desinstalarlo? Si acabo de hacer gem uninstall rails, todavía tengoDesinstalar Rails 3 con dependencias?

actionmailer (3.0.0.beta3) 
actionpack (3.0.0.beta3) 
activemodel (3.0.0.beta3) 
activerecord (3.0.0.beta3) 
activeresource (3.0.0.beta3) 
activesupport (3.0.0.beta3) 

que quiero deshacerse de él. ¿Cuál es la forma más fácil de hacerlo?

+0

Relacionado: http://stackoverflow.com/questions/952836/do-i-have-to-manually-uninstall- all-dependent-gems – ma11hew28

Respuesta

14

si usted está pensando en actualizar a una versión más reciente de los carriles, que puede hacer:

sudo gem clean 

o en versiones más nuevas

sudo gem cleanup 

después de la versión más reciente ha sido instalado, esta desinstalación Todos versiones anteriores de Todos sus gemas dejando solo la última versión en su sistema.

Nota: estos días utilizo gemset y/o bundler RVM para administrar mis gemas, si está utilizando RVM me parece que es mucho más simple de esta manera. Por ejemplo, puede crear un nuevo gemset para cada proyecto:

rvm gemset create project_name 
rvm gemset use project_name 
bundle install 

algo va mal puede simplemente eliminar el gemset y empezar de nuevo

rvm gemset delete project_name 
+0

Gracias, que va a hacer muy bien. sería bueno si 'clean' joya podría tener un número de versión como un argumento, por lo que podría eliminar todo el material '3.0.0.beta3' de un solo golpe, pero borrando todas las versiones antiguas es lo suficientemente bueno para mí. –

+5

esto no es exactamente la respuesta a esta pregunta.' joya clean', ahora 'cleanup' gema, simplemente borra versiones antiguas de tus gemas. Por ejemplo, digamos que estás actualizando de Rails X a Rails Y, y Rails X tiene una dependencia de Foo, pero Rails Y no. La primera vez que lo haces 'gem install rails' , Rails X se instala junto con gem Foo. La próxima vez que lo haga 'gem install rails', Rails Y está instalado. Entonces, haces 'limpieza de gemas'. La gema Foo queda en su sistema a pesar de que Rails Y no la usa. Un verdadero 'gem uninstall rails' con dependencias también eliminaría la gema Foo. – ma11hew28

1

comprobar la versión instalada actualmente (s):

gem list -d rails 

continuación, desinstalar la versión (s) que no quiere:

sudo gem uninstall rails -v 3.0.0.beta3 
sudo gem uninstall actionmailer -v 3.0.0.beta3 

etc.

Todavía estoy tratando de descubrir cómo eliminar completamente los rieles 3.0.0.beta3 y todos sus deps.

+0

Bien, me doy cuenta de que podría hacerlo; lo que realmente me preguntaba es, ¿no hay una manera que requiera un solo comando? Como un solo comando 'gema' que significa" desinstalar todo donde el número de versión es exactamente 3.0.0.beta3 "? –

+0

@MarkRichman @TrevorBurnham, esto tampoco es recursivo. Es decir, cuando instala Rails, instala ActiveResource, que instala ActiveModel, etc. Por lo tanto, esto solo tiene un nivel de profundidad (ActiveModel no se desinstalará). . un verdadero desinstalación sería desinstalar rieles, sus dependencias, dependencias sus dependencias, y así sucesivamente. – ma11hew28

3

Mira deps (opcional):

gem dependency rails -v=3.0.9 

A continuación, desinstale todos los componentes de la versión especificada:

gem uninstall actionmailer actionpack activerecord activesupport acriveresource rails -v=3.0.9 
2

me encontré con este excelente post sobre la eliminación de todas las gemas de rubí por Ken Nordquist: http://geekystuff.net/2009/01/14/remove-all-ruby-gems/

El comando utiliza tubos para empujar de manera iterativa una lista joya a la utilidad de desinstalación. Este es el comando:

'gem list | cut -d" " -f1 | xargs gem uninstall -aIx' 

Se ha eliminado correctamente todas las gemas, excepto los siguientes elementos que parecen ser fijado de forma permanente en mi Mac:

minitest (1.6.0) rastrillo (0.8.7) rdoc (2.5.8)

+0

años después y esto todavía es útil en OS X Yosemite. Hay más incumplimientos ahora. Pruebe: 'lista de gemas | cut -d "" -f1 | egrep -v "rdoc | psych | io-console | rastrillo | bigdecimal | json" | xargs gem uninstall -aIx' – Quint