Я использую Ubuntu 10.04 во всей своей среде. Чтобы упростить развертывание кода, мы реализуем частный репозиторий APT, в котором мы можем развертывать сборки нашего кода.
Одним из требований этого репозитория будет то, что наш отдел контроля качества сможет установить любую версию нашего приложения в любое время.
Могу ли я хранить несколько версий одного и того же пакета в apt-репозитории (желательно в одном и том же дистрибутиве)? Если нет, то каковы возможные обходные пути, которые я мог бы использовать для получения описанного выше поведения?
Да, можно, и ничего особенного делать не нужно. Фактически, в обычных репозиториях Debian и Ubuntu обычно есть несколько версий каждого пакета (из oldstable / stable / testing / unstable или dapper / hardy / lucid / maverick / natty). Дистрибутивы содержат только один пакет в индексном файле каждой версии ( Packages
files), но вам не обязательно следовать их примеру.
Конечно, apt-get install myapp
установит только последнюю версию (если не настроено иное). Вы можете запустить apt-get install myapp=1.42
для принудительной установки версии 1.42.
Предостережение: если все версии имеют одно и то же имя пакета, вы не можете установить более одного пакета одновременно. Если это важно, дайте каждой версии другое имя пакета: myapp-1.42
, myapp-1.43
и т.д. Debian и Ubuntu делают это для основных версий библиотек, где вам может понадобиться более одной, если у вас есть исполняемые файлы, связанные с разными библиотеками (например, libcap1
и libcap2
), а также для некоторых других пакетов, таких как ядро.