2011-02-17 8 views
2

私はclsqlを動作させようとしています(cl-mysqlを使用していましたが、代替案を見ていました)。私はすべての方法を通じて(簡潔にするために上記のトリミング)accept再起動に従っている場合だけ、この時点で周りに再生しようと、私はconnectSBCLのclsqlに問題があります

(connect '("localhost" "test" "user" "password") :database-type :mysql) 

で停止して取得していますことは、私に

erred while invoking #<COMPILE-OP (:VERBOSE NIL) {BDFF0B9}> on 
#<CLSQL-UFFI-SOURCE-FILE "clsql-uffi" "uffi" "clsql_uffi"> 
    [Condition of type ASDF:OPERATION-ERROR] 

Backtrace: 
    0: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP CLSQL-UFFI-SYSTEM::CLSQL-UFFI-SOURCE-FILE)) ..) 
    1: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) ..) 
    2: ((LAMBDA())) 
    3: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) 
    4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324)) 
    5: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..) 
    6: ((FLET SB-C::WITH-IT)) 
    7: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unavailable argument> #<unavailable argument> ASDF:LOAD-OP :CLSQL-MYSQL)[:EXTERNAL] 
    8: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1. SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.)) ..) 
    9: (CONNECT ("localhost" "test" "user" "password"))[:EXTERNAL] 
10: (SB-INT:SIMPLE-EVAL-IN-LEXENV (CONNECT '("localhost" "test" "user" "password") :DATABASE-TYPE :MYSQL) #<NULL-LEXENV>) 
11: ((LAMBDA())) 
--more-- 

を取得します私は結局、clsqlquicklispを使用してインストールされた私はSBCL 1.0.40.0、Debianの6.0使ってい

Attempt to call an undefined alien function. 
    [Condition of type SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR] 

Restarts: 
0: [RETRY] Retry SLIME interactive evaluation request. 
1: [ABORT] Return to SLIME's top level. 
2: [TERMINATE-THREAD] Terminate this thread (#<THREAD "worker" RUNNING {BD63789}>) 

Backtrace: 
    0: (SB-KERNEL::UNDEFINED-ALIEN-FUNCTION-ERROR) 
    1: ("foreign function: #x806774B") 
    2: ("foreign function: #x8052F2D") 
    3: ("foreign function: #x80565C9") 
    4: ((SB-PCL::FAST-METHOD CLSQL-SYS:DATABASE-CONNECT (T (EQL :MYSQL))) #<unavailable argument> #<unavailable argument> ("localhost" "test" "user" "password") :MYSQL) 
    5: (CONNECT ("localhost" "test" "user" "password"))[:EXTERNAL] 
    6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (CONNECT '("localhost" "test" "user" "password") :DATABASE-TYPE :MYSQL) #<NULL-LEXENV>) 
    7: ((LAMBDA())) 
--more-- 

を取得し、 mysql v14.14(これはmysqlの問題ではありませんが)。

答えて

2

それは私がこれは(それはそれですべて正しいCファイルを持っていたように見えた)私はすでにlibmysqlclient-devを持っていたquicklispを通じてclsqlをインストールしていたという事実にもかかわらず、必要があった

apt-get install cl-sql 

しなければならなかったが判明しました。これを実行した後、私は、それはまだ(私の32ビットマシン上問題なし)私の64ビットシステム上のカップルの警告を投げた注意点として

(connect '("localhost" "test" "user" "password") :database-type :mysql) 

を使用して、ローカルのMySQLサーバに接続することができました。 accept再起動(申し訳ありませんが、Xach)を使用すると、一見して動作状態になりました。

私はどのように詳細にこれが問題を解決したかわかりません。もし誰かがそれを説明することができれば、私はupvote + acceptを受け取ります(あなたの説明が正しいと仮定して)。

編集:別のマシンの同様の問題は私に約30分間不満を与えていました。これが想定されるはずですが、ベアメタルからシステムを構築する場合は、gccをインストールしてください。そうしないと、明白な理由からclsql-uffiがコンポーネントをコンパイルできなくなります。この方法でプロセスが失敗すると、質問と同じコンパイルエラーが発生しますので、ベースをカバーしてください。

+1

一般に、DebianはCLライブラリを、わかりやすくトラブルシューティングするのが難しい方法で修正しています。私はDebianシステムを使用していますが、Lispライブラリと実装のために、上流またはQuicklispからすべてを取得します。本当に説明ではなく、申し訳ありません。 – Xach

2

accept再起動を使用しないでください。それは、「何かが犯されたとしても続ける」という意味で、あなたがしたいことはまれです。

mysql開発ライブラリがインストールされていますか?あなたはlibmysqlclient.soを持っていますか?

新鮮なsbclを起動して「clsql-uffi」をクイックロードし、次にをトレースし、次に(clsql:connect nil :database-type 'mysql)をトレースして、トレース出力に基づいて必要なものが見つかっているかどうかを確認します。

+0

私は 'libmysqlclient-dev'をインストールしました。' find -name libmysqlclient.so'は '/ usr/lib /'にマッチを返します。クリーンなSBCLで 'clsql-uffi'をQickloadすることは、私が上で行ったのと同じエラーで失敗します(' uffi'が成功し、 'clsql_uffi'を実行すると' System not found'エラーが出ます)。 'clsql_uffi'、それは' CLSQL-UFFI:ATOL64'が定義されていないというエラーです)。 – Inaimathi

+0

'clsql-uffi-loader.lisp'を手動で読み込んでもエラーになります。 '外部ライブラリ" clsql_uffi "を読み込めませんでした。 (検索されたCLSQL-SYS:* FOREIGN-LIBRARY-SEARCH-PATHS *) ' '' CLSQL-SYS:* FOREIGN-LIBRARY-SEARCH-PATHS * 'は'(#P "/ home/inaimathi/quicklisp/dists/quicklisp/software/clsql-20101207-git/uffi /") 'に評価されますそのディレクトリに 'clsql_uffi'ファイル' lib'、 'c'、' dll'が入っています)。私は小さくて明白な何かを逃していると感じる。 – Inaimathi

関連する問題