ユーザーアプリケーションをインストールするとき、「ベストプラクティス」はどこにあるかを示唆していますか?


210

時々apt、別のパッケージマネージャーを使用するのではなく、手動でアプリケーションをインストールします。

何(場所/usr//usr/local//opt//home/、など)は、ユーザアプリケーションのインストールのための「ベストプラクティス」によって提案されましたか?


ソースからものを頻繁にインストールしたいので、シェル起動ファイルを変更する小さなツールを作成しました(また、共有ライブラリに依存するプログラムの場合は、ライブラリプレフィックスを変更します) )。機能はそれほど豊富ではありませんが、99%の時間で機能します。
new123456


1
区別に大きな議論/opt/usr/localunix.stackexchange.com/q/11544/11917
blong

回答:


184

それは本当に異なります。アプリケーションにmakefileがある場合、またはpythonutilsの場合、アプリケーションがdistutilsを使用している場合(たとえばsetup.pyファイルがある場合)、または同様のビルド/インストールシステムの場合は、にインストールする必要があり/usr/local/ます。多くの場合、これがデフォルトの動作です。

私が理解し/usr/local/ていることから、に類似した階層があります/usr/。ただし、/usr/bin//usr/lib/などのディレクトリは通常、を介してパッケージをインストールするために予約されていますapt。したがって、「インストール」されることを期待しているプログラム/usr/はで正常に動作するはず/usr/local/です。

tarballを抽出して直接実行する必要がある場合(Firefoxなど)、それをに入れ/opt/ます。1つのディレクトリだけが必要で、そのディレクトリに関連するすべてのファイル/ライブラリを取得するプログラムは、で1つのディレクトリを取得できます/opt/


24
多くの人が忘れているようopt/です-私の意見では、あなたはその目的のために頭に釘を打ちました。
マルコセッピ

3
/ usr / binからシンボリックリンクを作成するか、〜/ .bashrcのPATHに追加します
アレックス

1
どう~/.local/share?@Marco
ultimatex

1
内部~(ホームディレクトリ)にインストールできますが、これにより、1人のユーザーのみがアプリケーションにアクセスできるようになります。システム上の他のユーザーは、そのソフトウェアの独自のインストールをインストールおよび保守する必要があります。ホームディレクトリをインストールするアプリケーションのインストールに関するベストプラクティスについては、システムパッケージに干渉しないため、それほど強力なガイドラインはないと考えています。
ウマン

1
「tarから解凍」されたアプリを/ home / ubuntu / myappの下にインストールするのは間違っていますか-これは/ opt / myappと比較してどのような違いがありますか?
JARC

116

ユーザーを/usr表すのではなく、Unixシステムリソースを意味することを覚えておいてください。

そのため、どのディストリビューションにもコンテンツ全体を踏みつける権利が/usr,あり、システムへの特定の追加が行われ/usr/local、アップグレードを実行する前にそれを保持していると考えがちです。

その間、アプリケーションやその他のものが入り/optます。

物を入れることに抵抗を感じない人/homeもいますが、私はめったにその慣習に従いません。

とは言っても、まず配布パッケージマネージャーに処理を行わせ、次に上記の処理を手動で行うようにします。


35
「Unixシステムリソース」は、「/ home」が追加された後に実行される名前の変更であることを思い出してください。古い、古い、古い日(Unixバージョン6など)では、「ユーザー」ディレクトリが/ usrに格納されていたため、/ usr / jimmy、/ usr / siobhan、/ usr / ahmedなどのディレクトリが表示されます。 。
マークレイトンフィッシャー

5
噛みます:optは何の略ですか?
セス

3
@Seth私はそれが「オプション」だと思います-それはもともとデフォルトのインストールの一部ではないソフトウェアのためでした。
カールH

5
/ usrはUser。これは、Linuxユーザーが開発者だったためです。最初に、開発者とユーザーに分割し始めたときに、/homeディレクトリが導入されました。そして、誰かがそれが意味すると言う考えを持っていたUnix System Resources私たちは持っているので、本当に理にかなってない、Unix system Resources/dev
インフォ画面の

2
正しい、/ usrはバックロニムです。目的は、Unixのは1969年のPDP-7バックで実行されていた日以降に変更された
ウォルトStoneburner

34

firefox develのような不安定なプログラムを/ home / user / opt /にインストールすると、削除がはるかに簡単になり、他のユーザーが使用するバージョンについて混乱することはありません。ホームディレクトリのサブフォルダにあります。

/ usr /にプログラムをインストールしないでください。混乱を引き起こす可能性があります。/usr/にインストールされるものは、配布パッケージ専用です。/ usr / local /は、ローカルにコンパイルされたパッケージ用です。そして、構造はまったく同じように機能します!/ usr / local /内のファイルは、/ usr /内のファイルよりも優先されます

/ opt /は、事前にコンパイルされた(バイナリ)パッケージ(Thunderbird、Eclipse、Netbeans、IBM NetSphereなど)などのインストールに使用する必要があります。ただし、単一のユーザーのみの場合は、ホームディレクトリに配置する必要があります。

「奇妙な」場所(/ home / user / opt / firefox /など)にインストールされたプログラムを、パス全体を入力せずに実行できるようにするには、$ PATH変数に追加する必要があります。 /home/user/.profileに次のような行を追加します

export PATH=/home/user/opt/firefox:$PATH

フォルダー名は、実行する必要がある実行可能ファイルが置かれている名前にする必要があります。


26

Linux Filesystem Hierarchy Standardはを示しています/usr/local

http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.htmlから:

「/ usr / local」の背後にある元のアイデアは、「/ usr」以外のすべてのマシンに個別の(「local」)「/ usr」ディレクトリを置くことでした。'/ usr'の構造をコピーします。最近、「/ usr / local」は、自己コンパイルまたはサードパーティのプログラムを保持するのに適した場所として広く認識されています。/ usr / local階層は、ソフトウェアをローカルにインストールするときにシステム管理者が使用するためのものです。システムソフトウェアの更新時に上書きされないようにする必要があります。ホストのグループ間で共有可能であるが/ usrにはないプログラムおよびデータに使用できます。/ usr内のソフトウェアを置換またはアップグレードするためにインストールする場合を除き、ローカルにインストールしたソフトウェアは、/ usrではなく/ usr / local内に配置する必要があります。


1
この/ usr / localの内容とoptページの情報とが矛盾しているようです:tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html ""このディレクトリはすべてのソフトウェアとアドオンパッケージのために予約されていますデフォルトのインストールの一部ではありません。たとえば、StarOffice、Kylix、Netscape Communicator、WordPerfectパッケージは通常ここにあります。FSSTNDに準拠するには、すべてのサードパーティアプリケーションをこのディレクトリにインストールする必要があります。 "..."(Windowsが新しいソフトウェアを独自のディレクトリツリーC:\ Windows \ Progam Files \ "Program Nameにインストールする方法に似ています。 ")"
ポッド

6

私は通常、これらのプログラムをインストールする自宅に「プログラム」という名前のフォルダーを持っています。奇妙な(またはそうではない)それらはすべてJavaのものです。

コンピューターを再インストールしたり変更したりすると、他の家と一緒に移動するので、大きな利点があります。明らかな欠点があります。これらのアプリはユーザーのみが利用できます。


ホームフォルダーのデータを失うことなくUbuntu 16.04を再インストールするにはどうすればよいですか?formate /ディレクトリで実行しようとしましたが、同じ古いユーザー名とパスワードを入力しましたが、Ubuntuが別のホームフォルダーを作成することがわかりました。
イブラヒムDisouki

1

「checkinstall」を使用して、エイリアンパッケージをdebに変換し、パッケージマネージャーを使用してアンインストールできるようにします。

構成ファイルは多くの場合、構成ファイルとして扱われず(おそらく無視されるか、アプリの一部として扱われる)、インストール前およびインストール後のスクリプトが時々失敗することに注意してください。 debには、インストール前またはインストール後の不正なスクリプトが含まれます。

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