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

Revision 1284, 7.3 KB checked in by daisuke, 14 years ago (diff)

Initial import

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