[devel] hasher: пакеты, установленные по зависимостям

Антон Мидюков midyukov-anton на ya.ru
Вс Окт 27 15:35:04 MSK 2024


27.10.2024 15:23, Alexey Gladkov пишет:
> 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'ом.
> 

Нет, в install_pkgs будет xterm, а xvt не будет.
Если xvt предоставляется несколькими пакетами, то все они попадут в install_pkgs.
xterm помечается, как manual. Я проверил.
--whatprovides заменяет виртуальные пакеты реальными.

-- 
С уважением, Антон Мидюков <antohami на altlinux.org>


Подробная информация о списке рассылки Devel