OS Xで動作しないSymlink実行可能ファイル


0

Mathematica()の下mathにシンボリックリンクを作成しようとしています。実行可能ファイルは機能し、Finderからシンボリックリンクに移動してクリックしても機能します。しかし、コマンドラインから呼び出すと、/usr/local/bin/Applications/Mathematica.app/Contents/MacOS/WolframKernelmath

$ math
dlopen(/SystemFiles, 1): image not found

OSX El Capitan 10.11.6を実行しています。

これはdylibで囲まれたSymlinking実行可能ファイルの完全な複製ではありませんが、そこに与えられた答え(エイリアスを作成するため)は私には機能しません。私は絶対に別のプログラム(SageMath)が呼び出せるようにする必要mathがあり、この他のプログラムはエイリアス定義を読み取りません。


一部のプログラムは、プログラム自体の名前に敏感です。基本的に、同じコードを使用しますが、NAME自体によって異なる動作をします。「WolfamKernel」としてシンボリックリンクを作成するとどうなりますか?別のプログラムがそれを「数学」と呼ぼうとしているとき、それはまだ役に立たないことを知っていますが、それは始まりです。また、そのMacOSフォルダに「math」というリンクを作成し、そこから呼び出すとどうなりますか?それが機能する場合は、そのMacOSフォルダを検索PATHに追加して、別のディレクトリに「入っている」ときに「math」を呼び出してみてください。
ジムット

ご提案ありがとうございます!WolframKernelとしてシンボリックリンクを作成してみたところ、同じ結果が得られました(画像が見つかりません)。
Cヴィンセント

「その」MacOSフォルダーとはどういう意味ですか?他のプログラムが入っているものは?
Cヴィンセント

そのMacOSフォルダーとは、/ Applications / Mathematica.app / Contents / MacOSを意味します。Mathematicaを持っていませんが、WolframKernalが実行可能ファイルであり、MacOSがフォルダであると想定しました。MacOS dirにmathというシンボリックリンクを作成してみてください。Mathematica / Wolframでは、別のディレクトリから呼び出されるのが好きではないか、「数学」(またはその両方)が呼び出されるのが好きではないことがわかります。
ジムット

いずれにしても、解決策は同じかもしれません。通常のPATHのどこかに、「math」と呼ばれる「wrapper」スクリプトを記述します。このスクリプトは、/ Applications / Mathematica.app / Contents / MacOSに「cd」し、そこでWolframKernelを呼び出します。ファイル名などの引数を渡そうとしている場合、ファイルへのパスを調整して、開始時と同じディレクトリにいないという事実を考慮する必要があるため、もう少し作業が必要です。
ジムット

回答:


0

回答をコメントから実際の回答に移動します。

いくつかの解決策はうまくいくようです:

  1. /Applications/Mathematica.app/Contents/MacOS/フォルダーで、のようなシンボリックリンクを作成ln -s WolframKernel mathし、シェルの検索PATHに/Applications/Mathematica.app/Contents/MacOS/を追加します。
  2. または、「math」と呼ばれる小さなシェルスクリプトを記述し、既にPATHのどこかに配置します(/ usr / local / binなど、バイナリとは別に「scripts」フォルダーが必要です)。:シェルスクリプトは、基本的に2つのコマンドで、非常に単純であるべきcd /Applications/Mathematica.app/Contents/MacOS/ただ当時とWolframKernel。シェルからシェルスクリプトに引数を渡す必要があるかもしれませんが、これは難しくありませんが、構文はスクリプトで使用されるシェル(呼び出されるシェルではない)に依存します。

コメントから、#1は機能するはずで、最も簡単なようです。ただし、Mathematicaを更新するとそのシンボリックリンクが削除される可能性があるため、#2がより安定したソリューションになる可能性があることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.