Проблема с установкой linkparser на Ubuntu 10 - PullRequest
1 голос
/ 27 февраля 2011
  • с использованием rvm
  • с использованием ruby ​​1.9.2
  • идентичные гемы (и библиотеки поддержки), установленные в OS X
  • ссылка-грамматика установлена ​​(через apt-get)
  • pkg-config работает как положено.

Когда я запускаю gem install linkparser, я получаю следующую ошибку:

Building native extensions.  This could take a while...
ERROR:  Error installing linkparser:
    ERROR: Failed to build gem native extension.

/home/locallyclient/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pkg-config... yes
checking for dictionary_create() in -llink-grammar... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

(плюс еще, включая параметры строки cmd и трассировку стека).

mkmf.log выглядит так:

"gcc -o conftest -I/~/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/i686-linux -I/~/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/backward -I
/~/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1 -I.  -D_FILE_OFFSET_BITS=64   -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-st
rings -Wno-missing-field-initializers -Wno-long-long  -fPIC-I/usr/local/include   conftest.c  -L. -L/~/.rvm/rubies/ruby-1.9.2-p0/lib -Wl,-R/~/.r
vm/rubies/ruby-1.9.2-p0/lib -L.  -rdynamic -Wl,-export-dynamic-L/usr/local/lib       -Wl,-R -Wl,/~.rvm/rubies/ruby-1.9.2-p0/lib -L/~/.rvm/rubie
s/ruby-1.9.2-p0/lib -lruby-static  -lpthread -lrt -ldl -lcrypt -lm   -lc"
cc1: error: unrecognized command line option "-fPIC-I/usr/local/include"
checked program was:
/* begin <em>/
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/</em> end */</p>

<p>
(я заменяю домашний путь на '~' для удобства чтения)

В частности: cc1: ошибка: нераспознанный параметр командной строки "-fPIC-I / usr / local / include"

Есть какие-нибудь идеи относительно того, почему этот параматер будет искажен и где я могу это исправить?

Ответы [ 4 ]

1 голос
/ 13 мая 2011

Я выпустил версию 1.1.2 гема, которая включает исправление от @ alexander.

1 голос
/ 31 марта 2011

У меня возникла такая же проблема, когда linkparser не смог найти ruby ​​/ intern.h или что-то подобное. Я следовал вышеупомянутым инструкциям, и это все еще не работало. Я сделал мягкую ссылку (ln -s) из /usr/lib/ruby/1.8/x86_64-linux/ruby/* на /usr/lib/ruby/1.8/x86_64-linux/* и когда я пошел к компиляции linkparser это работало как чемпион. Затем я попробовал его с 1.9.2, и он также работал на другой коробке.

У меня также была проблема с wordnet, и это исправление работало и над этим.

Chris

1 голос
/ 12 мая 2011

В исходном коде gem есть ошибка, из-за которой CFLAGS объединяется как -fPIC-I/usr/local/include вместо -fPIC -I/usr/local/include

Исправление (ссылается на версию Gem 1.1.0):

в ./ext/exconf.rb найдите следующие строки (должны быть строки 20 и 21):

$LDFLAGS << read_cmd_output( pkgconfig, '--libs-only-L', 'link-grammar' )
$CFLAGS << read_cmd_output( pkgconfig, '--cflags', 'link-grammar' ) 

и измените их на:

$LDFLAGS << ' ' + `#{pkgconfig} --libs-only-L link-grammar`.chomp
$CFLAGS <<  ' ' + `#{pkgconfig} --cflags link-grammar`.chomp

. Это позволит вам установитьдрагоценный камень в драгоценном камне rvm

1 голос
/ 27 февраля 2011

Вот несколько шагов, которые я попробовал.

Получить источник в рубине (сейчас 1.9.2 p180)

$ wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p180.tar.gz
$ tar zxvf ruby-1.9.2-p180.tar.gz

экспорт включает путь к ruby, вы можете написать его в ~ / .bashrc, чтобы включить и другие собственные расширения.

$ export CPATH="`pwd`/ruby-1.9.2-p180/include":$CPATH

и выглядит как apt-get версия link-grammer версии 4.0 и linkparser жалуется на слишком старую (> = 4.7.0) , так что версия get и trunk, как они упоминали на сайте. v4.7.4 на данный момент

http://www.abisource.com/projects/link-grammar/#download

примечание : если ваш рубин находится в /usr/local/bin, измените --prefix=/usr на --prefix=/usr/local

$ svn co http://svn.abisource.com/link-grammar/trunk link-grammar
$ cd link-grammar
$ ./autogen.sh
$ ./configure --prefix=/usr
$ make
$ sudo make install
$
$ sudo gem install linkparser
Building native extensions.  This could take a while...
Successfully installed linkparser-1.1.0
1 gem installed
Installing ri documentation for linkparser-1.1.0...

Тестовые коды для подтверждения правильной работы

ref: http://deveiate.org/code/linkparser/

$ irb
> require 'linkparser'
=> true
> dict = LinkParser::Dictionary.new( :screen_width => 100 )
> sent = dict.parse( "People use Ruby for all kinds of nifty things." )
> puts sent.constituent_tree_string
(S (NP People)
   (VP use
       (NP Ruby)
       (PP for
           (NP (NP all kinds)
               (PP of
                   (NP nifty things)))))
   .)
=> nil
> puts sent.diagram

    +---------------------------------Xp--------------------------------+
    |                +-----MVp----+-----Jp-----+     +------Jp-----+    |
    +----Wd---+--Sp--+--Os--+     |     +--Dmc-+--Mp-+    +----A---+    |
    |         |      |      |     |     |      |     |    |        |    |
LEFT-WALL people.p use.v Ruby.f for.p all.a kinds.n of nifty.a things.n . 

=> nil
...