Goblin's Diary

バイクで鈴鹿サーキットを走ってます。色々書いています。

簡易版apt-lineの作り方(”LANDISKで漕ぎいでな〜♪”からパクリ)

* /share/www/download/debina26/binary-sh4/の例
外部からWEBアクセスできる場所にbinary-sh4を作る。
(ディレクトリ名は何でも良い)

landisk:~# cd /share/www/download/debian26
landisk:/share/www/download/debian26# mkdir binary-sh4

* 作成したbinary-sh4/の中に、debファイルをひたすらコピーする。

* store_pkg.pl
スクリプトを作成し、実行属性をセットし、binary-sh4内にコピーする。
(本スクリプトは、名前に一貫性のないdebパッケージを、生成元のソースパッケージ名で
グルーピングしてサブディレクトリへ格納、さらに、apt-lineを作成するスクリプトです。)

#!/usr/bin/perl

while (<*deb>){
$file = $_;
$packag="";
$source="";

open (DPKG, "dpkg --info $file |");
while(){
chop;
$line=$_;
$line =~ s/^\s+//;
if($line =~ /^Package:/){
$packag = $line;
$source = $line;
}
if($line =~ /^Source:/){
$source = $line;
}
}
$_ = "$packag $source ";
($dummy1,$packag,$dummy2,$source) = /^(\S+):\s+(\S+)\s+(\S+):\s+(\S+).*$/;
close(DPKG);
# print "$file=*$packag*$source*\n";
if(! -d "./$source"){
print "mkdir ./$source\n";
system("mkdir ./$source");
}
print "mv $file ./$source/\n";
system("mv $file ./$source/");
}

system("apt-ftparchive packages . | gzip -c9 > Packages.gz");

* apt-line作成
binary-sh4にcdして、store_pkg.plを実行すれば出来上がります。

landisk:/share/www/download/debian26# cd binary-sh4
landisk:/share/www/download/debian26/binary-sh4# ./store_pkg.pl

* /etc/etc/apt/sources.list
クライアント側の設定は、こんな感じでOKです。

deb http://localhost/www/download/debian26/binary-sh4/ ./

また、WEBサーバを立てられない場合は、このように直接ファイルを指定する方法もあります。

deb file:/share/www/download/debian26/binary-sh4/ ./

debianの流儀に従ったapt-lineの作り方 Edit

* debootstrap用に公開する場合にはこちらの設定をする必要があります。
”簡易版apt-lineの作り方”を行った後、次のようなディレクトリを作成

landisk:/share/www/download/debian26/binary-sh4# cd ..
landisk:/share/www/download/debian26# mkdir -p dists/sarge/main/binary-sh4/

* mkaptline.pl
スクリプトを作成し、実行属性をセットし、debian26内にコピーする。

#/bin/sh

rm dists/sarge/main/binary-sh4/Packages*
apt-ftparchive packages binary-sh4 > dists/sarge/main/binary-sh4/Packages.tmp
cp dists/sarge/main/binary-sh4/Packages.tmp dists/sarge/main/binary-sh4/Packages
gzip dists/sarge/main/binary-sh4/Packages
mv dists/sarge/main/binary-sh4/Packages.tmp dists/sarge/main/binary-sh4/Packages

rm dists/sarge/Release*
apt-ftparchive \
-o APT::FTPArchive::Release::Origin="kogiidena" \
-o APT::FTPArchive::Release::Label="Unofficial Debian Packages" \
-o APT::FTPArchive::Release::Architectures="sh4" \
-o APT::FTPArchive::Release::Components="main" \
-o APT::FTPArchive::Release::Description="unofficail Debian packages maintained by kogiidena" \
-o APT::FTPArchive::Release::Codename="sarge" \
-o APT::FTPArchive::Release::Suite="sarge" release dists/sarge > dists/sarge/Release

* apt-line作成
debian26へcdして、mkaptline.plを実行すれば出来上がります。

* /etc/etc/apt/sources.list

deb http://localhost/www/download/debian26 sarge main