Skip to content
Marcello Moura edited this page Feb 26, 2014 · 5 revisions

O pessoal da Assembla fizeram o incrível esforço de corrigir os bindings do svn para o ruby 1.9, então agora basta fazermos o checkout do trunk do subversion e compilar os bindings por pouco não foi agente que fez esse patch em....

Passos

Obs.: Considerando que está sendo usado o RVM e o ruby versão 1.9.3 .

Instalando dependências

 # aptitude install swig libaprutil1-dev libsvn-dev

Checkout do projeto

 $ cd
 $ svn co http://svn.apache.org/repos/asf/subversion/tags/1.8.8/ subversion

Entrando no diretório do projeto

 $ cd subversion

autogen (instalar dependências se pedido)

 $ ./autogen.sh

configure

 $ ./configure RUBY=`which ruby` --without-berkeley-db --with-openssl --enable-shared
 $ make
 $ make swig-rb
 $ make install-swig-rb

Para testar (se o resultado for este a biblioteca está funcionando =])

 $ irb
 1.9.3-p0 :001 > require 'svn/client'
  => true

Possíveis erros

...libruby-static.a: could not read symbols: Bad value

Nesse caso você deve recompilar o ruby com o parâmetro "--enable-shared", exemplo no rbenv

CONFIGURE_OPTS="--enable-shared" rbenv install 1.9.3-p392

Todos os passos de uma instalação do zero

sudo aptitude install build-essential openssl libreadline6 libreadline6-dev curl git-core \
zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev \
autoconf libc6-dev ncurses-dev automake libtool bison subversion mysql-server sqlite subversion

## rbenv
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc 
echo 'eval "$(rbenv init -)"' >> ~/.bashrc 
exec $SHELL -l

## ruby
CONFIGURE_OPTS="--enable-shared" rbenv install -v 2.0.0-p195
rbenv global 2.0.0-p195 

## subversion + bindings
svn co http://svn.apache.org/repos/asf/subversion/trunk subversion
cd subversion/
sudo aptitude install swig libaprutil1-dev libsvn-dev
./autogen.sh 
./configure --prefix=`pwd` RUBY=`which ruby` --without-berkeley-db --with-openssl --enable-shared
make
make swig-rb
make install-swig-rb
~                       

Usando a biblioteca já compilada

Faça download do arquivo

Leia o arquivo "readme.md" que está dentro do pacote.

= Estrutura

Nesse pacote temos duas pastas

 # 2.0.0-p195: os bindings do svn compilados para o ruby 2.0.0-p195, mova
   o conteúdo dessa pasta para a pasta raiz da sua instalação ruby.
   $ cp -r 2.0.0-p195/* /.rbenv/versions/2.0.0-p195/

 # libsvn_swig_ruby: contém as bibliotecas compiladas que serão usadas
   pelos bindings ruby.
   $ sudo cp -r libsvn_swig_ruby/lib/* /usr/lib/svn/lib

= Importante

Edite o arquivo `2.0.0-p195/lib/ruby/site_ruby/2.0.0/x86_64-linux/svn/ext/core.la` e corrija os
caminhos para os arquivos que estão lá, hoje tem o caminho do meu sistema, então faça uma busca por
"danilo" e substitua pelo caminho na sua máquina. (os arquivos da pasta "libsvn_swig_ruby" são
referenciados nesse arquivo)

Clone this wiki locally