Вот моя проблема. Я хочу Varnish 3.0, но в Lucid доступен только пакет 2.1.
Итак, с помощью Chef мне нужно создать рецепт установки, который добавляет репозиторий varnish-cache.org к исходным текстам apt и устанавливает пакет varnish-3.0.
(У меня есть возможность собрать его из исходного кода (верно?), Но если я это сделаю, я не получу скрипты /etc/init.d (верно?)).
Итак, я пишу рецепт apt_install.rb, который предположительно добавляет репозиторий:
apt_repository "varnish-3.0" do
uri "http://repo.varnish-cache.org/ubuntu/"
repo_name "varnish-3.0"
distribution "lucid"
components ["varnish-3.0"]
key "http://repo.varnish-cache.org/debian/GPG-key.txt"
deb_src true
action :add
end
И действительно, это добавляет varnish-3.0-source.list в /etc/apt/sources.list.d, в котором говорится:
# Created by the Chef apt_repository LWRP
deb http://repo.varnish-cache.org/ubuntu/ lucid main
Тогда у меня есть
package "varnish" do
source "http://repo.varnish-cache.org/ubuntu/"
action :install
end
который приступает к установке на мой сервер версии 2.1, а не 3.0.
Если я укажу «версию» в блоке пакета, я получаю «версия не найдена».
Что мне здесь не хватает? Это должно быть что-то простое.
Моей самой большой проблемой была старая версия удачной кулинарной книги. Даже в этом случае названия дистрибутивов Varnish немного необычны. Вот мой конфиг:
apt_repository "varnish-3.0" do
uri "http://repo.varnish-cache.org/ubuntu/"
repo_name "varnish-3.0"
distribution "lucid"
components ["varnish-3.0"]
key "varnish-cache.org.gpg-key.txt"
deb_src true
action :add
end
package "varnish" do
source "http://repo.varnish-cache.org/ubuntu/"
version "3.0.2-1~1lucid1"
options "--force-yes"
action :install
end
Ключ репозитория включен в виде файла поваренной книги.
При запуске этого рецепта поверх существующей установки Varnish 2.3 первый запуск chef-client завершается ошибкой при попытке работать с диалоговыми окнами обновленного файла конфигурации apt. В моем случае второй шеф-клиент выполняет чистку и правильно.
Я думаю, что метод, на который ответил OP, является правильным.
Однако, если по той или иной причине это неприемлемо, вы могли бы также создать свой собственный пакет .deb из исходного кода.
Лично я вместо того, чтобы использовать каждый пакетный менеджер в разных вариантах Crazy, я использую FPM Джордана Сисселя. FPM упрощает создание различных вариантов пакетов, а документация проведет вас по конкретным примерам, таким как Вариант использования - упакуйте что-нибудь, что использует make install.
(Личное примечание: это было отличное использование для Бродяга.)