質問: ローカルパッケージリポジトリに `release`ファイルを生成するにはどうすればよいですか? コンテキストローカルパッケージリポジトリでは、通常のapt-getコマンド(sources.listにリポジトリが追加されていると想定)でソフトウェアとこのソフトウェアをインストールするクライアントを格納できる、サーバー上のソフトウェアと構成のセットを参照します。ローカルパッケージリポジトリを作成するために、私はこの tutorial に従いました。 .debを生成する apache2サーバーに.debを保存します package.gzファイルを生成する 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を再度実行する必要があります。