web-dev-qa-db-ja.com

'make install'とは何ですか?

WindowsからLinuxに移行すると、Linuxにソフトウェアをインストールするプロセスがわかりません。 Windowsでは、インストールファイルを実行すると、プログラムをインストールする場所を尋ねられます。ほとんどの場合、プログラムファイルフォルダのみです。その後、レジストリを編集します。これをWindowsでのインストールと呼びます。 Linuxでの「ソフトウェアのインストール」とは、どういう意味ですか?

ソースコードをダウンロードし、それを設定し、そしてmakeを使ってバイナリをビルドしたとしましょう。今それは単なるバイナリであり、まだ使用可能なプログラムではありません。それはどのように「インストール」されるのですか? make installで?そして、このコマンドは何をしているのでしょうか。

47
KawaiKx

Makeは汎用のワークフロープログラムで、通常コンパイルに使用されます。しかしそれは何にでも使うことができます。

"make all"のようなことをすると、makeプログラムはカレントディレクトリの "Makefile"という名前のファイルから "all"という名前のルールを実行します。この規則は通常、いくつかのソースコードをバイナリにコンパイルするためにコンパイラを呼び出します。

"make install"を実行すると、makeプログラムは前のステップからバイナリーを取り出し、それらがアクセスできるようにそれらをいくつかの適切な場所にコピーします。 Windowsとは異なり、インストールにはいくつかのライブラリと実行可能ファイルをコピーするだけでよく、そのようなレジストリ要件はありません。つまり、 "make install"はコンパイルされたファイルを適切な場所にコピーするだけです。

42
sharjeel

make installはあなたのinstallの中のMakefile関数/セクションを実行すること以外何もしません

17
sascha

Linuxにソフトウェアをインストールすることに関して言及するべき最も重要なことは、あなたのディストリビューションからソフトウェアをインストールすることがはるかに信頼できそして簡単であるということです(これはそれが目的です!)他に方法がない場合にのみmake installを使用してください(他のプログラムも考えてください)。

Windowsユーザーのよくある間違いは、プログラムをさまざまな場所からダウンロードしてインストールしようとすることです。配布パッケージは、(パッケージマネージャーで)シングルクリックまたはコマンドでインストールできます。

また、Linuxでウイルス感染が発生しない主な理由の1つは、ソフトウェアが多数のランダムなサイトではなく中央の(信頼できる)場所からインストールされる(またはインストールされるべきである)ことです。

補足として、Ubuntuのようなディストリビューションには常に時代遅れのパッケージが含まれていますが、Arch Linuxのように常に最新のディストリビューションもあります(Debian/UbuntuのようにLinux用にリリースされたすべてのプログラムを提供するわけではありません)。

FHSとディストリビューション独自のガイドライン、そしておそらくあなたが見つけることができると思われる他のルーチンに従って、パッケージマネージャを使うとき正確に何が起こるかに関して、それは依存性をチェックし、パッケージをダウンロードし、展開します。パッケージマネージャのmanページから。

8
corvinus