Рубиновая команда-т SEGV - PullRequest
       29

Рубиновая команда-т SEGV

5 голосов
/ 29 января 2012

Я на Ubuntu 11.10 и Vim-GNOME установлен и работает. Используя vundle и установили все рабочие пакеты.

Я установил command-t, но она не будет работать, пока не будут скомпилированы расширения C. Чтение руководства это решение.

  rake make

Для меня местоположение на самом деле:

~/.vim/bundle/command-t

В любом случае, поэтому я выключил rvm и установил систему 1.8, как указано в справочном руководстве command-t. Я проверил документацию, и наиболее частой причиной ошибок command-t является компиляция с неправильным ruby.

Итак, я нашел эту команду для проверки скомпилированной версии.

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)

Итак, я установил rake для ruby ​​1.8 и скомпилировал с помощью rake make

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

и выключается и компилируется.

однако запустите gvim и запустите \ t для command-t и

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

Как я могу запустить команду t в Ubuntu 11.10?

Update.

Встроенный Gvim из источников, использующих

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 version верна правильно, что поддержка ruby ​​встроена в мою установленную систему 1.8, но она все еще SEGV при использовании команды T.

Так нашел и попробовал

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

Это тоже не удалось. Затем я добавляю это в bashrc из предыдущего обращения в службу поддержки.

vim() {
    (unset GEM_PATH GEM_HOME; command vim "$@")
}

Ответы [ 4 ]

13 голосов
/ 29 января 2012

У меня были похожие проблемы при использовании граблей. Я решил это, скомпилировав расширение самостоятельно.

Из каталога плагинов command-t:

rvm use system    
cd ruby/command-t
ruby extconf.rb
make
sudo make install
2 голосов
/ 04 октября 2013

В Ubuntu 13.04 та же проблема.Попробовав разные комбинации, вот что сработало для меня.

Мне не нравится сборка из исходного кода, поэтому я использовал пакет vim-nox:

sudo apt-get install vim-nox

Теперь при компиляции command-t с сигналами Ruby 1.8.7 или Ruby 2.0.0 SEGV были перехвачены.Чтобы поэкспериментировать с различными версиями Ruby, я установил rvm :

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

Затем я использовал Ruby 1.9.1 для компиляции расширения command-t:

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 command-t хорошо работает в Ubuntu 13.04.

1 голос
/ 21 апреля 2012

Я заставил его работать на Ubuntu 11.10, следуя этим инструкциям и сборке Vim и Command-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

И затем следуя команде -T инструкция по установке для Pathogen, в моем случае.

0 голосов
/ 05 августа 2014

Вот как я исправил эту проблему (я думаю, что это вызвано несоответствием версий):

У меня была установлена ​​старая версия vim (из apt с использованием debian).Старая версия vim использовала старую версию 1.9.x библиотек Ruby.Я скомпилировал command-t в соответствии с руководством в https://github.com/wincent/Command-T. Я использовал ruby ​​2.1.x во время процесса компиляции.Я получил SEGV, когда я сделал т.Я полагаю, что это было вызвано несоответствием версий между Ruby, который я использовал, когда я компилировал command-t, и Ruby vim использует.Таким образом, исправление состояло в том, чтобы скомпилировать vim с теми же библиотеками Ruby, с которыми была скомпилирована команда tКогда я обновил свой vim с помощью «apt-get install vim», все начало работать.Теперь новая версия vim использует те же новые библиотеки Ruby, которые поставляются с менеджером пакетов.

...