source: projects/web/trunk/vlmagazine/20100619.dat @ 2154

Revision 2154, 7.4 KB checked in by daisuke, 13 years ago (diff)

add <author> tag

Line 
1<date>
22010,06,19
3
4<author>
5daisuke
6
7<title>
8apt リポジトリの作り方(基礎)
9
10<description>
11ここではapt-rpmのリポジトリ作成方法の基本の基本を紹介します。公式リポジトリには
12投入しないパッケージやしたくないパッケージ、テスト用に仮につくったパッケージ、
13個人/企業/学校用にカスタマイズしたパッケージなどを apt からアクセスできるリポジ
14トリとして用意することができます。
15<br/>
16apt-pinningのためのリポジトリの細かな設定などについては今回は省略しています。
17
18<h2>標準的な構成の設定</h2>
19<p>基本的な APT-RPM 用リポジトリの作成方法:</p>
20<pre class="screen">
21[daisuke@hoge /home/ftp/pub]$ find .
22.
23./Test/SRPMS.main
24./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
25./Test/i386/RPMS.main
26./Test/i386/RPMS.main/hoge-1.0-0vl1.i386.rpm
27</pre>
28<pre class="screen">
29[daisuke@hoge /home/ftp/pub]$ genbasedir /home/ftp/pub/Test/i386
30Creating base directory... done
31Components: main
32Processing pkglists... main [done]
33Processing srclists... main [done]
34Creating component releases... main [done]
35Creating global release file... [done]
36Appending MD5Sum... main [done]
37All your base are belong to us!!!
38</pre>
39<pre class="screen">
40[daisuke@hoge /home/ftp/pub]$ find .
41.
42./Test/i386/base
43./Test/i386/base/pkglist.main
44./Test/i386/base/pkglist.main.bz2
45./Test/i386/base/release.main
46./Test/i386/base/release
47./Test/i386/base/srclist.main
48./Test/i386/base/srclist.main.bz2
49./Test/i386/RPMS.main
50./Test/i386/RPMS.main/hoge-1.0-0vl1.i386.rpm
51./Test/SRPMS.main
52./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
53</pre>
54
55<p>
56これで APT-RPM でアクセス可能なリポジトリが生成されます。ここで注意するのは、
57通常はバイナリを置くディレクトリ RPMS.main とソースパッケージを置くディレクトリ
58SRPMS.main は階層が違うということです。SRPMS.xxx はバイナリよりも1段上の
59ディレクトリに置くことに注意しましょう。
60このリポジトリを APT に認識させるためには、以下のような apt-line を
61/etc/apt/sources.list または /etc/apt/sources.list.d/test-repository.conf
62などに追加記述しましょう。
63</p>
64
65<pre class="screen">
66rpm file:/home/ftp/pub Test/i386 main
67rpm-src file:/home/ftp/pub Test/i386 main
68</pre>
69
70<p>
71HTTP でアクセスができるようになっている場合は /home/ftp が DocumentRoot の
72場合には、以下のようにすることもできます。(FTPなども同様)
73</p>
74
75<pre class="screen">
76rpm http://hostname/pub Test/i386 main
77rpm-src http://hostname/pub Test/i386 main
78</pre>
79
80<h2>フラットなディレクトリ構成</h2>
81<p>
821つのアーキテクチャのバイナリしか置かない場合には、
83バイナリパッケージディレクトリ RPMS.main とソースパッケージディレクトリ
84SRPMS.main を置く階層を同一にすることもできます。
85この場合は、以下のように "--flat"
86オプションをつけることで同一階層にすることができます。</p>
87<pre class="screen">
88[daisuke@hoge /home/ftp/pub]$ find .
89.
90./Test/SRPMS.main
91./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
92./Test/RPMS.main
93./Test/RPMS.main/hoge-1.0-0vl1.i386.rpm
94</pre>
95<pre class="screen">
96[daisuke@hoge /home/ftp/pub]$ genbasedir --flat /home/ftp/pub/Test
97Creating base directory... done
98Components: main
99Processing pkglists... main [done]
100Processing srclists... main [done]
101Creating component releases... main [done]
102Creating global release file... [done]
103Appending MD5Sum... main [done]
104All your base are belong to us!!!
105</pre>
106<pre class="screen">
107[daisuke@hoge /home/ftp/pub]$ find .
108.
109./Test/base
110./Test/base/pkglist.main
111./Test/base/pkglist.main.bz2
112./Test/base/release.main
113./Test/base/release
114./Test/base/srclist.main
115./Test/base/srclist.main.bz2
116./Test/RPMS.main
117./Test/RPMS.main/hoge-1.0-0vl1.i386.rpm
118./Test/SRPMS.main
119./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
120</pre>
121
122<p>
123ユーザとして見た場合は、apt-line にはアーキテクチャを指定しないため、
124以下のような設定になります。
125</p>
126<pre class="screen">
127rpm file:/home/ftp/pub Test main
128rpm-src file:/home/ftp/pub Test main
129</pre>
130
131<h2>複数コンポーネントによる構成</h2>
132<p>
133コンポーネント ( Vine Linux でいう main や plus など) を複数用意したい場合は
134ディレクトリを複数用意しましょう。
135genbasedir コマンドは自動的にすべてのコンポーネントを見付けてリポジトリを構築してくれます。
136suffix にコンポーネント名を付けることに注意しましょう。
137</p>
138<pre class="screen">
139[daisuke@hoge /home/ftp/pub]$ find .
140.
141./Test/SRPMS.main
142./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
143./Test/SRPMS.test
144./Test/SRPMS.test/fuga-1.0-0vl1.src.rpm
145./Test/RPMS.main
146./Test/RPMS.main/hoge-1.0-0vl1.i386.rpm
147./Test/RPMS.test
148./Test/RPMS.test/fuga-1.0-0vl1.i386.rpm
149</pre>
150<pre class="screen">
151[daisuke@hoge /home/ftp/pub]$ genbasedir --flat /home/ftp/pub/Test
152Creating base directory... done
153Components: main
154Processing pkglists... main test [done]
155Processing srclists... main test [done]
156Creating component releases... main test [done]
157Creating global release file... [done]
158Appending MD5Sum... main test [done]
159All your base are belong to us!!!
160</pre>
161<pre class="screen">
162[daisuke@hoge /home/ftp/pub]$ find .
163.
164./Test/base
165./Test/base/pkglist.main
166./Test/base/pkglist.main.bz2
167./Test/base/pkglist.test
168./Test/base/pkglist.test.bz2
169./Test/base/release.main
170./Test/base/release.test
171./Test/base/release
172./Test/base/srclist.main
173./Test/base/srclist.main.bz2
174./Test/base/srclist.test
175./Test/base/srclist.test.bz2
176./Test/SRPMS.main
177./Test/SRPMS.main/hoge-1.0-0vl1.src.rpm
178./Test/SRPMS.test
179./Test/SRPMS.test/fuga-1.0-0vl1.src.rpm
180./Test/RPMS.main
181./Test/RPMS.main/hoge-1.0-0vl1.i386.rpm
182./Test/RPMS.test
183./Test/RPMS.test/fuga-1.0-0vl1.i386.rpm
184</pre>
185
186<p>
187ここでは main と test の2つのコンポーネントを用意してみました。
188apt-line では以下のように記述します。
189</p>
190<pre class="screen">
191rpm file:/home/ftp/pub Test/i386 main test
192rpm-src file:/home/ftp/pub Test/i386 main test
193</pre>
194
195<h2>その他のオプション</h2>
196<p>
197genbasedir には他にも以下のようなオプションがあります。
198いくつか簡単に紹介しておきましょう。
199</p>
200
201<dl>
202<dt>-s, --sign</dt>
203<dd>
204<p>
205リポジトリに GnuPG で署名する。使用する鍵IDは "--default-key=ID"
206オプションで指定します。署名されたリポジトリにアクセスするには、
207apt-line に、</p>
208<pre class="screen">rpm [vine] file:/home/ftp/pub Test/i386 main</pre>
209<p>等と指定し、/etc/apt/vendors.list に fingerprint と ID との対応を
210記述します。
211</p>
212</dd>
213
214<dt>--hashonly</dt>
215<dd>
216hash ファイルのみ更新する。
217</dd>
218
219<dt>--listonly</dt>
220<dd>
221pkglists と srclists のみを作成する。
222</dd>
223
224<dt>--bz2only</dt>
225<dd>
226pkglist/srclist/release ファイルを bzip2 圧縮されたもののみを作成します。
227通常このオプションを指定しておいて問題ないでしょう。
228</dd>
229
230<dt>--progress</dt>
231<dd>
232リポジトリ作成過程のプログレスバーを表示する。
233</dd>
234
235<dt>--bloat</dt>
236<dd>
237リポジトリのパッケージデータに完全なファイルリストを収録します。
238ファイル依存の解決に必要な場合がありますが、Vine Linux では推奨していません。
239</dd>
240</dl>
Note: See TracBrowser for help on using the repository browser.