Как удалить все драгоценные камни, установленные с помощью bundle install
в конкретном проекте RoR. Я не хочу удалять драгоценные камни, которые используются другими проектами.Как удалить все драгоценные камни, установленные с помощью `bundle install`
ответ
Нет никакого простого способа удалить все драгоценные камни - не говоря уже об удалении тех, которые находятся в определенном комплекте. Вы можете попробовать некоторые из этих предложений: Uninstall all installed gems, in OSX?
Адаптация к команде bundle show
вместо gem list
На будущее, попробуйте этот подход:
Если вы установите свой пакет локально, как, например ниже, драгоценные камни не будут установлены в вашей глобальной коллекции драгоценных камней. Затем вы можете легко удалить папку установки, чтобы удалить все драгоценные камни пакета.
# install gems to project_root/vendor/bundle
bundle install --path vendor/bundle --without test
Опция путь сохраняется в .bundle/конфигурации так же, как и все другие, и любые последующие bundle install
звонки будут использовать его, если вы установите его на что-то другое или удалить его из конфигурации!
+1 Я всегда устанавливаю их у поставщика. Легче управлять и поддерживать систему в чистоте. – andHapp
@KappaNossi: Если я удалю папку. Разве это освободит память, занятую драгоценными камнями, установленными в соответствующем комплекте? – nish
Да, конечно. Недостатком является то, что если в нескольких проектах используется один и тот же камень, у вас будет несколько его установок в соответствующих папках поставщиков, вместо того, чтобы использовать один центральный драгоценный камень в глобальном списке драгоценных камней. – KappaNossi
Так как мы используем рубин вы могли бы сделать что-то вроде этого, я предполагаю:
bundle list | ruby -e 'ARGF.readlines[1..-1].each {|l| g = l.split(" "); puts "Removing #{g[1]}"; `gem uninstall --force #{g[1]} -v #{g[2].gsub(/\(|\)/, "")}`; }'
ПРИМЕЧАНИЕ: Только слегка испытания.
Пробовал это, и не работает. Мой намек заключается в том, что вывод списка пакетов не является чистым списком конкретных драгоценных камней: драгоценные камни в списке пакетов не включают версию, есть пулевые точки и другая строка заголовка, которая может мешать. Мои два цента. – j4v1
Работал для меня после удаления '--force' – Gerry
для меня на OSX работал выше, вместо замены' list' в первой команде с помощью 'show'. - Подождите - я не совсем уверен, удалил ли он только драгоценные камни из этого конкретного Gemfile. Это выглядит так: http://bundler.io/v1.11/bundle_show.html – MikeiLL
Если вы используете RVM, вы, конечно, можете просто удалить и переустановить версию рубина, под которым вы установили драгоценные камни, т.е.
% rvm use
Using /home/ubuntu/.rvm/gems/ruby-2.2.1
% rvm uninstall 2.2.1
ruby-2.2.1 - #removing rubies/ruby-2.2.1..
ruby-2.2.1 - #removing default ruby interpreter.............
% rvm install 2.2.1
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/ubuntu/14.0/x86_64/ruby-2.2.1.tar.bz2
Checking requirements for ubuntu.
Requirements installation successful.
ruby-2.2.1 - #configure
ruby-2.2.1 - #download
ruby-2.2.1 - #validate archive
ruby-2.2.1 - #setup
ruby-2.2.1 - #gemset created /home/ubuntu/.rvm/gems/[email protected]
ruby-2.2.1 - #importing gemset /home/ubuntu/.rvm/gemsets/global.gems..............................
ruby-2.2.1 - #generating global wrappers........
ruby-2.2.1 - #gemset created /home/ubuntu/.rvm/gems/ruby-2.2.1
ruby-2.2.1 - #importing gemsetfile /home/ubuntu/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.2.1 - #generating default wrappers........
и теперь у вас есть рубиновая среда чистой любые установленные драгоценные камни.
Вы можете использовать (как говорит Тобиас, если вы используете RVM)
rvm gemset empty [gemset]
Непосредственно на gemset, например
rvm gemset empty [email protected]
Это работает, только если он использует RVM. – Tobias
Найдено решение для удаления всех драгоценных камней, кроме дефолта :
Crete delete_gems.rb с
#!/usr/bin/env ruby
# Remove all gems EXCEPT defaults :)
`gem list -d`.split(/\n\n^(?=\w)/).each do |data|
match = data.match(/(?<name>([^\s]+)) \((?<versions>.*)\)/)
name = match[:name]
versions = match[:versions].split(', ')
if match = data.match(/^.*\(([\d\.]*),? ?default\): .*$/)
next if match[1].empty? # it's the only version if this match is empty
versions.delete(match[1] || versions[0])
end
versions.each { |v| system "gem uninstall -Ix #{name} -v #{v}" }
end
Выполнить этот скрипт:
sudo chmod 1777 delete_gems.rb
./delete_gems.rb
Все драгоценные камни будут удалены, за исключением случаев невыполнения обязательств. Здесь ссылка на оригинальное решение http://zanshin.net/2013/06/10/how-to-delete-all-ruby-gems/
Это на самом деле так просто, как
gem list --no-versions | xargs gem uninstall -a
Если вы не используете RVM/RBENV, вы можете попасть в вопрос, когда камень пытается удалить системную библиотеку, которая может потерпеть неудачу. В этом случае вызовите команду uninstall один за другим, чтобы пропустить их.
gem list --no-versions | xargs -n1 gem uninstall -a
- 1. Рельсы загружают все установленные драгоценные камни?
- 2. Почему Bundle Install устанавливает драгоценные камни в поставщике/комплекте?
- 3. RVM, похоже, не сохранил установленные драгоценные камни
- 4. Использование GitBash -Установленные драгоценные камни?
- 5. RVM не использует установленные драгоценные камни
- 6. Список драгоценных камней, не перечисляющих все установленные драгоценные камни
- 7. Удалите все установленные драгоценные камни, за исключением конкретных версий
- 8. Ruby не может найти установленные драгоценные камни
- 9. Почему производственные рельсы игнорируют драгоценные камни, установленные комплектатором?
- 10. Как использовать драгоценные камни, установленные в каталоге поставщика/расслоении
- 11. Не удается найти установленные драгоценные камни
- 12. Драгоценные камни, предварительно установленные при создании проекта?
- 13. Рубимин, не признающий установленные драгоценные камни
- 14. Как удалить драгоценные камни из проекта Rails?
- 15. Rails - как драгоценные камни относятся к выполнению 'bundle'
- 16. Вложенные рельсы Драгоценные камни и драгоценные камни
- 17. Как разработать драгоценные камни?
- 18. ubuntu linux, новое окно терминала не распознает установленные драгоценные камни
- 19. Невозможно удалить рубиновые драгоценные камни
- 20. Bundler/Rails не могут найти недавно установленные драгоценные камни
- 21. Должен ли я вручную удалить все зависимые драгоценные камни?
- 22. Понимание переменной $ PATH: Установленные драгоценные камни не находятся на пути
- 23. Как очистить или удалить драгоценные камни
- 24. Как удалить рубин и драгоценные камни с помощью RVM?
- 25. jRuby/Glassfish не распознает установленные драгоценные камни (приложение Rails)
- 26. Установленные драгоценные камни, не обнаруженные связующим, когда BUNDLE_PATH изменен с помощью Docker
- 27. «bundle install» создает папку ./rails
- 28. Извлечь в комплекте драгоценные камни в системные драгоценные камни
- 29. Bundler и скрытые драгоценные камни
- 30. Установить драгоценные камни параллельно (быстрее)
См: [? Какова наилучшим способ удаления камней из проекта rails3] (http://stackoverflow.com/questions/4667150/what-is-the-best-way-to-uninstall- gems-from-a-rails3-project) – vee