2012-01-29 14 views
5

Estoy en Ubuntu 11.10 y he instalado vim-gnome y estoy trabajando. Usar vundle y haber instalado los paquetes seeral todos funcionando.Ruby command-t SEGV

He instalado command-t pero no funcionará hasta que se compilen las extensiones C. Leer el manual esta es la solución.

rake make 

Para mí la ubicación es en realidad:

~/.vim/bundle/command-t 

De todos modos así que me di RVM fuera e instalado el sistema de 1.8 como se aconseja en la guía de ayuda t-comando. Revisé la documentación y la causa más común de los errores de comando-t es compilar contra el rubí incorrecto.

Encontré este comando para verificar la versión compilada.

[email protected]:~/.vim/bundle/command-t$ ldd `which vim` | grep ruby 
libruby1.8.so.1.8 => /usr/lib/libruby1.8.so.1.8 (0x00007f913932c000) 

así que instalé el rastrillo para el rubí 1,8 y compilado con el rastrillo hacen

[email protected]:~/.vim/bundle/command-t$ sudo rake make 
/usr/bin/ruby1.8 extconf.rb 
checking for ruby.h... yes 

y fuera de él va y se compila.

sin embargo iniciar gvim y correr \ t para el mando-T y

Vim: Caught deadly signal SEGV 
Vim: Finished. 
Segmentation fault 

¿Cómo puedo obtener comando-t ir en Ubuntu 11.10?

Actualización.

Construido Gvim de fuentes usando

hg clone https://vim.googlecode.com/hg/ vim 
cd vim 
sudo ./configure --enable-rubyinterp=yes --enable-pythoninterp=yes --enable-gui=gtk2 
make 
make install 

vim --version | grep ruby 

VIM comando devuelve la versión correcta de que el apoyo de rubí se construye en contra de mi sistema instalado 1.8 pero todavía SEGV cuando se utiliza T. comando

así que encontramos y probamos este

cd ~/.vim/ruby/command-t 
/usr/bin/ruby extconf.rb 
make 

Esto también falló. Luego agrego esto a bashrc desde un ticket de soporte anterior.

vim() { 
    (unset GEM_PATH GEM_HOME; command vim "[email protected]") 
} 
+0

Estoy teniendo el mismo problema en Ubuntu 11.04, habiendo seguido la mayoría de las mismas cosas que tiene. Funciona muy bien en otra computadora mía (también Ubuntu 11.04), con lo que debería ser la misma configuración. Usando el paquete vim-gnome. – Mika

Respuesta

13

Tuve problemas similares al usar la tarea de inclinación. Lo resolví compilando la extensión yo mismo.

Desde el directorio t-comando plugin:

rvm use system  
cd ruby/command-t 
ruby extconf.rb 
make 
sudo make install 
+3

Eso se compiló sin embargo, todavía termino con la misma falla de segmentación. – sayth

+0

Para usuarios de Vundle: Instale command-T con Vundle agregando 'Bundle 'Command-T'' en' .vimrc.bundles' y luego siga Sean answer. El directorio está en '~/.vim/bundle/Command-T/ruby ​​/ command-t' Funciona muy bien. – Mick

1

lo tengo para trabajar en Ubuntu 11.10 siguiente these instructions y la construcción de Vim y el Comando-T con Ruby 1.9.2p290 -

sudo apt-get install python-dev ruby-dev mercurial ncurses-dev liblua5.1-0-dev lua5.1 

rvm use 1.9.2 

hg clone https://vim.googlecode.com/hg/ ~/vim 
cd ~/vim 
hg update -C v7-3-154 
./configure --with-features=huge --disable-largefile \ 
     --enable-perlinterp --enable-pythoninterp \ 
     --enable-rubyinterp --enable-gui=gtk2 \  
make 
sudo make install 

Y luego siguiendo el Command-T installation instructions para Pathogen, en mi caso.

2

Ubuntu 13.04 tiene el mismo problema. Después de probar diferentes combinaciones, esto es lo que funcionó para mí.

no me gusta la construcción de la fuente, por lo que utiliza el paquete vim-nox:

sudo apt-get install vim-nox

Ahora, al compilar comando-t con Ruby o Ruby 1.8.7 2.0.0 señales SEGV fueron atrapados. Con el fin de experimentar con diferentes versiones de Ruby, he instalado rvm:

curl -L https://get.rvm.io | bash

Luego utiliza Rubí 1.9.1 para compilar el comando de extensión t-:

rvm install 1.9.1 
rvm use 1.9.1 
cd ~/.vim/bundle/command-t/ruby/command-t 
ruby extconf.rb 
make 

Para resumir: vim- nox + ruby ​​1.9.1 = vim command-t funciona bien en Ubuntu 13.04.

+0

Gracias, al usar Ruby 1.9.1 también ordené mi problema de SEGV. Para mí, eso fue en Ubuntu 14.04 con Vim 7.4 compilado de la fuente. – jacderida

0

Esto es cómo me fijo este problema (creo que es causado por la versión missmatch):

que tenían una versión antigua de vim instalado (de apt usando Debian). La versión anterior de vim estaba usando la versión 1.9.x anterior de las bibliotecas de Ruby. Recopilé command-t de acuerdo con la guía en https://github.com/wincent/Command-T. Utilicé Ruby 2.1.x durante el proceso de compilación. Tengo SEGV cuando lo hice. Creo que fue causado por la falta de coincidencia de versión entre el Ruby que utilicé cuando compilé el comando-t y el Ruby vim está usando. Así que la solución fue compilar vim contra las mismas librerías de Ruby contra las que se compiló el comando-t. Cuando actualicé mi vim usando "apt-get install vim" todo comenzó a funcionar. Ahora la nueva versión de vim está usando las mismas nuevas bibliotecas de Ruby que vienen con el administrador de paquetes.