シェルが実行時に検索できるように、$ HOMEにインストールされたプログラムをどのように構成できますか? [閉鎖]

シェルが実行時に検索できるように、$ HOMEにインストールされたプログラムをどのように構成できますか? [閉鎖]

私はいくつかのプログラム(bashスクリプト、Pythonスクリプト、Javaプログラム、Cプログラム)を作成またはダウンロードして、各プログラムのパスの下にディレクトリを作成し、そのプログラム/home/t/program_files/のすべてのファイルをそのディレクトリに配置しました。トピック固有の類似性に基づいてプログラムをグループ化し、、、などのディレクトリを追加し、各OSプログラムnetworkdocumentディレクトリをそのディレクトリの1つに移動しました。これはプログラムを論理的な方法で整理するのに役立ち、プログラムファイルをより早く見つけることができると思います。

プログラムを実行するには、すべてのプログラムの検索パスを指定する必要がありますPATH。各スクリプトまたは実行可能ファイルのパスを手動で見つけて$PATHこれを実行する簡単な方法は次のとおりです。PATHすべてのサブディレクトリに再帰的に追加/home/t/program_files/ただし、この方法の問題は、実行可能ファイルやスクリプトファイルを直接含めずに他のファイル(JavaやCソースファイルなど)を含むディレクトリを追加し、検索するパスがシェルに多すぎるということPATHです。かなり長い間コマンドを実行しました。

上記の問題を解決する良い方法は何ですか?

  • ザイルズの答えおすすめ拾って入れる。 Stowについて少し読んだ後、私はそれがシンボリックリンクを作成し、シンボリックリンクがまだターゲットファイルと同じように構成されていることに気づきました。私が正しい場合は、プログラムの検索パスを指定する問題には役立ちません。 。私の問題を解決するのに役立つかもしれないStowに関するいくつかの情報を見逃しましたか?

  • 他の方法私が知りたいのは、/home/t/program_files/各ファイルが下で実行可能であることを再帰的にチェックし、その場合は下にシンボリックリンクを作成し、親ディレクトリのパス/home/t/bin/名をPATH

  • また、人々がサードパーティのプログラムを作成してダウンロードし、自分のホームディレクトリにインストールしたい場合は非常に一般的だと思います。そのようなプログラムを整理するのに推奨される方法は何ですか?プログラムをクリーンアップするときに、各プログラムのすべてのファイルを自分のディレクトリに入れませんか?

ありがとうございます。

答え1

私は経験がなく、よくstowわかりませんが、あなたの質問に答えていくつかのロジックを提案したり、リンクを使用することができます。

書いたようにプログラムを/home/t/program_files/GHR_Communicatorcommunicatorsghrc

/home/t/program_files/communicators/GHR_Communicator/ghrc

ここで、プライベート実行可能ファイルにパブリックフォルダを指定したとします。これは変数に含める必要がある唯一のフォルダ/home/t/binです。PATH一部のディストリビューションにはデフォルトで含まれているため、バージョンを確認PATHPATH、必要に応じて追加してください。

この単純な名前で呼び出すには、実行可能ファイルへのリンクをghrc作成するだけです。~/bin

$ ln -sr ~/program_files/communicators/GHR_Communicator/ghrc ~/bin

それでは、次のように電話してくださいghrc

$ ghrc

あなたはそれを実行しました。

答え2

私はStoweがおそらくその仕事に適したツールであるというGilesのコメントに同意します。 Stowの基本モデルは、各ソフトウェアに1つずつ特定のディレクトリにソフトウェアをインストールすることです。マニュアルロード/usr/local/stow/perl例として使用されているPerlとEmacsはそれぞれにインストールされています/usr/local/stow/emacs。このディレクトリ内には一般的な構造binなどがありますshare。 Stowはディレクトリおよび/またはファイルをターゲット(通常は)にシンボリックリンクしてソフトウェアを「インストール」します/usr/local。インストールすると、次のように使用できますperl。したがって、PATHを追加するだけです。/usr/local/stow/perl/bin/perl/usr/local/bin/perl/usr/local/bin

Stow に次のように指示することができます。複数のストレージディレクトリ、それは問題を解決します。以下の一般的なディレクトリ構造と一致するディレクトリ構造を持つ限り、個々のソフトウェア部分は/usr/localStowを介して管理できます。

Stowはまた、ホームディレクトリに保存されているプログラムやさまざまな構造で動作します。これにより、プログラムを別のディレクトリにインストールしながら、単一の共有ディレクトリ(例えば ~/.local/bin)。

ソースからプログラムをビルドするときのStowの一般的なアプローチは、./configure最終的なターゲットプレフィックス(/usr/local)(またはそれに対応するエントリ)を使用して実行し、Stowディレクトリ内のターゲットディレクトリを使用してソフトウェアをインストールすることです(例:/usr/local/stow/perlマニュアル/usr/local/Programming/perlあり)。/usr/local/ProgrammingStowディレクトリとして使用されます)。その後、Stowを使用して適切なシンボリックリンクを追加してソフトウェアを使用できるようにします。

関連情報