OSDN Git Service

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