[Momonga-devel.ja:02583] APTの使い方 (Re: rpm4.2.1への移行手順について)


nosanosaです。

aptを使ってみましたので、分かった範囲で覚え書きを…
まだあんまり使ってないのでとんでもない間違いを言ってる可能性もあります。

HTTP(ftp)でアクセスする場合とローカルでアクセスする場合があります。

■ aptのパッケージを作っていれる

OmoiKondaraでaptを作っていれる

■ レポジトリを作る 

~/.OmoiKondaraにて、
TOPDIR ~/PKGS
と指定してあるとする。

HTTPアクセスすることも考慮して レポジトリを ~/public_html の中に作るとする

□ ディレクトリの整備 (共通)
$ mkdir -p ~/public_html/{i586,noarch,SRPMS}
$ ln -s ~/PKGS/i586 ~/public_html/i586/RPMS.main
$ ln -s ~/PKGS/noarch ~/public_html/noarch/RPMS.main
$ ln -s ~/PKGS/SRPMS ~/public_html/SRPMS/SRPMS.main
$ mkdir -p ~/public_html/SRPMS/RPMS.main

APTの仕様らしいが、<arch-hoge>/RPMS.<category-hoge>の形にしないといけ
ないみたい。一般的にはi586/{RPMS.main,SRPMS.main}の形に作ってバイナリ
パッケージがを(i586,noarchをふくめて)RPMS.mainに、src.rpmをSRPMS.main
に入れるのが普通のようだが、上の例のように分けてしまっても動いた。
(Momongaの場合は分けたほうが都合がよいかと)

ただし、RPMS.mainのみのディレクトリはOKだが、SRPMS.mainのみのディレク
トリはダメみたい(genbasedirでエラーになる)なので SRPMS に対しては空ディ
レクトリのRPMS.mainを作っておく。

□ データベースを作る (http公開する場合のみ)

$ genbasedir --progress --flat --bz2only ~/public_html/i586 main
$ genbasedir --progress --flat --bz2only ~/public_html/noarch main
$ genbasedir --progress --flat --bz2only ~/public_html/SRPMS main

これによって ~/public_html/i586/baseなどのディレクトリができる

■ 設定ファイル

/etc/apt/sources.listを編集する

(HTTPでアクセスする場合 ホストがlocalhostとして)

rpm http://localhost/~hoge/ i586 main
rpm http://localhost/~hoge/ noarch main
rpm-src http://localhost/~hoge/ SRPMS main

(ローカルなファイルとして利用する場合)

rpm-dir file:///home/hoge/public_html i586 main
rpm-dir file:///home/hoge/public_html noarch main
rpm-src-dir file:///home/hoge/public_html SRPMS main

~hoge/ SRPMS main というように空白が必要

HTTPでアクセスする場合、パッケージが更新された場合は genbasedir で
データベースを更新しないといけない。

rpm-dirという指定をすることでローカルなファイルとして利用することがで
きる。このばあい、データベース(genbasedir)は不要。ただし apt-get 
installするたびに直接RPMパッケージから情報を読みこんでデータベースを作っ
ているらしく遅い。(データベース更新の手間はなくなるが)

■ ???
/etc/apt/vendors.listがあるとエラーに…
# mv /etc/apt/vendors.list /etc/apt/vendors.list.orig

■ 利用してみる

$ su
# apt-get update 
# apt-get install hoge

又は
# apt-get update
# apt-get upgrade

どこかの依存関係がおかしいとエラーがでて -f オプションを使えというメッ
セージがでてくることがある。そのばあいは
# apt-get -f install hoge
としたら良いみたい。

以上です。

間違ってたら指摘をお願いします。

参考文献
New features in APT-RPM (http://lwn.net/Articles/60650/);
Small http based aptrepository howto (http://apt4rpm.sourceforge.net/web-apt-rep.html);
Apt repository setup instructions (http://freshrpms.net/apt/server/);