-
Notifications
You must be signed in to change notification settings - Fork 1
libsvn
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....
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
...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
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 ~
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)