デスクトップランチャーではアプリケーションは実行されませんが、コマンドラインで実行されるのはなぜですか?

デスクトップランチャーではアプリケーションは実行されませんが、コマンドラインで実行されるのはなぜですか?

(排他的)ソフトウェアをインストールし、/optコマンドラインを使用して完全に実行できます。その後、デスクトップアイコンを作成して実行したいと思います。 Mintディストリビューションではcreate_launcher

しかし、新しいアイコンをクリックしても何も起こりません。なぜ?

答え1

インストールしたソフトウェアは/opt/...静的にリンクされたバイナリではありませんが、いくつかのライブラリが必要です。このライブラリも/ optの下にインストールされていますが、システムはそのディレクトリから必要なライブラリを検索する方法を知りません。この問題を解決する1つの方法は、LD_LIBRARY_PATH/ optにディレクトリを含めるように変数を設定することです。

答え2

すべてのディストリビューションで動作するかどうかはわかりませんが、Ubuntu 20.04では、次のように.desktopファイルを確認できます。desktop-file-validate </path/to/myapp.desktop>

答え3

特定のパスを指定していない可能性が高いため、$ PATH変数を使用してバイナリを検索してください。

あなたの場所「/opt/...」はシェルパスに含まれていますが、ランチャーパスには含まれていないようです。これは、.bashrcなどのシェルの構成ファイルで設定したためです。

最も簡単な解決策は、ランチャーでフルパス(例:/opt/path/to/your/binary)を指定することです。

答え4

修正する

この問題はMint-19.2で解決されたようです。行くと

Exec=mate-terminal -- /path/do/your/script

2 つの端末セッションが開きます。 19.2に戻る

Exec=/path/do/your/script

どちらの場合も、ファイルモードが755であることを確認してください。

関連情報