OSDN Git Service

[update] : Added about airootfs.
authorhayao <shun819.mail@gmail.com>
Tue, 5 May 2020 14:32:51 +0000 (23:32 +0900)
committerhayao <shun819.mail@gmail.com>
Tue, 5 May 2020 14:32:51 +0000 (23:32 +0900)
docs/jp/CHANNEL.md

index 61df1eb..83cd5e1 100644 (file)
@@ -1,4 +1,4 @@
-## チャンネルとは
+# チャンネルとは
 チャンネルは、イメージファイルに含めるファイル(airootfs)やインストールするパッケージ、設定ファイルなどを簡単に切り替えられるように作られたAlterLinux独自の仕組みです。この仕組みによってAlterLinuxの派生OSを簡単に作成することができます。  
 初期ではパッケージの切り替えしかできませんでしたが、現在は大幅に仕様が変更され、様々な変更をチャンネルごとに行うことができます。
 
@@ -6,7 +6,7 @@
 以下は2020年4月14日現在でのチャンネルの仕様です。  
 
 
-## スクリプトにチャンネルを認識させる
+# スクリプトにチャンネルを認識させる
 スクリプトがチャンネルを認識する条件は以下のとおりです。
 
 - `channels`内にチャンネル名のディレクトリがある
@@ -17,7 +17,7 @@
 ヘルプのチャンネル一覧に表示されていないチャンネルは使用できません。  
 
 
-## チャンネル名について
+# チャンネル名について
 チャンネル名は基本的には`channels`内のディレクトリ名です。  
 ディレクトリ名に使用できる全ての文字はチャンネル名に利用することができますが、空白文字や全角文字を入れた場合、一部の環境で正常に動作しない可能性が有ります。  
 また、チャンネル名はスクリプト内で扱う関係上、18文字以内にすることが望ましいです。(それ以上の文字数ではヘルプでチャンネル名が正常に表示されません。)   
 これは、Gitの管理から除外し、カスタマイズした独自のチャンネルを追加するためのものです。  
 最終的に引数として使用できるチャンネル名は`./build -h`を実行して確認して下さい。
 
-### チャンネル名の重複について
+## チャンネル名の重複について
 **チャンネル名が`.add`がついているものといないもので重複しないようにして下さい!**  
-チャンネル名の重複はスクリプトでは考慮されておらず、予期せぬ動作につながる可能性があります。  
-今後は、`.add`がついているものとついていないものが重複した場合、**`.add`が付いている方が優先される**ように実装する方針です。  
\82\82ã\81\97å°\86æ\9d¥ç\9a\84ã\81«ã\83\81ã\83£ã\83³ã\83\8dã\83«å\90\8dã\81®é\87\8dè¤\87ã\81«å¯¾å¿\9cã\81\97ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82ã\80\81å\85¬å¼\8fã\83\81ã\83£ã\83³ã\83\8dã\83«ã\81\8c使ç\94¨ã\81§ã\81\8dã\81ªã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81«å¤\89ã\82\8fã\82\8aã\81¯ã\81ªã\81\84ã\81®ã\81§ã\80\81ã\83\81ã\83£ã\83³ã\83\8dã\83«å\90\8dã\81®é\87\8dè¤\87ã\81¯çµ¶å¯¾ã\81«è¡\8cã\82\8fã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84。  
+`.add`がついているものとついていないものが重複した場合、**`.add`が付いている方が優先**されます。  
+`.add`がついていないチャンネルは一切使用不可能になりますのでご注意下さい。  
\81¾ã\81\9fã\80\81以ä¸\8bã\81®ç\89¹æ®\8aã\81ªã\83\81ã\83£ã\83³ã\83\8dã\83«ã\81®å\90\8då\89\8dã\82\82使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\9bã\82\93。  
 
 
-## それぞれのチャンネルの仕様
+# 特殊なチャンネル
+いくつかの特殊なチャンネルがあります。これらのチャンネルはスクリプトに組み込まれているため、追加や削除は行なえません。
+
+## share
+`share`チャンネルは指定されたチャンネルに関わらず使用される共有チャンネルです。  
+`share`はその他のチャンネルと同じ構造をしていますが、`share`単体をチャンネルとして指定してビルドすることはできません。  
+全てのチャンネルでインストールされる基本パッケージや共通のファイルなどをここに追加します。  
+  
+## rebuild
+このチャンネルはヘルプには表示されていますがディレクトリの実体はありません。このチャンネルはスクリプトに組み込まれています。  
+このチャンネルは作業ディレクトリに生成されたビルドオプションを保存したファイルを読み込み、再ビルドを行うチャンネルです。  
+そのため作業ディレクトリが存在しない場合はエラーを出力し正常に機能しません。  
+
+# それぞれのチャンネルの仕様
 チャンネルを構成する主要なディレクトリは`airootfs`と`packages`です。  
 `airootfs`ディレクトリはパッケージをインストールし`mksquashfs`を実行する直前に`/`を上書きします。  
 `packages`ディレクトリはインストールするパッケージのリストを記述したテキストファイルを格納します。  
 それ以外にも場合によって使用できるファイルがいくつか有ります。  
 
 
-### airootfs
\81\93のディレクトリ内を`/`としてファイルを配置して下さい。全てのファイルの権限はなるべく引き継がれるようになっています。  
+## airootfsから始まるディレクトリ
\81\9dã\82\8cã\81\9eã\82\8cのディレクトリ内を`/`としてファイルを配置して下さい。全てのファイルの権限はなるべく引き継がれるようになっています。  
 
-### customize_airootfs.sh
-各チャンネルの`airootfs`で、`/root/customize_airootfs_<チャンネル名>.sh`というファイルが配置された場合、ビルドスクリプトは、`customize_airootfs.sh`が実行された後に実行します。  
-もしrootfsの設定を変更したい場合、このファイルを作成して下さい。
+### airootfs.any
+アーキテクチャに関わらず最初にライブ環境を上書きします。
+
+### airootfs.i686 airootfs.x86_64
+`x86_64`アーキテクチャなら`airootfs.x86_64`が、`i686`なら`airootfs.i686`が使用されます。  
+
+### ファイルの重複の優先順位
+各チャンネルと`share`チャンネルのファイルでは各チャンネルのファイルが優先されます。  
+また、`airootfs.any`と各アーキテクチャ用のディレクトリでは各アーキテクチャ用のものが優先されます。  
+以下は`airootfs`のコピーされる順番を示しています。要約すると左が一番優先されず、右が優先されます。  
+  
+`share/airootfs.any` -> `share/airootfs.<architecture>` -> `<channel_name>/airootfs.any` -> `<channel_name>/airootfs.<architecture>`
 
 
-### packages
-このディレクトリ内に配置された、ファイル名が`.x86_64`で終わるがパッケージリストとして読み込まれます。  
+## customize_airootfs.sh
+各チャンネルの`airootfs`で、`/root/customize_airootfs_<channel_name>.sh`というファイルが配置された場合、ビルドスクリプトは、`customize_airootfs.sh`が実行された後にそのスクリプトを実行します。  
+(`customize_airootfs.sh`は`share`チャンネルの`airootfs.any`によって配置されるため、各チャンネルで自由に上書きすることができます。)
+もしrootfsの設定を変更したい場合、このファイルを作成して下さい。
+
+## packagesから始まるディレクトリ
+このディレクトリ内に配置された、ファイル名が`.<architecture>`で終わるがパッケージリストとして読み込まれます。  
 1行で1つのパッケージとして扱い、`#`から始まる行はコメントとして扱われます。  
 
 パッケージ名やパッケージリストのファイル名に空白文字や全角文字を含めると正常に動作しない可能性があります。
 詳細は[こちら](PACKAGE.md)を参照して下さい。  
 
 
-#### 特殊なパッケージリスト
+### 特殊なパッケージリスト
 特殊なパッケージリストとして、`jp.x86_64`と`non-jp.x86_64`があります。  
 `-j`オプションによって日本語が有効化されている時、スクリプトは`jp.x86_64`を読み込みます。  
 反対に日本語が有効化されていない場合、スクリプトは`non-jp.x86_64`を使用します。  
 
 
-#### 除外リスト
+### 除外リスト
 もしあなたが`share`チャンネルのパッケージでどうしてもインストールしたくないパッケージがある場合、`packages`ディレクトリ内に`exclude`というファイルを作成し、その中にパッケージを記述することでパッケージを除外することができます。  
 例えば`share`で必ずインストールされる`alterlinux-calamares`をインストールしたくない場合、そのチャンネルの`exclude`にパッケージ名を追加することでインストールされなくなります。  
 (その場合は各チャンネルのcustomize_airootfsで不要なファイルを削除して下さい。)  
 これは作業ディレクトリに正確にログを記録するためです。  
 
 
-### description.txt
+## description.txt
 これはチャンネルの説明を記述したテキストファイルです。`channels/<channel_name>/description.txt`に配置されます。  
 このファイルは必須ではありません。このファイルが無い場合、ヘルプには`This channel does not have a description.txt.`と表示されます。  
 
 このファイルは1行で記述することが推奨されています。複数行を記述する必要がある場合、テキストのレイアウトを考えて2行目以降は先頭に19個の半角空白文字を入れたほうが良いでしょう。  
 
 
-### pacman.conf
+## pacman.conf
 `channels/<channel_name>/pacman.conf`を配置すると、ビルド時にそのファイルを使用します。ただし、インストール後の設定ファイルは置き換えないので`airootfs`で`/etc/pacman.conf`を配置して下さい。
 
 
-### splash.png
+## splash.png
 `channels/<channel_name>/splash.png`を配置すると、SYSLINUXのブートローダの背景を変更することができます。  
 PNG形式の画像で640x480の画像を配置してください。
 
 
-### config
+## config
 `channels/<channel_name>/config`を配置すると、既存のビルド設定を上書きすることができます。かならずシェルスクリプトの構文で記述して下さい。雛形が`build.sh`と同じ階層に設置してあります。  
 この設定ファイルは**引数による設定さえ**上書きしてしまうため、最小限の必須項目のみを記述するようしてください。(例えばPlymouthのテーマ名やパッケージ名など)
-
-
-## 特殊なチャンネル
-### share
-特殊なチャンネルとして`share`チャンネルがあります。`share`チャンネルは指定されたチャンネルに関わらず使用される共有チャンネルです。  
-`share`はその他のチャンネルと同じ構造をしていますが、`share`単体をチャンネルとして指定してビルドすることはできません。  
-全てのチャンネルでインストールされる基本パッケージや共通のファイルなどをここに追加します。  
-
-`airootfs`でファイルが重複した場合、`share`のファイルは上書きされます。  
-例えば`share`と`xfce`で同じ配置先のファイルがあった場合、`xfce`のファイルが使用されます。  
-  
-### rebuild
-他にも`rebuild`チャンネルがあります。このチャンネルはヘルプには表示されていますがディレクトリの実体はありません。このチャンネルはスクリプトに組み込まれています。  
-このチャンネルは作業ディレクトリに生成されたビルドオプションを保存したファイルを読み込み、再ビルドを行うチャンネルです。  
-そのため作業ディレクトリが存在しない場合はエラーを出力し正常に機能しません。  
-**このチャンネルはまだアルファ版です。再ビルドによって予期せぬ問題が発生する可能性が有ります。**
\ No newline at end of file