ローカルパッケージリポジトリでは、通常のapt-get
コマンド(sources.listにリポジトリが追加されていると想定)でソフトウェアとこのソフトウェアをインストールするクライアントを格納できる、サーバー上のソフトウェアと構成のセットを参照します。
ローカルパッケージリポジトリを作成するために、私はこの tutorial に従いました。
1- .debを生成するには、ソフトウェアファイルが必要です。メタデータを含むDEBIANフォルダーが生成され、次のコマンドでジョブを実行します。
dpkg-deb --build <software folder with DEBIAN>
2-この部分は非常に無関係なのでスキップします
3-現在のディレクトリが.deb
のApacheフォルダーである場合、次を呼び出します。
dpkg-scanpackages debian /dev/null | gzip -9c > debian/Packages.gz
クライアントマシン上でapt-get update
を呼び出すと、次のような問題が発生します。
W:リポジトリ ' http://example.com packages /リリース'にはリリースファイルがありません。
このファイルはローカルストアに事実上存在せず、チェックサムのレジスタのように見えます。しかし、インターネットで検索した後、トピックについての理解が低いため、それを生成する方法を見つけることができませんでした。
注:sources.listには次の行があります。
deb http://example.com packages/
ローカルパッケージリポジトリのRelease
ファイルを生成するにはどうすればよいですか?
これに対処するにはいくつかの方法があります。 apt-ftparchive
を使用します。
リポジトリのルートにaptftp.conf
ファイルを作成します。
APT::FTPArchive::Release {
Origin "Your Origin";
Label "Your label";
Suite "unstable";
Codename "sid";
Architectures "AMD64 i386 source";
Components "main";
Description "Your description";
};
適切な値を使用して(少なくとも「Origin」、「Label」、「Description」を変更し、「Architectures」を調整して、ホストするバイナリと一致させます)。
一致するaptgenerate.conf
ファイルを一緒に作成します。
Dir::ArchiveDir ".";
Dir::CacheDir ".";
TreeDefault::Directory "pool/";
TreeDefault::SrcDirectory "pool/";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Sources::Compress ". gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/unstable/main/binary-AMD64" {
Packages "dists/unstable/main/binary-AMD64/Packages";
Contents "dists/unstable/Contents-AMD64";
SrcPackages "dists/unstable/main/source/Sources";
};
BinDirectory "dists/unstable/main/binary-i386" {
Packages "dists/unstable/main/binary-i386/Packages";
Contents "dists/unstable/Contents-i386";
SrcPackages "dists/unstable/main/source/Sources";
};
Tree "dists/unstable" {
Sections "main"; # contrib non-free";
Architectures "AMD64 i386 source";
};
(不要な場合はi386
を削除します)。
リポジトリで、データベースをクリアします。
rm -f packages-i386.db packages-AMD64.db
パッケージカタログを生成します。
apt-ftparchive generate -c=aptftp.conf aptgenerate.conf
Release
ファイルを生成します。
apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release
署名する:
gpg -u yourkeyid -bao dists/unstable/Release.gpg dists/unstable/Release
gpg -u yourkeyid --clear-sign --output dists/unstable/InRelease dists/unstable/Release
(yourkeyid
の代わりに適切なIDを使用)。
リポジトリに変更を加える場合は常に、手順3〜6を再度実行する必要があります。