OSDN Git Service

[update] : BUILD.md is completely English.
[alterlinux/alterlinux.git] / docs / jp / BUILD.md
1 ## AlterLinuxをビルドする
2 ビルドは実機のArch Linuxを利用する方法とDocker上でビルドする方法があります。  
3 Dockerでビルドする方法は[この手順](jp/DOCKER.md)を参照してください。  
4   
5 実機でビルドする場合は、必ずOSがArchLinuxかAlterLinuxでなければなりません。  
6 以下では実機でビルドする方法を解説します。  
7   
8 ビルドは2つの方法で行うことができます。ウィザードを使用する方法と直接実行する方法です。  
9
10 ### ソースコードを取得する
11
12 ```bash
13 git clone https://github.com/SereneTeam/alterlinux.git
14 cd alterlinux
15 ```
16
17 ### ビルドウィザードを使用する
18 実機で直接ビルドする場合、wizard.shを使用して簡単に思い通りの設定でビルドできます。  
19 下記の鍵の追加や依存関係のインストールなどを全て自動で行います。  
20 bashで書かれていますのでターミナルから実行してください。  
21 「はい」か「いいえ」の質問は`y`か`n`で応えてください。数値を入力する場合は半角で入力してください。  
22 ウィザードの使い方の詳細は[公式ブログ](https://blog.fascode.net/2020/04/17/build-alterlinux/)で紹介しています。  
23
24 ```bash
25 ./wizard.sh
26 ```
27
28 ### 手動でオプションを指定してビルドする
29
30 #### 鍵を追加する
31 AlterLinuxには鍵を簡単に追加するスクリプトが含まれています。
32
33 ```bash
34 sudo ./keyring.sh --alter-add --arch32-add
35 ```
36
37 #### 依存関係をインストールする
38 ビルドに必要なパッケージをインストールして下さい。  
39
40 ```bash
41 sudo pacman -S --needed git make arch-install-scripts squashfs-tools libisoburn dosfstools lynx archiso
42 ```
43
44 #### ビルドを開始する
45 `build.sh`を実行して下さい。  
46
47 ```bash
48 sudo ./build.sh
49 ```
50
51 `build.sh`の使い方は以下をご覧ください。
52
53 ### build.sh
54
55 #### 基本
56
57 ```bash
58 ./build.sh <options> <channel>
59 ```
60
61 ##### 注意
62 チャンネル名以降に記述されたオプションは全て無視されます。必ずチャンネル名の前にオプションを入れて下さい。
63
64 #### オプション
65 完全なオプションと使い方は`./build -h`を実行して下さい。
66
67 用途 | 使い方
68 --- | ---
69 ブートスプラッシュを有効化 | -b
70 カーネルを変える | -k [kernel]
71 ユーザ名を変える | -u [username]
72 パスワードを変更する | -p [password]
73 日本語にする | -j
74 圧縮方式を変更する | -c [comp type]
75 圧縮のオプションを設定する | -t [comp option]
76 出力先ディレクトリを指定する| -o [dir]
77 作業ディレクトリを指定する | -w [dir]
78
79
80 #### 例
81 以下の条件でビルドするにはこのようにします。
82
83 - Plymouthを有効化
84 - 圧縮方式は`gzip`
85 - カーネルは`linux-lqx`
86 - パスワードは`ilovearch`
87
88 ```bash
89 ./build.sh -b -c "gzip" -k "lqx" -p 'ilovearch' xfce
90 ```
91
92
93 #### チャンネルについて
94 チャンネルは、インストールするパッケージと含めるファイルを切り替えます。
95 この仕組みにより様々なバージョンのAlterLinuxをビルドすることが可能になります。
96 2020年5月5日現在でサポートされているチャンネルは以下のとおりです。
97
98 名前 | 目的
99 --- | ---
100 xfce | デスクトップ環境にXfce4を使用し、様々なソフトウェアを追加したデフォルトのチャンネル
101 plasma | PlasmaとQtアプリを搭載した現在開発中のチャンネル
102 lxde | LXDEと最小限のアプリケーションのみが入っているrelengを除いて最も軽量なチャンネル
103 releng | 純粋なArchLinuxのライブ起動ディスクをビルドできるチャンネル
104 rebuild | 作業ディレクトリにある設定を利用して再ビルドを行う特殊なチャンネル
105
106
107 #### カーネルについて
108 `i686`アーキテクチャと`x86_64`アーキテクチャでは共にArchLinuxの公式カーネルである`linux`や`linux-lts`、`linux-zen`をサポートしています。  
109 また`x86_64`では公式カーネルに加えて以下のカーネルをサポートしています。
110 カーネルの説明は[ArchWiki](https://wiki.archlinux.jp/index.php/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB)を引用しています。
111
112 名前 | 特徴
113 --- | ---
114 ck | linux-ck にはシステムのレスポンスを良くするためのパッチが含まれています。
115 lts | coreリポジトリにある長期サポート版 (Long term support, LTS) の Linux カーネルとモジュール。
116 lqx | デスクトップ・マルチメディア・ゲーム用途に Debian 用の設定と ZEN カーネルソースを使ってビルドされたディストロカーネル代替
117 rt | このパッチを使うことでカーネルのほとんど全てをリアルタイム実行できるようになります。
118 zen-letsnote | Let's Noteでサスペンドの問題が発生しないようにパッチを当てた`linux-zen`カーネル(AlterLinux独自)
119
120 ##### 注意
121 `-k`のオプションは必ず`linux-foo`の`foo`の部分のみを入れてください。例えば`linux-lts`の場合は`lts`が入ります。
122
123
124 #### 圧縮方式について
125 圧縮方式と詳細のオプションは`mksquashfs`のヘルプを参照してください。
126 2019年2月12日現在で、`mksquashfs`が対応している方式とオプションは以下の通りです。
127
128 ```
129 gzip
130     -Xcompression-level <compression-level>
131     <compression-level> should be 1 .. 9 (default 9)
132     -Xwindow-size <window-size>
133     <window-size> should be 8 .. 15 (default 15)
134     -Xstrategy strategy1,strategy2,...,strategyN
135     Compress using strategy1,strategy2,...,strategyN in turn
136     and choose the best compression.
137     Available strategies: default, filtered, huffman_only,
138     run_length_encoded and fixed
139 lzma (no options)
140 lzo
141     -Xalgorithm <algorithm>
142     Where <algorithm> is one of:
143         lzo1x_1
144         lzo1x_1_11
145         lzo1x_1_12
146         lzo1x_1_15
147         lzo1x_999 (default)
148     -Xcompression-level <compression-level>
149     <compression-level> should be 1 .. 9 (default 8)
150     Only applies to lzo1x_999 algorithm
151 lz4
152     -Xhc
153     Compress using LZ4 High Compression
154 xz
155     -Xbcj filter1,filter2,...,filterN
156     Compress using filter1,filter2,...,filterN in turn
157     (in addition to no filter), and choose the best compression.
158     Available filters: x86, arm, armthumb, powerpc, sparc, ia64
159     -Xdict-size <dict-size>
160     Use <dict-size> as the XZ dictionary size.  The dictionary size
161     can be specified as a percentage of the block size, or as an
162     absolute value.  The dictionary size must be less than or equal
163     to the block size and 8192 bytes or larger.  It must also be
164     storable in the xz header as either 2^n or as 2^n+2^(n+1).
165     Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K
166     etc.
167 zstd
168     -Xcompression-level <compression-level>
169     <compression-level> should be 1 .. 22 (default 15)
170 ```