2012-01-29 10 views
5

Jestem na ubuntu 11.10 i zainstalowałem i działam vim-gnome. Używając vundle i zainstalowałeś pakiety pozorne działające.Ruby command-t SEGV

Zainstalowałem polecenie-t, ale nie będzie działać, dopóki nie zostaną skompilowane rozszerzenia C. Czytanie instrukcji to jest rozwiązanie.

rake make 

Dla mnie lokalizacja jest rzeczywiście:

~/.vim/bundle/command-t 

tak więc odwróciłem się i RVM zainstalowany system 1.8, zgodnie z zaleceniem w pomocy przewodnika komenda-T. Sprawdziłem dokumentację, a najczęstszą przyczyną błędów command-t jest kompilacja przeciwko niewłaściwemu rubinowi.

Więc znalazłem to polecenie, aby sprawdzić skompilowaną wersję.

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

Więc zainstalowany prowizji dla Ruby 1.8 i skompilowane z prowizji dokonać

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

i off to idzie i kompiluje.

jednak uruchomić gvim i run \ t dla poleceń ti

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

Jak mogę uzyskać polecenia t dzieje na Ubuntu 11.10?

Aktualizacja.

Wbudowany gVim ze źródeł przy użyciu

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 wersja powraca polecenia skorygowania że wsparcie rubin jest zbudowany przed moim zainstalowanym systemie 1.8, ale nadal SEGV przy użyciu polecenia T.

więc znaleźć i próbowałem

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

To również się nie udało. Dodaję to do bashrc z poprzedniego zgłoszenia do pomocy technicznej.

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

Mam taki sam problem w Ubuntu 11.04, po tym, jak podążałem za większością tych samych rzeczy, które masz. Działa dobrze na innym moim komputerze (także Ubuntu 11.04), z tym, co powinno być w tej samej konfiguracji. Korzystanie z pakietu vim-gnome. – Mika

Odpowiedz

13

Miałem podobne problemy podczas korzystania z zadania prowizji. Rozwiązałem go samodzielnie, kompilując rozszerzenie.

Z katalogu poleceń t wtyczkę:

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

To się jednak kompilowało, ale wciąż kończę z tym samym błędem segmentacji. – sayth

+0

Dla użytkowników Vundle: Zainstaluj komendę-T za pomocą Vundle, dodając opcję 'Bundle 'Command-T'' w' .vimrc.bundles', a następnie wykonaj odpowiedź Seana. Katalog znajduje się w '~/.vim/bundle/Command-T/ruby ​​/ command-t' Działa świetnie. – Mick

1

Dostałem go do pracy na Ubuntu 11.10 po these instructions i budowanie Vima i Command-T z 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 

I następnie po Command-T installation instructions dla Pathogen, w moim przypadku.

2

Ubuntu 13.04 ma ten sam problem. Po wypróbowaniu różnych kombinacji, oto, co sprawdziło się u mnie.

Nie lubię budynku od źródła, więc użyłem pakiet vim-nox:

sudo apt-get install vim-nox

Teraz podczas kompilacji polecenia-t z Ruby 1.8.7 Ruby 2.0.0 lub sygnałów SEGV zostali złapani. W celu eksperymentowania z różnymi wersjami Ruby, zainstalowałem rvm:

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

Następnie użyłem Ruby 1.9.1 do kompilacji rozszerzenia poleceń T:

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

Podsumowując: vim- nox + ruby ​​1.9.1 = vim command-t działa dobrze na Ubuntu 13.04.

+0

Dzięki, używając Ruby 1.9.1 również posortowałem mój problem z SEGV. Dla mnie to było na Ubuntu 14.04 z Vimem 7.4 skompilowanym ze źródła. – jacderida

0

ten sposób naprawiłem ten problem (myślę, że to spowodowane wersji Mów mi swatka):

miałem starą wersję zainstalowanego vim (z użyciem apt debian). Stara wersja vima korzystała ze starej wersji bibliotek Ruby w wersji 1.9.x. Skompilowałem command-t zgodnie z instrukcją w https://github.com/wincent/Command-T. Użyłem ruby ​​2.1.x podczas kompilacji. Mam SEGV, kiedy to zrobiłem. Sądzę, że było to spowodowane wersją missmatch między Ruby, której użyłem podczas kompilacji polecenia-t, a użyciem Rubiego vima. Naprawiono więc kompilację vima przeciwko tym samym bibliotekom Ruby, na które skompilowano polecenie-t. Kiedy uaktualniłem mój vim za pomocą "apt-get install vim" wszystko zaczęło działać. Teraz nowa wersja vima korzysta z tych samych nowych bibliotek Ruby, które są dostarczane z menedżerem pakietów.