Linuxのどこに物を置くべきかをどうやって知るのですか?


58

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

zipされたフォルダーをダウンロードしますか?運がよければ、いくつかのドキュメントを参照するREADMEがあり、運がよければ助けになるかもしれません。

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

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



8
オフトピック。しかし、簡単なトリックは、パッケージ管理システムの外部には何もインストールしないことです。
Let_Me_Be

1
APTからではない場合、インストールできるものではない可能性があります。自分でコンパイルしてインストールする必要があります。そして、APTベースのパッケージと混同し始めます。できる限り必要なものにAPT / .debsを見つけるのが最も簡単です。
ラップ

2
@Rup Plusは、ソフトウェアにdebパッケージがない場合は、非推奨または最新のものであるか、aptベースのディストリビューションと互換性がないため、おそらくインストールしないでください。
Let_Me_Be

3
ソフトウェアの構築/インストールに関する十分な経験が得られたら、独自のパッケージを作成できます。必ず上流のプロバイダーにフィードバックを提供してください!
jsbillings

回答:


32

それは従うソフトウェアである場合にはFilesystem Hierarchy Standardをあなたはそれを配置する必要がありますよりも/usr/local、適切なサブディレクトリ(のようなbinlibshare、...)。

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


1
本当に良い答えですが、毎日やる必要はないはずです。
プネヘヘ

1
@phunehehe-あなたは毎日それをしなければなりませんか?
ロブ

3
いいえ、私はOPの「この問題は私に毎日悩まされている」と言っていました。
プネヘヘ

1
FHSへのウィキペディアのリンクに加えて、あまりにもこれを読んで:pathname.com/fhs/pub/fhs-2.3.htmlを。「目的」というセクションを読んでください。
-yasouser

27

この質問に対する簡単な答えはありませんが、どのように機能するかの一般的な概要を説明できます。

ほとんどの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の新しいコードにはconfigureスクリプトが含まれない場合があるため、最初にautoconfツールチェーンを実行する必要があります。これらの不思議なダウンロードのほとんどをどうするかを教えてください。Configure-Make-Checkinstallは、最初の良いスタートです。

PS。週末を1つか2つ過ごして、自分でプログラムを作成する方法を学びましょう。

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


1
「PS。週末を1つか2つ過ごして、自分でプログラムを作成する方法を学びましょう。そうすれば、事態は非常に明白になります:-)」。それ以外の場合は優れた答えの悪いアドバイス。Linuxを理解するためのプログラミングを人々に依頼することは、飛行機を修理する航空会社の乗客のようなものです。
apoorv020

プログラミングの代わりに、LFS(最初からLinux)などの独自のLinuxをコンパイルするように変更するだけで、linuxfromscratch.org
jsolarski

@apoorv、要点。:)
sebastian_k

4

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

./configure
make
sudo make install

あなたがやる

./configure
make
sudo make checkinstall

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


おっと、@ sebastian_kが既にcheckinstallに言及していることに気付いた...ああまあ!
mgalgs

1

これは非常に紛らわしい、妥当で理にかなった理由があります(迷惑なアーティファクトの理由もあります)...

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

したがって、理論は、ホームディレクトリに何かを構築し、それを管理している領域(独自のプロジェクト領域、または共有領域)にコピーするというものです。

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

それから、新しいバージョンのUnixが登場するたびに作成者が場所を変更する必要があると感じたが、自動スクリプトのために古いものがまだ存在しなければならなかったという愚かで迷惑な事実があります。これにより、同じ目的に役立つ多数のリンクされたディレクトリが得られます。

initシステムはさらに悪いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.