セッション全体で実行可能ファイルを上書きするにはどうすればよいですか?

セッション全体で実行可能ファイルを上書きするにはどうすればよいですか?

実行時に計算されるいくつかの構成を使用して実行したいアプリケーションがあります。これを達成するために単にエイリアスを使用するとうまくいきます。問題は、実行可能ファイル自体がまだ存在することです。そのため、.desktopファイル、ショートカット、または端末の他の場所でアプリケーションを起動すると、エイリアスを設定しないとこの機能が失われます。

私は実行可能ファイルを別の場所に移動し、それを私が望む方法で実行するシェルスクリプトに置き換える可能性を考えました。このソリューションの問題は、更新によって上書きされる可能性があるため、実際にできることではないことです。

どんな提案がありますか?デフォルトでは、実行可能ファイルがセッション全体でグローバルに実行される方法を変更したいと思います。

私は現在Arch Linux KDEを使用しています。

答え1

あなたにはオプションがあります。

  1. 環境変数、コマンドラインパラメータ/オプション、または起動時に実行されるすべてのエントリを含むように.desktopファイルを変更できます。
  • exec=.desktopファイルの行だけを変更するだけです。

または、

  1. 必要に応じて、実行可能ファイルを起動する実行可能なshスクリプトを生成してPATHに入れることができます。
  • 注:スクリプトには実行可能ファイルとは異なる名前を付けます。バイナリファイルのみをアーカイブする必要があり、交換、移動、または類似のものを試してはいけません。
  1. 次に、.desktopファイルを編集してshスクリプトを実行します(または必要に応じてエイリアスを指定します)。

どちらのソリューションでもうまく機能します。

私は多くの環境変数を設定する必要があるいくつかのワインアプリケーションのために私のシステムでソリューション#2を使用していますが、グローバルに設定することはできません(例:.bashrcで)...主に読みやすくするためにこれを行います。長い変数のリストで.desktopを変更するのは不便に思えますが、スクリプトから読むのははるかに簡単です。

答え2

アップグレードを妨げる変更を避ける簡単な方法は、システムディレクトリ以外の場所に変更することです。

ホームディレクトリに自分のプログラム用のディレクトリを作成します。つまり、~/binこれを追加して$PATHシェルスクリプトを挿入するか、デスクトップリンクを指定します。

関連情報