SlideShare uma empresa Scribd logo
1 de 12
LuaRocks 2.0

Lua Workshop 2009

Hisham Muhammad
http://www.luarocks.org
Gerência de módulos em Lua
Lua 5.1 introduziu um sistema de módulos
  require(), module()
Reuso de módulos
  Perl tem CPAN, Ruby tem RubyGems, etc.
LuaRocks
Sistema de gerenciamento e distribuição
  de módulos para a linguagem Lua
  Portável: Linux, BSD, OSX, Windows
  Licença MIT/X11
  Similar ao RubyGems
Recursos
Download e instalação de módulos
  luarocks build luasocket
  luarocks list, luarocks search curl...
Um gerenciador de módulos dinâmico para
 uma linguagem dinâmica
  Suporte a resolução de cadeias de
   dependências em tempo de execução
  Instalação em paralelo de múltiplas versões de
    um módulo
LuaRocks 1.0
Módulos empacotados como “rocks”
Árvore local de rocks
  Cada rock contém sua própria sub-árvore:
    bin
    lib
    lua
    ...
Módulo luarocks.require realiza a resolução
 em runtime
Recepção
Boa, mas não ideal
Usuários desconfortáveis com o módulo
 luarocks.require
  Wrapper da função require()
LuaRocks 2.0
Não precisa de luarocks.require
Instala módulos em uma árvore Lua padrão
  .../share/lua/5.1
  .../lib/lua/5.1
Basta incluir estes caminhos no
 package.path e package.cpath
  Instalação default usa /usr/local
Controle de módulos no LR2
Cada rock instalado possui um arquivo
 rock_manifest
  Contém a lista de arquivos e os seus MD5
LuaRocks compila módulos como de
 costume
  Realiza fase de “deployment” baseado no
   rock_manifest
Suporte a múltiplas versões
Usa mecanismo de Lua
 Versões antigas instaladas ganham um prefixo
  no nome do arquivo
    md5/core.so
    md5/md5_1.0.2_1-core.so
 Para usar versões antigas transparentemente,
  o LuaRocks 2.0 inclui um package loader
  extra (require “luarocks.loader”) que faz a
  seleção baseado na árvore de dependências
Compatibilidade
Servidores de rocks compatíveis com
 LuaRocks 1.0:
  Formato rockspec mantido
  Formato de manifest de servidores de rocks
   mantido
Instalações locais não:
  Formato de manifest local alterado
  Árvore de diretórios alterada
Conclusões
●   LR2: Novo formato de instalação local
●   Compatibilidade de rockspecs com LR1
      –   Sem disrupção na comunidade
●   Melhor compatibilidade com vanilla Lua
      –   Menor barreira de entrada
●   Maior dependência em arquivos de
     controle
      –   Mecanismos de verificação
Obrigado!
●   Perguntas?
●   Contato: hisham@gobolinux.org

Mais conteúdo relacionado

Mais procurados

Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)Joao Kanino
 
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...Adriel Viana
 
Tutorial Replicação Slony
Tutorial Replicação SlonyTutorial Replicação Slony
Tutorial Replicação SlonySofia Trindade
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaAdriel Viana
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Tomcat e Aplicações Web
Tomcat e Aplicações WebTomcat e Aplicações Web
Tomcat e Aplicações Webelliando dias
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dadosMarcio Jonnes
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open sourceRodrigo Aurélio
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorJoao Andre Picao
 
Java no-ubuntu-1204-instalacao-a-moda-antiga
Java no-ubuntu-1204-instalacao-a-moda-antigaJava no-ubuntu-1204-instalacao-a-moda-antiga
Java no-ubuntu-1204-instalacao-a-moda-antigaSilas Lima
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6Wagner Bianchi
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas operacionais1
Sistemas operacionais1Sistemas operacionais1
Sistemas operacionais1Nauber Gois
 

Mais procurados (20)

Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)Sistemas operativo servidor (PT)
Sistemas operativo servidor (PT)
 
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...
APRESENTAÇÃO DE TCC - ESTUDO DE VIABILIDADE DE SERVIDORES EM CLUSTER PARA A A...
 
Tutorial Replicação Slony
Tutorial Replicação SlonyTutorial Replicação Slony
Tutorial Replicação Slony
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web Java
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Tomcat e Aplicações Web
Tomcat e Aplicações WebTomcat e Aplicações Web
Tomcat e Aplicações Web
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dados
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Linux como funciona esta fera
Linux como funciona esta feraLinux como funciona esta fera
Linux como funciona esta fera
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Lynxos RTOS
Lynxos RTOSLynxos RTOS
Lynxos RTOS
 
Java no-ubuntu-1204-instalacao-a-moda-antiga
Java no-ubuntu-1204-instalacao-a-moda-antigaJava no-ubuntu-1204-instalacao-a-moda-antiga
Java no-ubuntu-1204-instalacao-a-moda-antiga
 
PostgreSQL Conceitos e aplicações
PostgreSQL  Conceitos e aplicaçõesPostgreSQL  Conceitos e aplicações
PostgreSQL Conceitos e aplicações
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6
 
Instalação de Servidor de Arquivo
Instalação de Servidor de ArquivoInstalação de Servidor de Arquivo
Instalação de Servidor de Arquivo
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas operacionais1
Sistemas operacionais1Sistemas operacionais1
Sistemas operacionais1
 

Semelhante a Luarocks 2.0 - talk at Lua Workshop 2009

LuaRocks - palestra Hack'n'Rio 2011
LuaRocks - palestra Hack'n'Rio 2011LuaRocks - palestra Hack'n'Rio 2011
LuaRocks - palestra Hack'n'Rio 2011Hisham Muhammad
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxFrederico Madeira
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Tópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfTópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfLuiz Arthur
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Jocsa Rosendo
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
O que é o ruby on rails?
O que é o ruby on rails?O que é o ruby on rails?
O que é o ruby on rails?Leonardo Costa
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Jeison Barros
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9Helder da Rocha
 

Semelhante a Luarocks 2.0 - talk at Lua Workshop 2009 (20)

LuaRocks - palestra Hack'n'Rio 2011
LuaRocks - palestra Hack'n'Rio 2011LuaRocks - palestra Hack'n'Rio 2011
LuaRocks - palestra Hack'n'Rio 2011
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
52 java
52 java52 java
52 java
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Tópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster BeowulfTópicos - Computacao Paralela Intalação Cluster Beowulf
Tópicos - Computacao Paralela Intalação Cluster Beowulf
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Lazarus Free
Lazarus FreeLazarus Free
Lazarus Free
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Wisher
WisherWisher
Wisher
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
O que é o ruby on rails?
O que é o ruby on rails?O que é o ruby on rails?
O que é o ruby on rails?
 
Linux aula 01 (1).pdf
Linux aula 01 (1).pdfLinux aula 01 (1).pdf
Linux aula 01 (1).pdf
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
Introducao logica2
Introducao logica2Introducao logica2
Introducao logica2
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 
Curso de CVS - Lab 2
Curso de CVS - Lab 2Curso de CVS - Lab 2
Curso de CVS - Lab 2
 
Introdução a tecnologia Java
Introdução a tecnologia JavaIntrodução a tecnologia Java
Introdução a tecnologia Java
 

Luarocks 2.0 - talk at Lua Workshop 2009

  • 1. LuaRocks 2.0 Lua Workshop 2009 Hisham Muhammad http://www.luarocks.org
  • 2. Gerência de módulos em Lua Lua 5.1 introduziu um sistema de módulos require(), module() Reuso de módulos Perl tem CPAN, Ruby tem RubyGems, etc.
  • 3. LuaRocks Sistema de gerenciamento e distribuição de módulos para a linguagem Lua Portável: Linux, BSD, OSX, Windows Licença MIT/X11 Similar ao RubyGems
  • 4. Recursos Download e instalação de módulos luarocks build luasocket luarocks list, luarocks search curl... Um gerenciador de módulos dinâmico para uma linguagem dinâmica Suporte a resolução de cadeias de dependências em tempo de execução Instalação em paralelo de múltiplas versões de um módulo
  • 5. LuaRocks 1.0 Módulos empacotados como “rocks” Árvore local de rocks Cada rock contém sua própria sub-árvore: bin lib lua ... Módulo luarocks.require realiza a resolução em runtime
  • 6. Recepção Boa, mas não ideal Usuários desconfortáveis com o módulo luarocks.require Wrapper da função require()
  • 7. LuaRocks 2.0 Não precisa de luarocks.require Instala módulos em uma árvore Lua padrão .../share/lua/5.1 .../lib/lua/5.1 Basta incluir estes caminhos no package.path e package.cpath Instalação default usa /usr/local
  • 8. Controle de módulos no LR2 Cada rock instalado possui um arquivo rock_manifest Contém a lista de arquivos e os seus MD5 LuaRocks compila módulos como de costume Realiza fase de “deployment” baseado no rock_manifest
  • 9. Suporte a múltiplas versões Usa mecanismo de Lua Versões antigas instaladas ganham um prefixo no nome do arquivo md5/core.so md5/md5_1.0.2_1-core.so Para usar versões antigas transparentemente, o LuaRocks 2.0 inclui um package loader extra (require “luarocks.loader”) que faz a seleção baseado na árvore de dependências
  • 10. Compatibilidade Servidores de rocks compatíveis com LuaRocks 1.0: Formato rockspec mantido Formato de manifest de servidores de rocks mantido Instalações locais não: Formato de manifest local alterado Árvore de diretórios alterada
  • 11. Conclusões ● LR2: Novo formato de instalação local ● Compatibilidade de rockspecs com LR1 – Sem disrupção na comunidade ● Melhor compatibilidade com vanilla Lua – Menor barreira de entrada ● Maior dependência em arquivos de controle – Mecanismos de verificação
  • 12. Obrigado! ● Perguntas? ● Contato: hisham@gobolinux.org