[devel] hasher: пакеты, установленные по зависимостям
Alexey Gladkov
legion на altlinux.ru
Вс Окт 27 15:37:58 MSK 2024
On Sun, Oct 27, 2024 at 01:23:48PM +0100, Alexey Gladkov wrote:
> On Sat, Oct 26, 2024 at 05:19:50PM +0300, Антон Мидюков wrote:
> > Но идея с развиртуализацией работает. Спасибо!
> >
> > У меня получился такой код:
> >
> > diff --git a/tools/mki-install b/tools/mki-install
> > index 8c8cad3..ac23f76 100755
> > --- a/tools/mki-install
> > +++ b/tools/mki-install
> > @@ -19,3 +19,12 @@ hasher_args="$verbose $quiet ${HSH_EXCLUDE_DOCS:+--excludedocs} ${HSH_NUMBER:+--
> >
> > mki_list_pkgs "$@" |
> > xargs -r env -i PATH="$PATH" hsh-install $hasher_args -- "$dir"
> > +
> > +hsh-run --rooter -- "$dir" rpm -q apt || exit 0
> > +hsh-run --rooter -- "$dir" rpm -q --whatprovides --queryformat "%{NAME}\n" \
> > + $(mki-expand-pkgs regexp $(mki_list_pkgs "$@")) |
> > + sort -u > "$TMP"/install_pkgs
> > +hsh-run --rooter -- "$dir" rpm -qa --queryformat "%{NAME}\n" |
> > + sort -u > "$TMP"/all_pkgs
> > +hsh-run --rooter -- "$dir" apt-mark auto \
> > + $(comm -23 "$TMP"/all_pkgs "$TMP"/install_pkgs)
>
> Но меня всё ещё кое-что смущает. В install_pkgs оказывается изначальный
> список пакетов плюс виртуальные provides. Там не будет пакетов, которые
> выберет apt для этих виртуальных пакетов. Например в изначальном списке
> есть xvt, но будет xterm, который обычно вытягивается. После `rpm -q` мы
> уберём виртуальное имя xvt т.к. это не настоящее имя пакета.
>
> Получается, что после comm xterm, который установится по xvt будет помечен
> auto, а это не то, что ты хочешь, кажется.
>
> В install_pkgs необходимо добавить те пакеты, которые будут выбраны
> apt'ом.
Кажется должно быть как-то вот так:
mki-expand-pkgs regexp "$@" |
xargs -r hsh-run --rooter -- "$dir" rpm -q --qf='%{NAME}\n' |
>"$tempdir/install_pkgs"
"$aptbox/apt-get" -s install "$@" |
sed -nr -e 's#^Selecting ([^ ]+) for .*#\1#p' >>"$tempdir/install_pkgs"
sort -uo "$tempdir/install_pkgs" "$tempdir/install_pkgs"
hsh-run --rooter -- "$dir" rpm -q --all --qf='%{NAME}\n' |
sort -u |
comm -23 - "$tempdir/install_pkgs" |
xargs -r hsh-run --rooter -- "$dir" apt-mark auto
--
Rgrds, legion
Подробная информация о списке рассылки Devel