Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby command-t SEGV

I am on ubuntu 11.10 and have had vim-gnome installed and working. Using vundle and have installed seeral packages all working.

I have installed command-t but it will not function until C extensions are compiled. Reading the manual this is the solution.

  rake make

For me the location is actually:

~/.vim/bundle/command-t

Anyway so I turned rvm off and installed the system 1.8 as advised in the command-t help guide. I checked the documentation and the most common cause of command-t errors is compiling against the wrong ruby.

So I found this command to check the compiled version.

renshaw@renshaw-TravelMate-5740G:~/.vim/bundle/command-t$ ldd `which vim` | grep ruby
libruby1.8.so.1.8 => /usr/lib/libruby1.8.so.1.8 (0x00007f913932c000)

So I installed rake for the ruby 1.8 and compiled with rake make

renshaw@renshaw-TravelMate-5740G:~/.vim/bundle/command-t$ sudo rake make
/usr/bin/ruby1.8 extconf.rb
checking for ruby.h... yes

and off it goes and compiles.

however start gvim and run \t for command-t and

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

How can I get command-t going on ubuntu 11.10?

Update.

Built Gvim from sources using

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

The vim version command returns correct that ruby support is built against my installed system 1.8 but it still SEGV when using command T.

So found and tried this

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

This failed as well. I then add this to bashrc from a previous support ticket.

vim() {
    (unset GEM_PATH GEM_HOME; command vim "$@")
}
like image 722
sayth Avatar asked Jan 29 '12 10:01

sayth


3 Answers

I had similar problems when using the rake task. I solved it by compiling the extension myself.

From the command-t plugin directory:

rvm use system    
cd ruby/command-t
ruby extconf.rb
make
sudo make install
like image 89
Sean Avatar answered Oct 22 '22 22:10

Sean


Ubuntu 13.04 has the very same issue. After trying different combinations, here is what worked for me.

I don't like building from the source, so I used vim-nox package:

sudo apt-get install vim-nox

Now, when compiling command-t with Ruby 1.8.7 or Ruby 2.0.0 SEGV signals were caught. In order to experiment with different Ruby versions, I installed rvm:

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

Then I used Ruby 1.9.1 to compile the command-t extension:

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

To sum up: vim-nox + ruby 1.9.1 = vim command-t works well on Ubuntu 13.04.

like image 2
Victor Farazdagi Avatar answered Oct 23 '22 00:10

Victor Farazdagi


I got it to work on Ubuntu 11.10 following these instructions and building Vim and Command-T with 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

And then following the Command-T installation instructions for Pathogen, in my case.

like image 1
reentim Avatar answered Oct 22 '22 22:10

reentim