Resolvendo problemas de Dependências com o   Rodrigo Alves Vieira   rodrigo3n.com    rodrigo3n@gmail.com    @rodrigo3n
O que é o Bundler?
O que é o Bundler?Gerenciador e Empacotador de Dependências
O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1
O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1Criado por Yehu...
O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1Criado por Yehu...
Porquê Bundler?
Porquê Bundler?Porque sua aplicação precisa de outras Gems
Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versões
Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não ...
Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não ...
Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não ...
 Gem::LoadError: cant activate rack (~> 1.0.0., runtime) for["actionpack-2.3.5"], already activated rack-1.1.0 for ["thin-...
WTF?!
Isso acontece quando numamesma aplicação você inclui duas Gems diferentes que   dependem de versões    divergentes de uma ...
Solução do Bundler 
Solução do Bundler Resolver dependências antes de instalar
Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-las
Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-lasTe deixa usar gems direto de repo...
Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-lasTe deixa usar gems direto de repo...
Bem vindo,  Gemfile
#Isso é um Gemfilesource http://rubygems.org#source :gemcutter ou source http:gems.meusite.comgem rails, 3.0.0.beta4gem sq...
Uma outra dicagem funk, :git =>git@github.com:rodrigo3n/funk.git,:branch => experimental
O Bundler te deixa criar  ambientes de Gems
O Bundler te deixa criar      ambientes de Gems(De uma maneira ainda mais flexível do que no antigo config/environments.rb)
group :development do    gem sqlite3-ruby, :require => sqlite    gem unicornendgroup   :test do  gem   rspec-rails  gem   ...
group :development do    gem sqlite3-ruby, :require => sqlite    gem unicornendgroup   :test do  gem   rspec-rails  gem   ...
Você pode também criar seuspróprios ambientes de Gems
group   :meugrupo do  gem   sinatra  gem   heroku  gem   eventmachineend
Lista de comandos do Bundler    bundle   check  bundle     console [grupo]  bundle     exec  bundle     help [tarefa]  bun...
Rode $bundle no    Terminal e veja essalistagem de comandos com      suas respectivas         descrições
Algumas coisas que você precisa    saber sobre o Bundler 
Algumas coisas que você precisa      saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladas
Algumas coisas que você precisa      saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle i...
Algumas coisas que você precisa      saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle i...
Algumas coisas que você precisa      saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle i...
Algumas coisas que você precisa      saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle i...
Há também uma opção pra usar diferentesGems em diferentes interpretadores Ruby
Há também uma opção pra usar diferentes  Gems em diferentes interpretadores Rubyplatform :ruby, :rbx do  gem sqlite3-ruby,...
Há também uma opção pra usar diferentes  Gems em diferentes interpretadores Rubyplatform :ruby, :rbx do  gem sqlite3-ruby,...
Nem tudo no Bundler são unicórnios e twitter-sem-fail-whale, alguns problemas já foram relatadosembora eu pessoalmente não...
Quer saber mais é?      http://gembundler.com         Obrigado!Rodrigo Alves Vieira   rodrigo3n.com rodrigo3n@gmail.com   ...
Resolvendo problemas com o Bbundler
Resolvendo problemas com o Bbundler
Resolvendo problemas com o Bbundler
Resolvendo problemas com o Bbundler
Resolvendo problemas com o Bbundler
Upcoming SlideShare
Loading in …5
×

Resolvendo problemas com o Bbundler

901 views
809 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
901
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Resolvendo problemas com o Bbundler

  1. 1. Resolvendo problemas de Dependências com o Rodrigo Alves Vieira rodrigo3n.com  rodrigo3n@gmail.com @rodrigo3n
  2. 2. O que é o Bundler?
  3. 3. O que é o Bundler?Gerenciador e Empacotador de Dependências
  4. 4. O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1
  5. 5. O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1Criado por Yehuda Katz, Carl Lerche e Andre Arko
  6. 6. O que é o Bundler?Gerenciador e Empacotador de DependênciasConvenção no Rails apartir da versão 3.0.0.beta1Criado por Yehuda Katz, Carl Lerche e Andre ArkoPensado pra servir pra qualquer projeto Ruby (E sobre qualquer interpretador)
  7. 7. Porquê Bundler?
  8. 8. Porquê Bundler?Porque sua aplicação precisa de outras Gems
  9. 9. Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versões
  10. 10. Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não quer perder tempo
  11. 11. Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não quer perder tempoPorque é muito fácil de usar e manter
  12. 12. Porquê Bundler?Porque sua aplicação precisa de outras GemsPorque rake gems:install poderia alterar versõesPorque você não quer perder tempoPorque é muito fácil de usar e manterPorque o antigo sistema de dependências é burro
  13. 13.  Gem::LoadError: cant activate rack (~> 1.0.0., runtime) for["actionpack-2.3.5"], already activated rack-1.1.0 for ["thin-1.2.7"] 
  14. 14. WTF?!
  15. 15. Isso acontece quando numamesma aplicação você inclui duas Gems diferentes que dependem de versões divergentes de uma determinada/única Gem  
  16. 16. Solução do Bundler 
  17. 17. Solução do Bundler Resolver dependências antes de instalar
  18. 18. Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-las
  19. 19. Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-lasTe deixa usar gems direto de repositórios Git
  20. 20. Solução do Bundler Resolver dependências antes de instalarLacrar as Gems após instalá-lasTe deixa usar gems direto de repositórios GitAdeus ao config/environment.rb do Rails 2.3!
  21. 21. Bem vindo, Gemfile
  22. 22. #Isso é um Gemfilesource http://rubygems.org#source :gemcutter ou source http:gems.meusite.comgem rails, 3.0.0.beta4gem sqlite3-ruby, :require => sqlitegem smart_model#Quer usar o Rails direto do repositório oficial?:#gem rails, :git => git://github.com/rails/rails.git#Ou mesmo, quer usar o teu fork do Rails?:#gem rails, :git => git://github.com/tu/rails.git#gem rails, :git =>git@github.com:rodrigo3n/rails.git#Ou também:#gem rails, :path => ~/codigo/gems/rails#Tem muito mais por aí.... o/
  23. 23. Uma outra dicagem funk, :git =>git@github.com:rodrigo3n/funk.git,:branch => experimental
  24. 24. O Bundler te deixa criar ambientes de Gems
  25. 25. O Bundler te deixa criar ambientes de Gems(De uma maneira ainda mais flexível do que no antigo config/environments.rb)
  26. 26. group :development do gem sqlite3-ruby, :require => sqlite gem unicornendgroup :test do gem rspec-rails gem cucumber-rails gem launchyendgroup :production do gem pg gem passengerend
  27. 27. group :development do gem sqlite3-ruby, :require => sqlite gem unicornendgroup :test do gem rspec-rails gem cucumber-rails gem launchyendgroup :production do gem pg gem passengerend % bundle install --without production
  28. 28. Você pode também criar seuspróprios ambientes de Gems
  29. 29. group :meugrupo do gem sinatra gem heroku gem eventmachineend
  30. 30. Lista de comandos do Bundler    bundle check bundle console [grupo] bundle exec bundle help [tarefa] bundle init bundle install bundle lock bundle open [gem] bundle package bundle show [gem] bundle unlock bundle version
  31. 31. Rode $bundle no Terminal e veja essalistagem de comandos com suas respectivas descrições
  32. 32. Algumas coisas que você precisa saber sobre o Bundler 
  33. 33. Algumas coisas que você precisa saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladas
  34. 34. Algumas coisas que você precisa saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle install  instala as Gems no seu sistema
  35. 35. Algumas coisas que você precisa saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle install  instala as Gems no seu sistemaO Bundler pede a senha do  $sudo  se for o caso
  36. 36. Algumas coisas que você precisa saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle install  instala as Gems no seu sistemaO Bundler pede a senha do  $sudo  se for o casoTravamento (locking) de Gems acontece automagicamente
  37. 37. Algumas coisas que você precisa saber sobre o Bundler Sempre aponta pra as Gems que você já tem instaladasO $bundle install  instala as Gems no seu sistemaO Bundler pede a senha do  $sudo  se for o casoTravamento (locking) de Gems acontece automagicamente$bundle update atualiza versões  (Tenha cuidado!)
  38. 38. Há também uma opção pra usar diferentesGems em diferentes interpretadores Ruby
  39. 39. Há também uma opção pra usar diferentes Gems em diferentes interpretadores Rubyplatform :ruby, :rbx do gem sqlite3-ruby, :require => sqliteendplatform :jruby do gem activerecord-jdbc-adapterend
  40. 40. Há também uma opção pra usar diferentes Gems em diferentes interpretadores Rubyplatform :ruby, :rbx do gem sqlite3-ruby, :require => sqliteendplatform :jruby do gem activerecord-jdbc-adapterend Isso é especialmente útil quando você quer testar performance e comportamente do seu projeto Rails
  41. 41. Nem tudo no Bundler são unicórnios e twitter-sem-fail-whale, alguns problemas já foram relatadosembora eu pessoalmente não tenha tido nenhum(até o presente momento).Visite http://github.com/carlhuda/bundler/issuesou ruby-bundler no Google Groups ou #bundler noFreenode. Sugestões, questões e reporte de Bugssão bem vindos!Alternativamente você pode me mandar um emailou um tweet. Ou postar algo no Frevo on Rails ;-)
  42. 42. Quer saber mais é? http://gembundler.com Obrigado!Rodrigo Alves Vieira rodrigo3n.com rodrigo3n@gmail.com @rodrigo3n

×