web-dev-qa-db-ja.com

複数のバージョンをサポートできるプライベートaptリポジトリを設定するにはどうすればよいですか?

複数のバージョンをサポートできるプライベートaptリポジトリ(10.04 LTS)のセットアップ方法を探しています。

サーバーには複数のバージョンのパッケージをインストールできないことを理解しています。これは、複数のバージョンを本番aptリポジトリにリリースする前にテストできるようにする開発環境専用です。

パッケージ名にバージョン番号を入れることで複数のバージョンを持つことができますが、同じパッケージ名の複数のバージョンをサポートする反対のことを実現したいと思います。

例えばpackagename-1.0_1.0_all.debおよびpackagename-2.0_2.0_all.debではなく、packagename_1.0_all.debおよびpackagename_2.0_all.deb

Puppetの自動化に慣れている人のために-サーバー上で必要なパッケージのバージョンを指定できます(同じパッケージ名を使用するensureタグを使用)。

http://wiki.debian.org/HowToSetupADebianRepository で説明されているGoogleのdebmarshalを試しましたが、ドキュメントがないために動作しませんでした。

9
Tom

私はあなたと同じ理由でマルチバージョンのレポジトリが必要でしたが、これが最終的なものです:

apt-get install Apache2 dpkg-dev
mkdir -p /var/www/repo/binary

次に、update-repo.shを作成して、パッケージの情報でリポジトリを更新します

#!/bin/bash
cd /var/www/repo
dpkg-scanpackages -m binary /dev/null | gzip -9c > /var/www/repo/binary/Packages.gz

.debファイルを/ var/www/repo/binaryに配置し、update-repo.shを実行します

残りのマシンでは:

echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update

などなど...

この魔法は、dpkg-scanpackagesを実行するときに-mが原因で発生します。 -mがない場合、Packages.gzには1つのバージョンのみがリストされます

試したことはありませんが、hbdgafが提案したように、別々のサブレポジトリに対して同じことを行うのは簡単なはずです。

7
dtsomp

別のディストリビューション名でホストします。たとえば明快でテスト。次に、テストボックスのエントリを変更します
from:deb http://homegrown.local/ubuntu lucid main
to:deb http://homegrown.local/ubuntu testing main

3
RobotHumans