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


10

複数のバージョンをサポートできるプライベート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の自動化された導入に詳しい方のために、サーバーに必要なパッケージのバージョンを指定できます(同じパッケージ名を使用するタグを確認してください)。

http://wiki.debian.org/HowToSetupADebianRepositoryに記載されているGoogleのdebmarshalを試してみましたが、ドキュメントが不足しているため機能しませんでした。

回答:


9

私はあなたのような同じ理由でマルチバージョンのリポジトリを必要としていました、そしてこれは私が結局終わったものです:

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

などなど...

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

私は試していませんが、hbdgafが提案するように、個別のサブリポジトリに対して同じことをするのは簡単なはずです。


1
-mスイッチであなたの答えに出くわすまで、私はたくさんの周りを検索しました。本当にありがとう!
Mario Tacke

3

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.