ソフトウェアソースファイルを保持する標準の場所


16

LinuxにOpenSSLなどのソースファイルを保持するための標準の場所はありますか。OpenSSLのデフォルト以外のバージョンでソースからNginxを構築しています。OpenSSLをダウンロードして展開する必要があり、ホームディレクトリで実行しました。さて、Linuxに標準的な場所はあるのでしょう/optか?


1
terdonが書いたように、/ usr / srcが標準の場所であり、ここにカーネルソース(/ usr / src / linux-versionにリンクされた/ usr / src / linux)およびX11のディレクトリがあります。ローカルにインストールされたパッケージ(/ usr / local)のソースコードは、/ usr / local / srcにより適しています。自分でパッケージを「手動で」ビルドしたい場合は、homedirにsrc-directoryを作成することをお勧めします。ルートとしてダウンロード、アンパック、ビルドしないでください。deb / rpm-packagesをビルドする場合、通常は一時ビルドディレクトリ(例:/ var / tmpの下)が代わりに使用されます。TBC
バールドコッペルド

パッケージをビルドしてインストールする場合、またはパッケージ(rpm / dem)を作成する場合は、通常、インストール後にソースコードは必要ありません。カーネルやX11などの一部のパッケージのソースコードが/ usr / src(またはローカルで作成された場合は/ usr / local / src)の下にある理由は、主に、自分でいくつかのソフトウェアパッケージを再構築(または作成)します(たとえば、実際のシステム設定と一致する、カーネルからの不明瞭なヘッダーファイル)。(もちろん、独自のカーネルを構築する場合にも必要になります...)しかし、これはいくつかのパッケージに適用されます。
バールドコッペルド

回答:


20

このようなことを自問するたびに、Filesystem Hierarchy Standard(FHS)を確認してください。そこには、次のエントリがあります。

usr / src:ソースコード(オプション)

目的

ソースコードは、このサブディレクトリに配置できますが、参照目的に限ります。

したがって、ソースファイルをのサブディレクトリに配置できます/usr/src。ただし、これはオプションのディレクトリなので、好きな場所に保存できます。ソースコードは、実行可能ファイルにコンパイルした後は関係ないため、特定の場所で何かのソースにアクセスできる必要はありません。

結論として/usr/srcは、かなり標準的な場所ですが、必要に応じて自由に選択できます。


6
ちょうどあなたがあることに注意してください本当にいじりされないようにする/usr/src上で -Linuxシステム。BSDは、デフォルトでベースシステムのソースをそこに保持しているため、サードパーティソフトウェアと混在させたくありません。ただあなたの$HOMEどこかで構築してください...
Kusalananda

1
同じことが、いくつかのサブディレクトリに適用され/usr/srcますが、特定のパッケージをインストールしている場合は、Debianのデリバティブの(gcc-6-sourcebinutils-source、パッケージをDKMS、カーネルヘッダなど)。Debianには、srcを所有するグループに自分自身を追加し/usr/src、そこに自分自身として(sudo何もすることなく)書くことができる素晴らしい機能があります。
スティーブンキット

また、Fedoraでは、タッチ/usr/src/debugしないでください/usr/src/kernels(AFAICS)。
スティーブンキット

「ソースコードを配置することができます」。「配置された」はタイプミスですか、それとも何かが欠けていますか?
ファヒムミサ

3
さらに進んで、実際/usrにどのシステムにも触れてはいけないと言います。あなたは物を入れるべき/usr/localです。BSDはあなたの使用を気にし/usr/local/srcますか?
ミューザー

13

/usr/local/srcソースコードを保持し、ビルドする安全な場所です。FHSによると

Directory   Description  
src         Local source code

そしてまた

/ usr / local階層は、ソフトウェアをローカルにインストールするときにシステム管理者が使用するためのものです。システムソフトウェアの更新時に上書きされないようにする必要があります。

それはどのような「ローカルソースコード」とは、システムがで場所を何にしようとするつもりはない明らかだ明らかではない/usr/local/srcとは違って、/usr/srcそうそこにコードを置くことに少しマイナス面があるようですが、。

実際、私は別のファイルシステムに私のものを持っています:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src

注:少なくともDebianでは、staffに書き込むにはユーザーをグループに追加する必要があります/usr/local


/usr/local/src他の回答のみが議論している間指摘するための+1/usr/src
MattSturgeon

「ローカルソースコード」の意味については、一般に、ディストリビューションではなくローカルのsysadminによって制御されることを意味します。(理論的には)他のすべてと同じです。したがって、本質的には、まさにあなたが説明したことを意味します。/usr/local
-MattSturgeon

9

「標準」とは、従来型を意味する場合、ソースコードを解凍してビルドする場所はホームディレクトリです。このようなファイルは一時的なものであるか、完了時に削除されるか、必要に応じて保持されますが、必要に応じて整理されます。ホームディレクトリは、この種のものすべてをプレイするための領域です。

後で参照したい場合は、「ファイルシステム階層標準」で推奨されてい/usr/srcます。ただし、これは法律ではなくガイドです。そして、もしあなたがこの習慣になって、非Linuxシステムに挑戦したなら、それに従うことで問題を引き起こす可能性があります。たとえば、BSDシステムでは、ベースシステムのソースがそこに保持されているため、それらをいじりたくありません。Linuxでも、パッケージマネージャーによって保存されたソースと混ざってしまう危険性がありますが、これは望ましくありません。

避けることをお勧めします /usr/src全体的にます。そこに何かを保持することには明らかな利点はありません。また、意図した意味を混同すると潜在的なリスクがあります。


5

あなたは使用することができ/usr/src、合理的かつRPMベースのディストリビューションは、SRPMパッケージのあったコンテンツを保存するためにそれを使用するこの場所の音として。しかし、のような他の場所は/opt/usr/local~/src良いです


「rpmベースのディストリビューションは、それを使用してsrpmパッケージのコンテンツを保存します。」そのため、独自の非ディストリビューションソースをそこに保存して、/ usr / localを使用するべきではありません。-「それは、物を保管するのに適した場所でなければなりません。周りにあるこれらすべてのフォークリフトは同じ意見のようです。...」
rackandboneman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.