「sudo apt-get install XYZ」(依存関係がないと仮定)を使用したように、コマンドラインですぐに使用できるようにローカルのtarファイルをインストールしたいと思います。
tarを解凍し、構成/ makeを使用してコンパイルする方法を知っていますが、後でパスを追加する必要がある実行可能ファイルだけが残ります。
/binにコピーして終わることができるようですが、ここで標準的な慣行が何であるか疑問に思います。
ボーナスとしてRPMとは異なるタイプのパッケージを使用してこれを行う方法を知っておくとよいでしょう。
答え1
この回答は以下に基づいています。複数のチャットメッセージこれで、それを拡張された要約として公開しました。
環境$PATH
変数
「コマンドラインですぐに利用可能」という言葉は、または同じname
ものを入力せずに実行できるという意味であると仮定します。/path/to/name
/home/galahad/bin/name
./name
あなたの$PATH
環境変数区切られたディレクトリ名のリストが含まれています:
。シェルで文字を含むコマンドを実行すると、/
実行する実行可能ファイルの正確な場所と名前に解決されます。しかし、コマンドを実行するといいえを含めると、/
シェルは$PATH
ディレクトリからその名前の実行可能ファイルを検索し、見つかった最初のファイルを実行します。 (以前に実行した実行ファイルの場所も覚えているので、実際に毎回検索する必要はありません。)
そのため、現在ディレクトリにある実行可能ファイルを./name
実行するのが一般的な方法です。代わりにname
ランタイムは。name
$PATH
実行すると、echo "$PATH"
次のような内容が表示されますが、正確に次のようにはなりません。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
のディレクトリを必ず$PATH
呼び出す必要はありませんが、bin
これは一般的です。
ビルドの構成
./configure
を実行してコンパイルするソースコードがある場合は、通常(または)をmake
使用してインストールします。これにより、ビルドディレクトリのファイルがインストール場所にコピーされます。インストールする項目が実行可能なコマンドを提供している場合、その実行可能ファイルは通常。make install
sudo make install
$PATH
$PATH
ソフトウェアのビルドとインストールは、、./configure
時にはmake
またはmake check
を実行しmake test
てから、またはを実行するのと同じくらいmake install
簡単ですが、ビルドを構成するためにスクリプトsudo make install
にオプションを渡したい場合があります。configure
特に、pfnueselが言ったように、これが設定方法ですどこソフトウェアがすぐにインストールされる予定です。このmake install
ステップでは、実際にソフトウェアをインストールしますが、通常、すべてが./configure
インストールされる場所を設定します。
最も一般的なオプションはです--prefix
。何を使うべきかわからないとき、デフォルトのconfigure
プレフィックスは通常です/usr/local
。 (時にはプログラムやライブラリのソースコードが別のプレフィックスにデフォルト設定されていることがあります。幸いなことに、これはまれです。)
したがって、./configure
一般的に該当するのはです./configure --prefix=/usr/local
。ホームディレクトリにソフトウェアをインストールするには./configure --prefix=/home/galahad
(/home/galahad
ホームディレクトリの場合)またはを使用できます--prefix="$HOME"
。もちろん、ソフトウェアをビルドしてインストールする必要がありますmake
。ソースコードの形で配布されるすべてのソフトウェアがこのように構築されるわけではありません。常に抽出されたソースコードアーカイブで文書を見つける必要があります。
どういう--prefix
意味ですか?
実行すると、ソフトウェアを次の場所にインストールする必要があることを示します。./configure --prefix=directory
directory
目次。しかし、これが緩いファイルを次の場所に置くことはほとんどありません。directory
。代わりに、他の目的で使用されるファイルを別のサブディレクトリに配置します。directory
。これらのサブディレクトリがない場合は作成されます。
実行可能ファイルは通常入っていますが、通常はdirectory/bin
システム管理に使用されていても入ることができ、ゲームの場合でも入ることができます(現在はほとんどありません)。ライブラリを同じ名前の別のディレクトリ(ヘッダファイルなど)に配置します。マニュアルページを入力してください。ソフトウェアが使用するデータファイルは。directory/sbin
directory/games
directory/lib
directory/lib32
directory/include
directory/man
directory/share
これはどういう意味ですかdirectory
になるプレフィックス。別のファイルがインストールされる場所を含む親ディレクトリ。したがって、プレフィックスとして表示されます。内部に絶対パスmake install
ほとんどのファイルとディレクトリはsudo make install
。
しかし、いくつかの例外があります。システム全体の構成ファイル(時にはそれを使用するソフトウェアがインストールされたときに生成されますが、必ずしもそうではありません)/etc
は、通常、別のプレフィックスを指定しても影響を受けません。多くのソフトウェアをインストールしても/usr/local
依然としてほとんど使用され、/etc
ディレクトリ/usr/local/etc
が存在しないか、空であるか、ファイルがほとんど含まれない可能性があります。
man hier
多くのシステムでは、以下を実行して、一般的なファイルシステムレイアウトに関する詳細情報を見つけることができます。 GNU / Linuxシステムを使用している場合は、次に興味があります。ファイルシステム階層標準。
システムにソフトウェアをインストールする場所
ほとんどのGNU / Linuxオペレーティングシステムでは、パッケージマネージャによってインストールされたプログラムを含むシステム上のほとんどのプログラム(ゴボリナックス例外)および他のいくつかのUnixシリーズシステムはプレフィックスとしてインストールされます。通常、システム提供のソフトウェアとの競合を避けたいので、/usr
その接頭辞をに渡すことはほとんどありません。./configure
/usr
起動プロセスの最初にインストールされなかったネットワーク共有またはパーティションに存在する可能性があります。この時点でアクセスする必要があるソフトウェアは通常インストールされます/
。/usr/bin
/bin
sh
/bin/sh
パッケージ管理
ほとんどのパッケージマネージャはバイナリインストールをサポートしています(例外もあります)。通常、パッケージマネージャを使用してGNU / Linuxシステムにソフトウェアをインストールすると、バイナリパッケージがインストールされます。この場合、パッケージマネージャ自体は何もコンパイルしません。ただし、インストールにはまだファイルシステムの場所にファイルをコピーまたは抽出することが含まれます。
これは、パッケージマネージャが付属のほとんどのコマンドをインストールすることを意味します。パッケージマネージャが必ず実行されるわけでは/usr
ありません。./configure --prefix=/usr
./configure
オペレーティングシステムごとにパッケージマネージャが異なります。dpkg
などapt-get
のユーティリティを使用するように設計されたDebianやUbuntuなどのディストリビューションを使用する場合aptitude
しなければならないいいえ通常、およびを使ってソフトウェアをrpm
インストールしてみてください。yum
dnf
しかし、さまざまなパッケージマネージャの重要な原則は同じです。パッケージマネージャがコマンドをインストールすると、通常は$PATH
ユーザーの環境変数にあると予想されるディレクトリに移動します。 GNU/Linux システムでは、通常、パッケージマネージャによって管理されます。みんなシステム - 他にインストールしたすべての項目に加えて、プレフィックスを含むほとんどのソフトウェアをインストールするため、/usr
実行可能なほとんどのコマンドが/usr/bin
。make install
sudo make install
答え2
インストールするプログラムがベストプラクティスに従う場合は、以下を使用してインストールできます。
./configure
make
make install
./configure
システムがすべての要件を満たしていることを確認し、インストールオプションを設定します。make
すべてをコンパイルし、必要なmake install
すべてのファイルを正しい場所にコピーします。すべてのライブラリ、マニュアルページなどを正しい場所にインポートするのはかなり面倒なので、この最後の手順を手動で実行したくありません。
パッケージがインストールされる場所を定義することもできます。たとえば、ホームディレクトリにパッケージをインストールする場合(たとえば、管理者権限がないため)、次のようになります。
./configure --prefix="$HOME"/somefolder
make install
次に、そのフォルダにインストールします。しかし、一般的にこれは必要ではありません。