web-dev-qa-db-ja.com

Linuxのどこに配置するかを知るにはどうすればよいですか?

ウィンドウに何かをインストールすると、ボタンをクリックするだけです。しかし、APTにはない何かをLinuxにインストールしようとするたびに、私はとても混乱します。

あなたはzipフォルダをダウンロードし、それから何ですか?運がよければ、READMEがあります。運がよければ、いくつかのドキュメントを参照してください。

APTにない拡張機能やアプリケーションを「インストール」するときの手品は何ですか?

私はLinuxが大好きですが、この問題は毎日私を悩ませています。

59

Filesystem Hierarchy Standard に準拠するソフトウェアの場合は、/usr/localおよび適切なサブディレクトリ(binlibshare、...など)に配置する必要があります。

他のソフトウェアは、/optの下の独自のディレクトリに配置する必要があります。次に、PATH変数を設定して、binディレクトリまたは実行可能ファイルを保持するディレクトリを含めるか、/usr/local/binへのシンボリックリンクを作成します。

33
Martin Scharrer

この質問に対する単純な答えはありませんが、それがどのように機能するかについての一般的な概要を説明します。

ほとんどのLinuxソフトウェアは、作者(「上流」)によってソースコード形式で提供されています。これにより、特定のプラットフォームおよびシステム構成用のコンパイラーを持っているすべての人がソースコードをダウンロードして自分でコンパイルできます。残念ながら、多くのプログラムは他のプログラムやソフトウェアライブラリ(依存関係)が提供する機能に依存しています。

Windowsソフトウェアは通常、プリコンパイルされた形式で提供されます。つまり、すべてのWindowsコンピューターに1つの汎用実行可能ファイルがあり、依存関係は多くの場合、インストールパッケージに含まれています。

Linuxディストリビューションは、ソースコードを取得してプリコンパイルし、パッケージとして提供します。パッケージには依存関係は含まれていませんが、依存関係を参照し、パッケージシステムにそれらもインストールするように強制します(これは、おそらくすでに経験した混乱につながる可能性があります)。

プリコンパイル済みパッケージがない場合は、いつでもソースコードをダウンロードして自分でコンパイルできます。ほとんどの場合、以下が機能します。

./configure
make
(Sudo) make install (or Sudo checkinstall)

./configure行は、コンパイルプロセスのステージを設定します(依存関係が満たされない場合はエラーを吐き出します)。 make行は、プログラムのすべての部分をコンパイルするスクリプトであるMakefileを実行します。

従来は、ソフトウェアのインストールにmake installを使用していました。これは通常、実行可能ファイルを/ usr/local/binに置きます。

Aptを使用しているので、checkinstallを入手することを強くお勧めします。 make installの代わりに使用でき、.debパッケージが生成されます。これにより、後でソフトウェアをきれいに削除することがはるかに簡単になります。

他のコンパイルシステム、たとえばcmakeがいくつかあることに注意してください。一部のソフトウェアは、コンパイル済みでパッケージ化されていない状態で提供されます(この場合、解凍したフォルダーから直接起動できます)。一部のソフトウェアは、自分で実行する必要があるスクリプトのコレクションとして提供されます。 SVNからの新鮮なコードには、構成スクリプトが含まれていない場合があるため、最初にautoconfツールチェーンを実行する必要があります...など...ルールには多くの例外があることがわかりますが、少しの経験があればできるようになります。これらの不思議なダウンロードのほとんどをどうするかを教えてください。最初に、Configure-Make-Checkinstallをお勧めします。

PS。自分でプログラムする方法を学ぶために1〜2週間の週末を過ごしてください。そうすれば、物事は非常に明白になります:-)

PPS。 Linuxソフトウェアの作者がソースコードの代わりにプリコンパイルされたパッケージを提供しないのはなぜだろうと思うかもしれません。まあ、彼らは時々そうします。しかし、さまざまなプラットフォームとLinuxディストリビューションにはすべて独自のパッケージ形式とファイルシステムルールがあるため、開発者は可能なすべての構成にパッケージを提供する必要があります-これは面倒です。しかし、Ubuntuパッケージはたいてい見つけるのが最も簡単です。PPAとは何か、それがどのように機能するかを確認する必要があります。

27
sebastian_k

checkinstall をチェックアウトする必要があります。の代わりに

./configure
make
Sudo make install

あなたがやる

./configure
make
Sudo make checkinstall

そして、あたかもapt経由でインストールしたかのように、そのパッケージを管理できます。

4
mgalgs

これが非常に混乱している正当で賢明な理由があります(迷惑なアーティファクトの理由もあります)...

Unixにはマルチユーザーの歴史があり、ほとんどのユーザーは、特定のアクセス権が付与されている領域以外にアプリをインストールするアクセス権を持っていませんでした。

したがって、理論としては、ホームディレクトリに何かを作成し、それを自分が制御した領域(独自のプロジェクト領域、または共有領域)にコピーするということになります。

Windows PCは一般にシングルユーザーシステムであり、この制約はありません。すべてが何であれ、すべてProgram Filesに格納されます。

次に、新しいバージョンのUnixが登場するたびに、作成者は場所を変更する必要があると感じましたが、古いスクリプトは自動化されたスクリプトのためにそこになければなりませんでした。これにより、同じ目的に役立つリンクされたディレクトリがたくさん提供されます。

Initシステムはさらに悪い。

1
Bill K