Разделение пакетов Debian. Какими должны быть их отношения?

Предполагая, что уровень патча всегда будет строкой из четырех цифр:

$ ver=1.2.0001
$ printf '%s\n' "$ver" | awk -F '.' '{ printf("%s.%s.%04d\n", $1, $2, $3 + 1) }'
1.2.0002

Здесь используется awkи интерпретируется версия как три поля, разделенные точками. Он печатает первые два поля как есть, но добавляет 1 к третьему полю и форматирует результат, используя%04d(заполненное нулем -четырехзначное десятичное число ).

Это сгенерирует 1.2.10000, если $verравно 1.2.9999.

Чтобы сохранить значение обратно в ver, используйте ver=$( printf... | awk... ).

1
14.05.2021, 15:41
1 ответ

Политика Debian предоставляет пример, где fooразбит на fooи foo-data. Это ситуация, которая применима здесь.

На самом деле мы не должны заменять fooпакетом Provides:, как ожидалось. Это связано с тем, что при добавлении Provides: fooк foo1и foo2любой из пакетов будет удовлетворять bar, в то время как в действительности bar, вероятно, зависит от содержимого foo1или foo2, но не любого из них произвольно.. Следовательно, выполнение fooозначает, что вам нужно foo1И foo2. Вы можете сделать это, только еслиfooDepends: foo1, foo2.

Таким образом, исходный управляющий файл должен выглядеть так:

Source: libfoo
Maintainer: Stewart <stewart@unix.stackexchange.com>
Build-Depends: debhelper-compat (= 11)

Package: foo
Architecture: all

Package: bar
Architecture: all
Depends: foo

Отсюда, dpkg -i foo_1.0.0_all.deb bar_1.0.0_all.debдля установки начальных условий. Затем измените свой управляющий файл на этот:

Source: libfoo
Maintainer: Stewart <stewart@unix.stackexchange.com>
Build-Depends: debhelper-compat (= 11)

Package: foo
Architecture: all
Depends: foo1, foo2

Package: foo1
Architecture: all
Breaks: foo (<< 1.1)
Replaces: foo (<< 1.1)

Package: foo2
Architecture: all
Breaks: foo (<< 1.1)
Replaces: foo (<< 1.1)

Package: baz
Architecture: all
Depends: foo1, foo2

Затем соберите это, и вы обнаружите, что при установке/обновлении foo, foo1, foo2и bazвсе они будут установлены правильно и не сломаются bar.

2
28.07.2021, 11:32

Теги

Похожие вопросы