2016-06-27 3 views
2

Squeak 5クラスのSecureSMTPClientを使用して、SSL/TLSで電子メールを送信しています。Linux上のSqueak SMTP

Windowsマシンで正常に動作します(答えはthat questionです)。 (画像は、メールを送信しようとしたが、初回のみ)

Error: primitiveSSLCreate failed 

をそして、それは、コンソールに出力します:

はしかし、Linux上で私が手

# ioLoadModule(/home/squeak5vm/SqueakSSL): 
    /home/squeak5vm/SqueakSSL: undefined symbol: clock_gettime 

Squeakの "プリミティブ"プラットフォームやライブラリと通信する関数です。私の推測では、このLinuxは、Squeakが期待するいくつかのSSL/TLSライブラリのいくつかのバージョンを提供していないということです。しかし、正確にはは何ですか Squeakは期待していますか?


追加に関する情報:

ldd /home/squeak5vm/SqueakSSLの出力は次のとおりです。

linux-gate.so.1 => (0xb7757000) 
libc.so.6 => /lib32/libc.so.6 (0xb7392000) 
/lib/ld-linux.so.2 (0xb7758000) 
+0

downvote?理由を言わずに? –

+0

問題が何であるかは分かりません。 SSLは、SqueakSSL VMプラグインによって提供されます。まず、プラグインがあるかどうかを確認してください(FilePluginなどのVMを近くに置く必要があります)。それがあれば、次はシステムを見ている可能性があります:OpenSSLがありますか?どのバージョン?また、32ビットまたは64ビットであればどのLinuxを使用しているかを知る必要があります。 –

+0

@MaxLeske私はsqueak.orgから標準のSqueak 5をダウンロードしました。ファイル "SqueakSSL"はVMのディレクトリにあります(ファイルサイズ9,228,209)。 OpenSSLについてはわかりません。そのため、Squeakが期待しているネイティブライブラリ(どのバージョンのもの)を求めているのですか? (私のLinuxは64ビット版です) –

答えて

4

使用しているSqueakSSLプラグインのバージョンが順番にclock_gettimeを必要にOpenSSL、に対してコンパイルされます。 manページが

どうやら
Link with -lrt (only for glibc versions before 2.17). 

を言うこと

注意、あなたのSqueakSSLバイナリは、後のglibc 2.17よりもシステム上でコンパイルされました。ここで

は、いくつかのオプションがあります

  1. 静的LibreSSLに対してリンクされているhttps://github.com/squeak-smalltalk/squeakssl/releasesからSqueakSSLバイナリを試してみてください。注:数週間古いかもしれません。
  2. > = 2.17
  3. 例えば

    LD_PRELOAD=/usr/lib32/librt.so /path/to/squeak

、(How to relink existing shared library with extra object fileを参照)、または事前ロード・リンクを再ようなものを試してみて、あなたがたglibcで更新Linuxバージョンを使用することができるかどうかを参照してください。私たちはこれをすぐに並べ替えることを願っています。おそらく問題を開くにはhttps://github.com/OpenSmalltalk/

+0

オプション1が私のために働いた。あなたはもう一度Tobiasをやった。ありがとう(コメントに協力した人にも)。私はまた、図書館のサイトにあなたと同じ画像アイコンがあることに気づいた;-) –

+0

はい、私はこれを編集した人です;) – Tobias