「Arch ファイルシステム階層」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(他の1人の利用者による、間の5版が非表示)
3行目: 3行目:
 
[[it:Arch filesystem hierarchy]]
 
[[it:Arch filesystem hierarchy]]
 
[[ru:Arch filesystem hierarchy]]
 
[[ru:Arch filesystem hierarchy]]
[[zh-CN:Arch filesystem hierarchy]]
+
[[zh-hans:Arch filesystem hierarchy]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ABS}}
 
{{Related|ABS}}
23行目: 23行目:
   
 
== ディレクトリ ==
 
== ディレクトリ ==
===root ファイルシステム===
+
===ルートファイルシステム===
root ファイルシステム (スラッシュ記号 ('''/''') で表されます) は他の全てのファイルシステムの根幹となるファイルシステムです。階層の一番上に位置します。たとえファイルやディレクトリが別の物理デバイスに保存されていたとしても、全てのファイルとディレクトリは root ディレクトリ "/" 下に配置されます。root ファイルシステムの中身だけでシステムを起動・復旧・修復できるようになっている必要があります。
+
ルートファイルシステム (スラッシュ記号 ('''/''') で表されます) は他の全てのファイルシステムの根幹となるファイルシステムです。階層の一番上に位置します。たとえファイルやディレクトリが別の物理デバイスに保存されていたとしても、全てのファイルとディレクトリはルートディレクトリ "/" 下に配置されます。ルートファイルシステムの中身だけでシステムを起動・復旧・修復できるようになっている必要があります。
   
 
===<strike>/bin: 重要なコマンドラインバイナリ</strike> (廃止)===
 
===<strike>/bin: 重要なコマンドラインバイナリ</strike> (廃止)===
シングルユーザーモードで、全てのユーザーから利用できるバイナリを置くための伝統的なディレクトリです (例: cat, ls, cp)。/bin のプログラムはたとえ / を含むパーティションしかマウントされてないときも利用することができます。実際には、Arch では必要なライブラリは全て /usr/lib に存在しています。2013年6月から、[https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/ /bin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /bin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
+
シングルユーザーモードで、全てのユーザーから利用できるバイナリを置くための伝統的なディレクトリです (例: cat, ls, cp)。/bin のプログラムはたとえ / を含むパーティションしかマウントされてないときも利用することができます。実際には、Arch では必要なライブラリは全て /usr/lib に存在しています。2013年6月から、[https://www.archlinux.jp/news/binaries-move-to-usrbin-requiring-update-intervention/ /bin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /bin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
   
 
===/boot: ブートローダーの静的なファイル===
 
===/boot: ブートローダーの静的なファイル===
33行目: 33行目:
   
 
===/dev: デバイスファイル===
 
===/dev: デバイスファイル===
起動時に udev によって作成された主要なデバイスノードやイベントによって発見されたマシンのハードウェアです。このディレクトリは UNIX ファイルシステムの重要な一面を表しています: 全てがファイルあるいはディレクトリである。このディレクトリには多くのファイルが含まれており、それぞれがシステムのハードウェアコンポーネントを代理しています。デバイスの多くはブロックまたはキャラクタデバイスですが、他の他オプのデバイスも存在し、また作成することができます。一般に、'ブロックデバイス'とはデータを保存・保持するデバイスのことであり、'キャラクタデバイス'はデータを送信・転送するデバイスと考えてかまいません。例えば、ハードディスクドライブ (HDD) や光学ドライブはブロックデバイスにカテゴライズされ、シリアルポートやマウス、USB ボートなどは全てキャラクタデバイスです。
+
起動時に udev によって作成された主要なデバイスノードやイベントによって発見されたマシンのハードウェアです。このディレクトリは UNIX ファイルシステムの重要な一面を表しています: 全てがファイルあるいはディレクトリである。このディレクトリには多くのファイルが含まれており、それぞれがシステムのハードウェアコンポーネントを代理しています。デバイスの多くはブロックまたはキャラクタデバイスですが、他のタイプのデバイスも存在し、また作成することができます。一般に、'ブロックデバイス'とはデータを保存・保持するデバイスのことであり、'キャラクタデバイス'はデータを送信・転送するデバイスと考えてかまいません。例えば、ハードディスクドライブ (HDD) や光学ドライブはブロックデバイスにカテゴライズされ、シリアルポートやマウス、USB ボートなどは全てキャラクタデバイスです。
   
 
===/etc: ホスト固有の設定===
 
===/etc: ホスト固有の設定===
  +
ホスト固有、共有不能の設定ファイルは {{ic|/etc}} ディレクトリに配置します。特定のアプリケーションに複数の設定ファイルが必要な場合、{{ic|/etc}} を汚さないためにサブディレクトリを使うのが普通です。システムに関する全ての設定ファイルが含まれているため、定期的にバックアップをとると良いでしょう。
Host-specific, unsharable configuration files shall be placed in the /etc directory. If more than one configuration file is required for an application, it is customary to use a subdirectory in order to keep the /etc/ area as clean as possible. It is considered good practice to make frequent backups of this directory as it contains all system related configuration files.
 
   
 
====/etc/X11====
 
====/etc/X11====
42行目: 42行目:
   
 
=====/etc/X11/xinit=====
 
=====/etc/X11/xinit=====
  +
xinit の設定ファイル。'xinit' は X セッションの起動方法のひとつでありスクリプトの一部として使われるのを想定して作られています。
xinit configuration files. 'xinit' is a configuration method of starting up an X session that is designed to be used as part of a script.
 
   
 
=====/etc/X11/xinit/xinitrc=====
 
=====/etc/X11/xinit/xinitrc=====
  +
xinit (startx) によって起動された X セッションが使用する汎用の xinitrc ファイル。ユーザーのホームディレクトリにある .xinitrc ファイルによって上書きされます。
Global xinitrc file, used by all X sessions started by xinit (startx). Its usage is of course overridden by a .xinitrc file located in the home directory of a user.
 
   
 
===/home: ユーザーディレクトリ===
 
===/home: ユーザーディレクトリ===
  +
UNIX はマルチユーザー環境です。そのため、各ユーザーにはそれぞれ専用のディレクトリが割り当てられます。ディレクトリにアクセスできるのは個々のユーザーと root ユーザーだけです。ユーザーのホームディレクトリは {{ic|/home/$USER}} ({{ic|~/}}) にあります。ホームディレクトリの中で、ユーザーはファイルを書き込んだり削除したり、あるいはプログラムをインストールできます。ユーザーのホームディレクトリにはユーザーのデータや個人設定が含まれています (いわゆる「ドットファイル」)。ドットファイルは非表示になっています。ドットファイルを表示するには、ファイルマネージャで表示オプションを有効にするか、ls コマンドを実行するときに -a スイッチを付けてください。個人設定とシステム設定で重なる部分がある場合、個人設定が優先されます。エンドユーザーによって変更が加えられるドットファイルは .xinitrc や .bashrc ファイルなどです。それぞれ xinit と Bash の設定ファイルとなっています。ログイン時に起動するウィンドウマネージャやエイリアス、ユーザーコマンドや環境変数などを変えることができます。ユーザーが作成されたとき、サンプルファイルが存在する {{ic|/etc/skel}} ディレクトリからドットファイルが生成されます。
UNIX is a multi-user environment. Therefore, each user is also assigned a specific directory that is accessible only to them and to the root user. These are the user home directories, which can be found under '/home/$USER' (~/). Within their home directory, a user can write files, delete them, install programs, etc. Users' home directories contain their data and personal configuration files, the so-called 'dot files' (their name is preceded by a dot), which are 'hidden'. To view dotfiles, enable the appropriate option in your file manager or run ls with the -a switch. If there is a conflict between personal and system wide configuration files, the settings in the personal file will prevail. Dotfiles most likely to be altered by the end user include .xinitrc and .bashrc files. The configuration files for xinit and Bash respectively. They allow the user the ability to change the window manager to be started upon login and also aliases, user-specified commands and environment variables respectively. When a user is created, their dotfiles shall be taken from the /etc/skel directory where system sample files reside.
 
   
  +
{{ic|/home}} はダウンロードファイルやコンパイル・インストール・実行するプログラム、メール、マルチメディアファイルなどを保存するのに使われるため非常に巨大になります。
Directory /home can become quite large as it is typically used for storing downloads, compiling, installing and running programs, mail, collections of multimedia files etc.
 
   
 
===/lost+found: ファイルシステム固有の復元可能なデータ===
 
===/lost+found: ファイルシステム固有の復元可能なデータ===
  +
UNIX ライクなオペレーティングシステムは適切なシャットダウンシークエンスを実行します。ときにはシステムがクラッシュしたり停電でマシンが落ちてしまうこともあります。その場合、次の起動時に ''fsck'' プログラムによるファイルシステムチェックが実行されます。''Fsck'' はシステムを調べて破損したファイルがあったら修復を試みます。修復作業の結果がこのディレクトリに保存されます。修復されたファイルは完全ではなく無意味であったりもしますが、運良く大事なファイルが修復される可能性も常にあります。
UNIX-like operating systems must execute a proper shutdown sequence. At times, a system might crash or a power failure might take the machine down. Either way, at the next boot, a filesystem check using the ''fsck'' program shall be performed. ''Fsck'' will go through the system and try to recover any corrupt files that it finds. The result of this recovery operation will be placed in this directory. The files recovered are not likely to be complete or make much sense but there always is a chance that something worthwhile is recovered.
 
   
 
===/mnt: 一時的なマウントポイント===
 
===/mnt: 一時的なマウントポイント===
  +
一時的なファイルシステムやデバイスで使用するマウントポイントです。マウントとはファイルシステムをシステムから利用できるようにすることで、マウントを実行することで、マウントポイントからファイルにアクセスできるようになります。{{ic|/mnt}} の下にさらにマウントポイント (サブディレクトリ) を作成することもできます。マウントポイントはシステム上のどこにでも作成することができますが、慣習的に、ファイルシステムのマウントポイントは大抵決まっています。
This is a generic mount point for temporary filesystems or devices. Mounting is the process of making a filesystem available to the system. After mounting, files will be accessible under the mount-point. Additional mount-points (subdirectories) may be created under /mnt/. There is no limitation to creating a mount-point anywhere on the system, but by convention and for practicality, littering a file system with mount-points should be avoided.
 
   
 
===/opt: 問題のあるパッケージ===
 
===/opt: 問題のあるパッケージ===
  +
上記の GNU ファイルシステムに収めることができないパッケージや巨大な静的ファイルは {{ic|/opt}} に配置することができます。FHS 2.3 では {{ic|/opt}} はアドオンアプリケーションソフトウェアパッケージのインストール場所とされています。{{ic|/opt}} ディレクトリにファイルを配置するパッケージは同じ名前のディレクトリを作成して、ファイルシステム上にファイルが散らばってしまわないようにファイルをまとめて保存します。例えば、acrobat パッケージは bin ディレクトリと同じ場所に Browser, Reader, Resource ディレクトリを作成します。これは GNU ファイルシステムレイアウトには馴染まないため、全てのファイルを {{ic|/opt}} のサブディレクトリに置きます。
Packages and large static files that do not fit cleanly into the above GNU filesystem layout can be placed in /opt. FHS 2.3 denotes /opt as reserved for the installation of add-on application software packages. A package placing files in the /opt/ directory creates a directory bearing the same name as the package. This directory in turn holds files that otherwise would be scattered throughout the file system.
 
For example, the acrobat package has Browser, Reader, and Resource
 
directories sitting at the same level as the bin directory. This
 
doesn't fit into a normal GNU filesystem layout, so Arch places all the
 
files in a subdirectory of /opt.
 
   
 
===/proc: プロセス情報===
 
===/proc: プロセス情報===
  +
{{ic|/proc}} は特殊なディレクトリであり仮想ファイルシステムです。しばしば「プロセス情報の疑似ファイルシステム」と呼ばれます。{{ic|/proc}} には実際のファイルは含まれておらず、システム情報 (例: システムメモリ, マウントしたデバイス, ハードウェアの設定など) が起動時に作られます。したがって、{{ic|/proc}} はカーネルを制御したり情報を確認するための中心地といえます。事実、システムユーティリティの多くはこのディレクトリにあるファイルを呼び出しているだけです。例えば、'lsmod' は {{ic|cat /proc/modules}} と同じであり 'lspci' は {{ic|cat /proc/pci}} と同義です。{{ic|/proc}} ディレクトリに存在するファイルに変更を加えることで、システムが稼働している間でもカーネルパラメータを取得・変更することができます (sysctl)。
Directory /proc is very special in that it is also a virtual filesystem. It is sometimes referred to as the ''process information pseudo-file system''. It doesn't contain 'real' files, but rather, runtime system information (e.g. system memory, devices mounted, hardware configuration, etc). For this reason it can be regarded as a control and information center for the kernel. In fact, quite a lot of system utilities are simply calls to files in this directory. For example, 'lsmod' is the same as 'cat /proc/modules' while 'lspci' is a synonym for 'cat /proc/pci'. By altering files located in this directory, kernel parameters may be read/changed (sysctl) while the system is running.
 
   
  +
{{ic|/proc}} ディレクトリのファイルの特徴としてファイルサイズは全てゼロとなっています。ただし kcore, mounts, self は例外です。
The most distinctive facet about files in this directory is the fact that all of them have a file size of 0, with the exception of '''kcore, mounts''' and '''self'''.
 
   
 
===/root: 管理者ディレクトリ===
 
===/root: 管理者ディレクトリ===
  +
システム管理者 ('root') のホームディレクトリ。紛らわしい名前となっていますが ('/root under root')、歴史的に '/' は root (管理者アカウント) のホームディレクトリです。{{ic|/home/root}} でない理由としては、{{ic|/home}} は別のパーティション上に配置されることがよくあり、{{ic|/}} しかマウントされていない場合に root からアクセスできなくなってしまうからです。
Home directory of the System Administrator, 'root'. This may be somewhat confusing, ('/root under root') but historically, '/' was root's home directory (hence the name of the Administrator account). To keep things tidier, 'root' eventually got its own home directory. Why not '/home/root'? Because '/home' is often located on a different partition or even on another system and would thus be inaccessible to 'root' when - for whatever reason - only '/' is mounted.
 
   
 
=== /run: 一時的な実行時データ===
 
=== /run: 一時的な実行時データ===
77行目: 73行目:
   
 
===<strike>/sbin: システムバイナリ</strike> (廃止)===
 
===<strike>/sbin: システムバイナリ</strike> (廃止)===
伝統的な UNIX では'通常'の実行可能ファイルと、システムのメンテナンスや管理作業で利用する実行可能ファイルを区別していました。後者の実行可能ファイルはこのディレクトリか、あるいはあまり重要ではない場合、/usr/sbin に置くことになっていたのです。(たとえ問題がないときでも) /usr がマウントされてから実行されるプログラムは基本的に /usr/sbin に配置されました。実際には、必要なライブラリは全て /usr/lib に置かれるようになったため、プログラムが /sbin にあったとしても /usr がマウントされている必要がありました。2013年6月から、[https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/ /sbin と /usr/sbin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /sbin や /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
+
伝統的な UNIX では'通常'の実行可能ファイルと、システムのメンテナンスや管理作業で利用する実行可能ファイルを区別していました。後者の実行可能ファイルはこのディレクトリか、あるいはあまり重要ではない場合、/usr/sbin に置くことになっていたのです。(たとえ問題がないときでも) /usr がマウントされてから実行されるプログラムは基本的に /usr/sbin に配置されました。実際には、必要なライブラリは全て /usr/lib に置かれるようになったため、プログラムが /sbin にあったとしても /usr がマウントされている必要がありました。2013年6月から、[https://www.archlinux.jp/news/binaries-move-to-usrbin-requiring-update-intervention/ /sbin と /usr/sbin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /sbin や /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
   
 
===/srv: サービスデータ===
 
===/srv: サービスデータ===
  +
システムによって供給されるサイト固有のデータ。特定のサービスのデータファイルを確認することができるように、読み取り専用データ・書き込み可能データ・(CGI スクリプトなどの) スクリプトをシングルツリーで保存する必要があるサービスが配置されます。特定のユーザーのデータはユーザーのホームディレクトリに配置します。
Site-specific data which is served by the system. The main purpose of specifying this is so that users may find the location of the data files for a particular service, and so that services which require a single tree for read-only data, writable data and scripts (such as CGI scripts) can be reasonably placed. Data of interest to a specific user shall be placed in that user's home directory.
 
   
 
===/sys: 仮想ファイルシステム===
 
===/sys: 仮想ファイルシステム===
  +
Linux カーネルによって提供されている仮想ファイルシステムです。仮想ファイルを使うことで、sysfs は様々なカーネルサブシステムやハードウェアデバイス、関連するデバイスドライバーの情報をユーザー空間から使えるようにしています。様々なデバイスやサブシステムの情報が得られるだけでなく、仮想ファイルはデバイス・サブシステムの設定にも使われます。
Virtual file system provided by the Linux kernel. By using virtual files, sysfs exports information about various kernel subsystems, hardware devices and associated device drivers from the kernel's device model to user space. In addition to providing information about various devices and kernel subsystems, exported virtual files are also used for their configuring.
 
   
 
===/tmp: 一時的なファイル===
 
===/tmp: 一時的なファイル===
  +
一時的に必要となるファイルが含まれています。多くのプログラムがロックファイルを作成するため、あるいはデータの一時領域として使っています。ファイルの中身・目的がよくわからないのに {{ic|/tmp}} の中のファイルを削除してはいけません。ほとんどのファイルは実行中のプログラムにとって重要なファイルであり、削除するとシステムがクラッシュする可能性があります。大抵の環境では、古いファイルは起動時や数日間隔で消去されるようになっています。
This directory contains files that are required temporarily. Many programs use this to create lock files and for temporary storage of data. Do not remove files from this directory unless you know exactly what you are doing! Many of these files are important for currently running programs and deleting them may result in a system crash. On most systems, old files in this directory are cleared out at boot or at daily intervals.
 
   
===/usr: 共有可能な、読み取り専用データ===
+
===/usr: 共有可能な、読み取り専用データ===
  +
ルートファイルシステムが一番目のファイルシステムとすれば、{{ic|/usr}} は二番目のファイルシステムです。ユーザーユーティリティやアプリケーションなどのユーザーデータが含まれています。{{ic|/usr}} は共有可能・読み取り専用のデータです。つまり {{ic|/usr}} は様々なホスト間で共有することができ、パッケージマネージャ以外は書き込みを行うべきではありません (パッケージのインストール・更新など)。特定のホストの情報や、何か変更を加えるファイルは別の場所に保存します。
While root is the primary filesystem, /usr is the secondary hierarchy, for user data, containing the majority of (multi-)user utilities and applications. /usr is shareable, read-only data. This means that /usr shall be shareable between various hosts and must not be written to, except by the package manager (installation, update, upgrade). Any information that is host-specific or varies with time is stored elsewhere.
 
   
  +
{{ic|/home}} を別として、通常 {{ic|/usr}} にはシステムのデータの大部分を占めます。ユーザーバイナリ、バイナリのドキュメント、ライブラリ、ヘッダーファイルなどが含まれるため、システムの中で一番重要なディレクトリのひとつです。X とその補助ライブラリも {{ic|/usr}} に存在します。telnet, ftp などのユーザープログラムもあります。オリジナルの UNIX 実装では、{{ic|/usr}} には (''user'' の略として) システムユーザーのホームディレクトリが置かれていました (つまり、今日における {{ic|/home/''username''}} が {{ic|/usr/''username''}} に相当していました)。徐々に、{{ic|/usr}} は (カーネル空間のプログラムやデータと対比して) ユーザー空間のプログラムやデータを保存するディレクトリに変化しました。名前自体は変わっていませんが、「ユーザーに関連する全てのファイル」を置く場所から「ユーザーが使えるプログラムやデータ」を置く場所に意味が変わったということです。そのため、後から意味づけした言葉として ''''U'''ser '''S'''ystem '''R'''esources' と呼ばれることもあります。
Aside from /home, /usr usually contains by far the largest share of data on a system. Hence, this is one of the most important directories in the system as it contains all the user binaries, their documentation, libraries, header files, etc. X and its supporting libraries can be found here. User programs like telnet, ftp, etc., are also placed here. In the original UNIX implementations, /usr (for ''user''), was where the home directories of the system's users were placed (that is to say, /usr/''username'' was then the directory now known as /home/''username''). Over time, /usr has become where userspace programs and data (as opposed to 'kernelspace' programs and data) reside. The name has not changed, but its meaning has narrowed and lengthened from ''everything user related'' to ''user usable programs and data''. As such, the backronym ''''U'''ser '''S'''ystem '''R'''esources' was created.
 
   
 
====/usr/bin: バイナリ====
 
====/usr/bin: バイナリ====
100行目: 96行目:
   
 
====/usr/lib: ライブラリ====
 
====/usr/lib: ライブラリ====
{{Note|{{ic|/lib}} ディレクトリは {{ic|/usr/lib}} のシンボリックリンクとなりました [https://www.archlinux.org/news/the-lib-directory-becomes-a-symlink/]。このアップデートによってエラーが発生するようになった場合、[[en2:DeveloperWiki:usrlib|DeveloperWiki:usrlib]] を見て下さい。}}
+
{{Note|{{ic|/lib}} ディレクトリは {{ic|/usr/lib}} のシンボリックリンクとなりました [https://www.archlinux.jp/news/the-lib-directory-becomes-a-symlink/]。このアップデートによってエラーが発生するようになった場合、[[en2:DeveloperWiki:usrlib|DeveloperWiki:usrlib]] を見て下さい。}}
  +
アプリケーションのプライベートデータ (カーネルモジュール, systemd サービス, udev ルールなど) や共有ライブラリのイメージ (C 言語のコードライブラリ) などが含まれます。ライブラリは頻繁に使われるプログラムルーチンの集合であり、ファイル名の拡張子が *.so となっているかどうかで簡単に判別できます。システムの基本的な機能を保つために必須のファイルです。カーネルモジュール (ドライバー) は {{ic|/usr/lib/modules/<kernel-version>}} サブディレクトリに保存されています。
Contains application private data (kernel modules, systemd services, udev rules, etc) and shared library images (the C programming code library). Libraries are collections of frequently used program routines and are readily identifiable through their filename extension of *.so. They are essential for basic system functionality. Kernel modules (drivers) are in the subdirectory /lib/modules/<kernel-version>.
 
   
 
====<strike>/usr/sbin: システムバイナリ</strike> (廃止)====
 
====<strike>/usr/sbin: システムバイナリ</strike> (廃止)====
システム管理者が使用する重要ではないシステムバイナリ。2013年6月から、[https://www.archlinux.org/news/binaries-move-to-usrbin-requiring-update-intervention/ /usr/sbin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
+
システム管理者が使用する重要ではないシステムバイナリ。2013年6月から、[https://www.archlinux.jp/news/binaries-move-to-usrbin-requiring-update-intervention/ /usr/sbin は /usr/bin に統合されました]。{{Pkg|filesystem}} パッケージには /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。
   
 
====/usr/share: アーキテクチャに依存しないデータ====
 
====/usr/share: アーキテクチャに依存しないデータ====
  +
このディレクトリには共有可能で、アーキテクチャに依存しないファイル (ドキュメントやアイコン、フォントなど) が含まれています。ただし、{{ic|/usr/share}} は他のオペレーティングシステムとファイルを共有するためのディレクトリではないので注意してください。変更が必要ないデータを使用するプログラムやパッケージは、そのようなデータを {{ic|/usr/share}} に保存します (手動でインストールした場合は {{ic|/usr/local/share}} に保存されます、下を参照)。その際は {{ic|/usr/share}} のサブディレクトリを使用することが推奨されています。
This directory contains 'shareable', architecture-independent files (docs, icons, fonts etc). Note, however, that /usr/share is generally not intended to be shared by different operating systems or by different releases of the same operating system. Any program or package which contains or requires data that do not need to be modified should store these data in /usr/share (or /usr/local/share, if manually installed - see below). It is recommended that a subdirectory be used in /usr/share for this purpose.
 
   
 
====/usr/src: ソースコード====
 
====/usr/src: ソースコード====
113行目: 109行目:
   
 
====/usr/local: ローカル階層====
 
====/usr/local: ローカル階層====
  +
ローカルデータを保存するための三番目のファイルシステムです。元の概念としては {{ic|/usr/local}} には全てのマシンの各々の ('local' の) {{ic|/usr}} を保存するディレクトリで、他のマシンから読み取り専用でマウントするために存在していました。{{ic|/usr}} と同じようなディレクトリ構造が取られています。今日では、{{ic|/usr/local}} は自分でコンパイルしたプログラムや第三者のプログラムを保存する場所として広く受け入れられています。Arch Linux では、デフォルトでは {{ic|/usr/local}} は空です。必要ならば手動でコンパイルしたソフトウェアのインストール先として使うことができます。[[pacman]] はソフトウェアを {{ic|/usr}} にインストールするので、手動でコンパイルしたソフトウェアを {{ic| /usr/local}} にインストールすることで、pacman によってインストールしたシステムソフトウェアと平和に共存することができます。
Optional tertiary hierarchy for local data. The original idea behind /usr/local was to have a separate ('local') '/usr' directory on every machine besides /usr itself, which might be mounted read-only from somewhere else. It copies the structure of /usr. These days, /usr/local is widely regarded as a good place in which to keep self-compiled or third-party programs. This directory is empty by default in Arch Linux. It may be used for manually compiled software installations if desired. [[pacman]] installs to /usr, therefore, manually compiled/installed software installed to /usr/local may peacefully co-exist with pacman-tracked system software.
 
   
 
===/var: 可変ファイル===
 
===/var: 可変ファイル===
  +
ログやスプールファイル、一時的なメールファイルなどの可変ファイル。Arch では [[ABS]] ツリーや pacman のキャッシュなども保存されています。一時的な可変ファイルを {{ic|/usr/}} に配置しないのは CD や他のコンピュータから {{ic|/usr/}} を読み取り専用でマウントする可能性があるためです。{{ic|/var/}} に含まれているのは可変データです。システムの操作中にファイルやディレクトリは書き込みが行える状態でなければなりません。一方で {{ic|/usr/}} には静的なデータだけが保存されます。一部のディレクトリは別のパーティションに配置することで、ネットワークのトポロジーやセキュリティの観点からバックアップを簡単にすることができます。ブートプロセスで必須となる他のディレクトリはルートパーティションに配置する必要があります。マウントできるディレクトリは次の通りです: '/home', '/mnt', '/tmp', '/var'。起動に必須のディレクトリは次のとおりです: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc', '/sbin', '/usr'。
Variable files, such as logs, spool files, and temporary e-mail files. On Arch, the [[ABS]] tree and pacman cache also reside here. Why not put the variable and transient data into /usr/? Because there might be circumstances when /usr/ is mounted as read-only, e.g. if it is on a CD or on another computer. '/var/' contains variable data, i.e. files and directories the system must be able to write to during operation, whereas /usr/ shall only contain static data.
 
Some directories can be put onto separate partitions or systems, e.g. for easier backups, due to network topology or security concerns. Other directories have to be on the root partition, because they are vital for the boot process. 'Mountable' directories are: '/home', '/mnt', '/tmp' and '/var'. Essential for booting are: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc', '/sbin' and '/usr'.
 
   
 
====/var/abs====
 
====/var/abs====

2022年4月6日 (水) 23:19時点における最新版

関連記事

Arch Linux は他の多数のディストリビューションと同じようにファイルシステム階層標準に従っています。それぞれのディレクトリについてその目的を説明するのに加えて、この記事では Arch 固有の事情についても説明しています。

目次

ファイルシステム階層標準

Filesystem Hierarchy Standard (FHS) のホームページ より:

"ファイルシステムスタンダードは Unix ディストリビューションの開発者やパッケージの開発者、そしてシステムの実装者によって使われることを想定して策定されました。ただし、この標準はあくまでリファレンスであり、Unix のファイルシステムやディレクトリ階層を管理する方法のチュートリアルではありません。"

共有可能ファイルと共有不能ファイル

共有可能ファイルとはあるホストで保存されていながら他者からも利用できるファイルです。共有不能ファイルは共有できないファイルのことです。例えば、ユーザーのホームディレクトリ内のファイルは共有可能であり、デバイスのロックファイルは共有不能です。

静的ファイルと可変ファイル

静的ファイルとは例えば、バイナリやライブラリ、ドキュメントなどのシステムの管理者以外からは変更を加えられることがないファイルを意味します。可変ファイルは静的ファイルでないファイルとして定義されます。

ディレクトリ

ルートファイルシステム

ルートファイルシステム (スラッシュ記号 (/) で表されます) は他の全てのファイルシステムの根幹となるファイルシステムです。階層の一番上に位置します。たとえファイルやディレクトリが別の物理デバイスに保存されていたとしても、全てのファイルとディレクトリはルートディレクトリ "/" 下に配置されます。ルートファイルシステムの中身だけでシステムを起動・復旧・修復できるようになっている必要があります。

/bin: 重要なコマンドラインバイナリ (廃止)

シングルユーザーモードで、全てのユーザーから利用できるバイナリを置くための伝統的なディレクトリです (例: cat, ls, cp)。/bin のプログラムはたとえ / を含むパーティションしかマウントされてないときも利用することができます。実際には、Arch では必要なライブラリは全て /usr/lib に存在しています。2013年6月から、/bin は /usr/bin に統合されましたfilesystem パッケージには /bin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。

/boot: ブートローダーの静的なファイル

共有不能の、静的なディレクトリです。ブートローダーの設定ファイルやブートローダーのステージだけでなく、カーネルや ramdisk イメージも含みます。/boot にはカーネルがユーザー空間のプログラムを実行する前に使用されるデータも保存されます。マスターブートセクタやセクターマップファイルなどです。

/dev: デバイスファイル

起動時に udev によって作成された主要なデバイスノードやイベントによって発見されたマシンのハードウェアです。このディレクトリは UNIX ファイルシステムの重要な一面を表しています: 全てがファイルあるいはディレクトリである。このディレクトリには多くのファイルが含まれており、それぞれがシステムのハードウェアコンポーネントを代理しています。デバイスの多くはブロックまたはキャラクタデバイスですが、他のタイプのデバイスも存在し、また作成することができます。一般に、'ブロックデバイス'とはデータを保存・保持するデバイスのことであり、'キャラクタデバイス'はデータを送信・転送するデバイスと考えてかまいません。例えば、ハードディスクドライブ (HDD) や光学ドライブはブロックデバイスにカテゴライズされ、シリアルポートやマウス、USB ボートなどは全てキャラクタデバイスです。

/etc: ホスト固有の設定

ホスト固有、共有不能の設定ファイルは /etc ディレクトリに配置します。特定のアプリケーションに複数の設定ファイルが必要な場合、/etc を汚さないためにサブディレクトリを使うのが普通です。システムに関する全ての設定ファイルが含まれているため、定期的にバックアップをとると良いでしょう。

/etc/X11

X Window System の設定ファイル。

/etc/X11/xinit

xinit の設定ファイル。'xinit' は X セッションの起動方法のひとつでありスクリプトの一部として使われるのを想定して作られています。

/etc/X11/xinit/xinitrc

xinit (startx) によって起動された X セッションが使用する汎用の xinitrc ファイル。ユーザーのホームディレクトリにある .xinitrc ファイルによって上書きされます。

/home: ユーザーディレクトリ

UNIX はマルチユーザー環境です。そのため、各ユーザーにはそれぞれ専用のディレクトリが割り当てられます。ディレクトリにアクセスできるのは個々のユーザーと root ユーザーだけです。ユーザーのホームディレクトリは /home/$USER (~/) にあります。ホームディレクトリの中で、ユーザーはファイルを書き込んだり削除したり、あるいはプログラムをインストールできます。ユーザーのホームディレクトリにはユーザーのデータや個人設定が含まれています (いわゆる「ドットファイル」)。ドットファイルは非表示になっています。ドットファイルを表示するには、ファイルマネージャで表示オプションを有効にするか、ls コマンドを実行するときに -a スイッチを付けてください。個人設定とシステム設定で重なる部分がある場合、個人設定が優先されます。エンドユーザーによって変更が加えられるドットファイルは .xinitrc や .bashrc ファイルなどです。それぞれ xinit と Bash の設定ファイルとなっています。ログイン時に起動するウィンドウマネージャやエイリアス、ユーザーコマンドや環境変数などを変えることができます。ユーザーが作成されたとき、サンプルファイルが存在する /etc/skel ディレクトリからドットファイルが生成されます。

/home はダウンロードファイルやコンパイル・インストール・実行するプログラム、メール、マルチメディアファイルなどを保存するのに使われるため非常に巨大になります。

/lost+found: ファイルシステム固有の復元可能なデータ

UNIX ライクなオペレーティングシステムは適切なシャットダウンシークエンスを実行します。ときにはシステムがクラッシュしたり停電でマシンが落ちてしまうこともあります。その場合、次の起動時に fsck プログラムによるファイルシステムチェックが実行されます。Fsck はシステムを調べて破損したファイルがあったら修復を試みます。修復作業の結果がこのディレクトリに保存されます。修復されたファイルは完全ではなく無意味であったりもしますが、運良く大事なファイルが修復される可能性も常にあります。

/mnt: 一時的なマウントポイント

一時的なファイルシステムやデバイスで使用するマウントポイントです。マウントとはファイルシステムをシステムから利用できるようにすることで、マウントを実行することで、マウントポイントからファイルにアクセスできるようになります。/mnt の下にさらにマウントポイント (サブディレクトリ) を作成することもできます。マウントポイントはシステム上のどこにでも作成することができますが、慣習的に、ファイルシステムのマウントポイントは大抵決まっています。

/opt: 問題のあるパッケージ

上記の GNU ファイルシステムに収めることができないパッケージや巨大な静的ファイルは /opt に配置することができます。FHS 2.3 では /opt はアドオンアプリケーションソフトウェアパッケージのインストール場所とされています。/opt ディレクトリにファイルを配置するパッケージは同じ名前のディレクトリを作成して、ファイルシステム上にファイルが散らばってしまわないようにファイルをまとめて保存します。例えば、acrobat パッケージは bin ディレクトリと同じ場所に Browser, Reader, Resource ディレクトリを作成します。これは GNU ファイルシステムレイアウトには馴染まないため、全てのファイルを /opt のサブディレクトリに置きます。

/proc: プロセス情報

/proc は特殊なディレクトリであり仮想ファイルシステムです。しばしば「プロセス情報の疑似ファイルシステム」と呼ばれます。/proc には実際のファイルは含まれておらず、システム情報 (例: システムメモリ, マウントしたデバイス, ハードウェアの設定など) が起動時に作られます。したがって、/proc はカーネルを制御したり情報を確認するための中心地といえます。事実、システムユーティリティの多くはこのディレクトリにあるファイルを呼び出しているだけです。例えば、'lsmod' は cat /proc/modules と同じであり 'lspci' は cat /proc/pci と同義です。/proc ディレクトリに存在するファイルに変更を加えることで、システムが稼働している間でもカーネルパラメータを取得・変更することができます (sysctl)。

/proc ディレクトリのファイルの特徴としてファイルサイズは全てゼロとなっています。ただし kcore, mounts, self は例外です。

/root: 管理者ディレクトリ

システム管理者 ('root') のホームディレクトリ。紛らわしい名前となっていますが ('/root under root')、歴史的に '/' は root (管理者アカウント) のホームディレクトリです。/home/root でない理由としては、/home は別のパーティション上に配置されることがよくあり、/ しかマウントされていない場合に root からアクセスできなくなってしまうからです。

/run: 一時的な実行時データ

/run マウントポイントは起動時にマウントされる tmpfs で、起動時からあらゆるツールが利用・書込することができます。ブートプロセスで必須とされる systemd, udev, mdadm などがこのディレクトリを必要とします。なぜなら /var は起動プロセスの後ろの方の段階でマウントされる分割されたファイルシステムとして実装されることがあるためです。/var は /run のシンボリックリンクとなる /var/run/ を置き換えます。

/sbin: システムバイナリ (廃止)

伝統的な UNIX では'通常'の実行可能ファイルと、システムのメンテナンスや管理作業で利用する実行可能ファイルを区別していました。後者の実行可能ファイルはこのディレクトリか、あるいはあまり重要ではない場合、/usr/sbin に置くことになっていたのです。(たとえ問題がないときでも) /usr がマウントされてから実行されるプログラムは基本的に /usr/sbin に配置されました。実際には、必要なライブラリは全て /usr/lib に置かれるようになったため、プログラムが /sbin にあったとしても /usr がマウントされている必要がありました。2013年6月から、/sbin と /usr/sbin は /usr/bin に統合されましたfilesystem パッケージには /sbin や /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。

/srv: サービスデータ

システムによって供給されるサイト固有のデータ。特定のサービスのデータファイルを確認することができるように、読み取り専用データ・書き込み可能データ・(CGI スクリプトなどの) スクリプトをシングルツリーで保存する必要があるサービスが配置されます。特定のユーザーのデータはユーザーのホームディレクトリに配置します。

/sys: 仮想ファイルシステム

Linux カーネルによって提供されている仮想ファイルシステムです。仮想ファイルを使うことで、sysfs は様々なカーネルサブシステムやハードウェアデバイス、関連するデバイスドライバーの情報をユーザー空間から使えるようにしています。様々なデバイスやサブシステムの情報が得られるだけでなく、仮想ファイルはデバイス・サブシステムの設定にも使われます。

/tmp: 一時的なファイル

一時的に必要となるファイルが含まれています。多くのプログラムがロックファイルを作成するため、あるいはデータの一時領域として使っています。ファイルの中身・目的がよくわからないのに /tmp の中のファイルを削除してはいけません。ほとんどのファイルは実行中のプログラムにとって重要なファイルであり、削除するとシステムがクラッシュする可能性があります。大抵の環境では、古いファイルは起動時や数日間隔で消去されるようになっています。

/usr: 共有可能な、読み取り専用データ

ルートファイルシステムが一番目のファイルシステムとすれば、/usr は二番目のファイルシステムです。ユーザーユーティリティやアプリケーションなどのユーザーデータが含まれています。/usr は共有可能・読み取り専用のデータです。つまり /usr は様々なホスト間で共有することができ、パッケージマネージャ以外は書き込みを行うべきではありません (パッケージのインストール・更新など)。特定のホストの情報や、何か変更を加えるファイルは別の場所に保存します。

/home を別として、通常 /usr にはシステムのデータの大部分を占めます。ユーザーバイナリ、バイナリのドキュメント、ライブラリ、ヘッダーファイルなどが含まれるため、システムの中で一番重要なディレクトリのひとつです。X とその補助ライブラリも /usr に存在します。telnet, ftp などのユーザープログラムもあります。オリジナルの UNIX 実装では、/usr には (user の略として) システムユーザーのホームディレクトリが置かれていました (つまり、今日における /home/username/usr/username に相当していました)。徐々に、/usr は (カーネル空間のプログラムやデータと対比して) ユーザー空間のプログラムやデータを保存するディレクトリに変化しました。名前自体は変わっていませんが、「ユーザーに関連する全てのファイル」を置く場所から「ユーザーが使えるプログラムやデータ」を置く場所に意味が変わったということです。そのため、後から意味づけした言葉として 'User System Resources' と呼ばれることもあります。

/usr/bin: バイナリ

コマンドバイナリ。このディレクトリにはシステム上のバイナリ (アプリケーション) のほとんどが含まれます。このディレクトリ内の実行ファイルは様々です。例えば vim や gcc、gnome-session などがここに置かれます。昔は、このディレクトリには root 権限を必要としない、そしてシングルユーザーモードで必要ないバイナリだけを置くことになっていました。しかしながら、この決まりごとは既に強制ではなくなっており、Arch の開発陣は 全てのバイナリをこのディレクトリに移動することを計画 全てのバイナリをこのディレクトリに移動しています。

/usr/include: ヘッダーファイル

ユーザー空間のソースコードをコンパイルするのに必要なヘッダーファイル。

/usr/lib: ライブラリ

ノート: /lib ディレクトリは /usr/lib のシンボリックリンクとなりました [1]。このアップデートによってエラーが発生するようになった場合、DeveloperWiki:usrlib を見て下さい。

アプリケーションのプライベートデータ (カーネルモジュール, systemd サービス, udev ルールなど) や共有ライブラリのイメージ (C 言語のコードライブラリ) などが含まれます。ライブラリは頻繁に使われるプログラムルーチンの集合であり、ファイル名の拡張子が *.so となっているかどうかで簡単に判別できます。システムの基本的な機能を保つために必須のファイルです。カーネルモジュール (ドライバー) は /usr/lib/modules/<kernel-version> サブディレクトリに保存されています。

/usr/sbin: システムバイナリ (廃止)

システム管理者が使用する重要ではないシステムバイナリ。2013年6月から、/usr/sbin は /usr/bin に統合されましたfilesystem パッケージには /usr/sbin から /usr/bin へのシンボリックリンクが含まれており、全てのパッケージは /usr/bin にインストールされるようになっています。

/usr/share: アーキテクチャに依存しないデータ

このディレクトリには共有可能で、アーキテクチャに依存しないファイル (ドキュメントやアイコン、フォントなど) が含まれています。ただし、/usr/share は他のオペレーティングシステムとファイルを共有するためのディレクトリではないので注意してください。変更が必要ないデータを使用するプログラムやパッケージは、そのようなデータを /usr/share に保存します (手動でインストールした場合は /usr/local/share に保存されます、下を参照)。その際は /usr/share のサブディレクトリを使用することが推奨されています。

/usr/src: ソースコード

'linux' サブディレクトリは、Linux のカーネルのソースコードとヘッダファイルを格納しています。

/usr/local: ローカル階層

ローカルデータを保存するための三番目のファイルシステムです。元の概念としては /usr/local には全てのマシンの各々の ('local' の) /usr を保存するディレクトリで、他のマシンから読み取り専用でマウントするために存在していました。/usr と同じようなディレクトリ構造が取られています。今日では、/usr/local は自分でコンパイルしたプログラムや第三者のプログラムを保存する場所として広く受け入れられています。Arch Linux では、デフォルトでは /usr/local は空です。必要ならば手動でコンパイルしたソフトウェアのインストール先として使うことができます。pacman はソフトウェアを /usr にインストールするので、手動でコンパイルしたソフトウェアを /usr/local にインストールすることで、pacman によってインストールしたシステムソフトウェアと平和に共存することができます。

/var: 可変ファイル

ログやスプールファイル、一時的なメールファイルなどの可変ファイル。Arch では ABS ツリーや pacman のキャッシュなども保存されています。一時的な可変ファイルを /usr/ に配置しないのは CD や他のコンピュータから /usr/ を読み取り専用でマウントする可能性があるためです。/var/ に含まれているのは可変データです。システムの操作中にファイルやディレクトリは書き込みが行える状態でなければなりません。一方で /usr/ には静的なデータだけが保存されます。一部のディレクトリは別のパーティションに配置することで、ネットワークのトポロジーやセキュリティの観点からバックアップを簡単にすることができます。ブートプロセスで必須となる他のディレクトリはルートパーティションに配置する必要があります。マウントできるディレクトリは次の通りです: '/home', '/mnt', '/tmp', '/var'。起動に必須のディレクトリは次のとおりです: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc', '/sbin', '/usr'。

/var/abs

ABS ツリー。ports のようなパッケージビルドシステム階層構造となっており、インストール可能な全ての Arch ソフトウェアの名前が付いたサブディレクトリにビルドスクリプトが含まれています。

/var/cache/pacman/pkg

pacman のパッケージキャッシュ。

/var/lib: 状態情報

プログラムが実行すると変更される永続データです (例: データベース、パッケージシステムのメタデータなど)。

/var/log: ログファイル

ログファイル。

/var/mail: ユーザーのメール

以前はユーザーのメールボックスとして使われていました。

/var/spool: キュー

処理されるのを待っているタスクのためのスプールです (例: プリントキュー、未読メール)。

/var/spool/mail

ユーザーメールボックスのための共有可能なディレクトリです。

/var/tmp: 保持される可能性がある一時的なファイル

再起動しても保持される一時的なファイル。

参照