2012-01-29 57 views
5

我在Ubuntu 11.10上安裝了vim-gnome並正在運行。使用vundle並安裝了seeral包都可以工作。Ruby命令-s SEGV

我已經安裝了command -t,但直到C擴展被編譯後纔會起作用。閱讀手冊這是解決方案。

rake make 

對於我的位置居然是:

~/.vim/bundle/command-t 

反正所以我把RVM關閉,安裝在系統1.8的命令-T幫助指導建議中。 我檢查了文檔,command -t錯誤的最常見原因是編譯錯誤的ruby。

所以我發現這個命令來檢查編譯版本。

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

因此,我安裝了耙紅寶石1.8並與耙編譯使

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

和關閉它去和編譯。

然而GVIM啓動和運行的\ t命令-T和

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

我怎樣才能得到命令-T將會在Ubuntu 11.10?

更新。

使用

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版本命令返回來源內置GVIM糾正紅寶石的支持對我的系統安裝內置1.8,但使用命令T.當

所以發現它仍然SEGV並試用了此

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

這也失敗了。 然後我將它添加到以前的支持票據中的bashrc中。

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

我在Ubuntu 11.04上遇到了同樣的問題,它遵循了大部分相同的事情。它在我的另一臺計算機(也是Ubuntu 11.04)上工作得很好,而且應該是相同的設置。使用vim-gnome軟件包。 – Mika 2012-02-07 17:50:49

回答

13

我在使用rake任務時遇到了類似的問題。我通過自己編譯擴展來解決它。

從命令-T的插件目錄:

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

雖然編譯過,但我仍然以相同的段錯誤結束。 – sayth 2012-01-29 12:52:48

+0

對於Vundle用戶:通過在'.vimrc.bundles'中添加'Bundle'Command-T''來安裝Vundle的命令-T,然後按照Sean的答案。該目錄在'〜/ .vim/bundle/Command-T/ruby​​/command-t'中很好。 – Mick 2013-03-19 23:58:22

1

我得到了它在Ubuntu 11.10以下工作和these instructions Vim的建設和命令-T使用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 

而且然後在Command-T installation instructions病原體,在我的情況。

2

Ubuntu 13.04有同樣的問題。嘗試不同的組合之後,這裏是爲我工作的。

我不喜歡從源代碼構建,所以我使用VIM-nox的軟件包:

sudo apt-get install vim-nox

現在,編譯命令叔用Ruby 1.8.7或Ruby 2.0.0 SEGV信號時被抓住了。爲了試驗不同的Ruby版本,我裝rvm

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

然後我用紅寶石1.9.1編譯命令叔延伸:

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

綜上所述:vim- nox + ruby​​ 1.9.1 = vim命令-t在Ubuntu 13.04上運行良好。

+0

謝謝,使用Ruby 1.9.1也排序我的SEGV問題。對我來說,這是在Ubuntu 14.04上使用Vim 7.4從源代碼編譯而來的。 – jacderida 2014-07-14 00:23:12

0

我這是怎麼固定的這個問題(我相信它是由版本missmatch引起):

我有一個老版本安裝的Vim(來自易使用Debian)。 vim的舊版本使用舊的1.9.x版本的Ruby庫。我按照https://github.com/wincent/Command-T中的指導編譯了command-t。我在編譯過程中使用了ruby 2.1.x。當我沒有時,我得到了SEGV。我相信這是由於我編譯command-t和Ruby vim使用的Ruby之間的版本錯配造成的。所以解決的辦法是編譯vim,針對與編譯命令-t相同的Ruby庫。當我使用「apt-get install vim」升級我的vim時,一切開始奏效。現在,新版本的vim使用了與包管理器一起提供的新的Ruby庫。