[make-initrd] Проверка версии make-initrd

Leonid Krivoshein klark.devel at gmail.com
Thu Jul 1 16:59:52 MSK 2021



01.07.2021 16:44, Антон Мидюков пишет:
> 01.07.2021 20:32, Alexey Gladkov пишет:
>> On Thu, Jul 01, 2021 at 02:11:58PM +0300, Leonid Krivoshein wrote:
>>> Всем привет!
>>>
>>>
>>> Сейчас в bootchain есть такой код:
>>>
>>> initrd_version()
>>> {
>>>          [ ! -s /etc/initrd-release ] ||
>>>                  . /etc/initrd-release
>>>          local __version="${VERSION_ID-}"
>>>          printf '%s' "INITRAMFS${__version:+ $__version}"
>>> }
>>>
>>> Он используется следующим образом в том же демоне:
>>>
>>> ...
>>> exec >"$BC_LOGFILE" 2>&1
>>> message "Starting server [$(initrd_version)]..."
>>> ...
>>>
>>> В логах это обычно выглядит так:
>>>
>>> -----
>>> Starting server [INITRAMFS 2.16.0]...
>>> ...
>>> -----
>>>
>>> На регулярках MATE сейчас почему-то вылазит совсем иное:
>>>
>>> -----
>>> Starting server [INITRAMFS 9.1]...
>>> ...
>>> -----
>>>
>>> Понятно, что вопрос к m-p, а не make-initrd, видимо в initramfs попадает
>>> какой-то другой /etc/initrd-release.
>>>
>>> Кроме логов проверка версии может быть полезна для реализации фрагментов
>>> кода по-разному, в зависимости от версии make-initrd.
>> Похоже кто-то в момент выполнения переопределяет $(VERSION). Ты можешь
>> показать "битый" /etc/initrd-release ?
>>
> Я могу:
> ID=make-initrd
> VERSION_ID=2.19.1
> NAME="make-initrd"
> VERSION="9.1  make-initrd-2.19.1"
> PRETTY_NAME="ALT Workstation K 9.1  (Centaurea Pineticola) make-initrd-2.19.1 (Initramfs)"
> ANSI_COLOR="0;34"

У меня пакетная база в зеркале чуть старее и вывод сейчас такой:

NAME="ALT"
VERSION="9.1"
ID=altlinux
VERSION_ID=9.1
PRETTY_NAME="ALT Workstation K 9.1  (Centaurea Pineticola)"
ANSI_COLOR="0;33"
...


При этом я проверил, что /etc/initrd-release перед запуском make-initrd 
в образ не попадает при сборке. Какая-то хитрая фича make-initrd от K-9.1?


-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list