2017-01-10 2 views
3

Ich möchte in meiner Produktionsumgebung Speicherplatz freigeben, der von Edelsteinen eingenommen wird, die für alte Ruby-Versionen installiert sind. Ich glaube nicht, dass bundle clean in diesem Fall funktionieren wird, weil ich nicht glaube, dass es die alten Edelsteine ​​für andere Rubine bereinigt.Wie lösche ich Edelsteine ​​für alte Ruby-Versionen, die von Bundler installiert wurden?

Diese Edelsteine ​​werden über capistrano installiert und an einem benutzerdefinierten Ort installiert, anstatt systemweit. In meinem /path/to/my-project/shared/bundle/ruby dir, sehe ich 2 Unterdirektionen - 2.2.0 & 2.3.0. Da ich jetzt Ruby 2.3 verwende, ist es sicher, nur das Verzeichnis 2.2.0 zu löschen? Gibt es noch etwas, was ich tun muss?

+0

welche Produktionsumgebung verwenden Sie? sollen sie nicht nach der Bereitstellung verschwinden? –

+0

Es sind Rails, und ich benutze capistrano, um sie zu deployen, aber [capistrano reinigt nichts] (https://github.com/bundler/bundler/issues/1926), da dies die Möglichkeit eines Rollbacks beeinträchtigen würde. – robd

Antwort

2

Verwenden Sie "Sudo Gem Cleanup", um alle zuvor installierten Edelsteine ​​zu entfernen, die alle Abhängigkeiten respektieren, sei es in der alten Version von Ruby. Sie können alle Edelsteine ​​sehen, die mit dem Befehl "sudo gem cleanup -d" entfernt werden.

+0

Das ist interessant - danke. Ich habe vergessen zu erwähnen, dass diese an einem benutzerdefinierten Ort über Bundler installiert sind (q jetzt aktualisiert). Weißt du, ob es ein Bundler-Äquivalent gibt (ich denke nicht)? – robd

0

Gehen Sie zu Gemfile.lock und löschen Sie den gesamten Inhalt. Dann gehst du zu Gemfile und löschst Edelsteine, die du nicht mehr willst. Danach geben Sie Bundle Install ein und es werden nur die gewünschten installiert.

+0

Ich glaube nicht, dass dies irgendwelche Edelsteine ​​löschen wird, weder für die aktuelle Ruby-Version noch für die alten. Auch das wird dazu führen, dass die neuesten Versionen aller Gems in Gemfile installiert werden, was ich nicht machen möchte. Habe ich hier etwas falsch verstanden? – robd

1

hier, wie Sie eine bestimmte Version des Edelstein entfernen:

gem uninstall (gem name here) --version (version number here) 
Verwandte Themen