Mkimage/FAQ: различия между версиями

Материал из ALT Linux Wiki
м (fs.protected_hardlinks)
м (спасибо iv@)
 
(не показаны 3 промежуточные версии этого же участника)
Строка 17: Строка 17:
'./rescue' -> '.../rescue/.work/.out/rescue'
'./rescue' -> '.../rescue/.work/.out/rescue'
cp: cannot create hard link '.../rescue/.work/.out/rescue' to './rescue': Operation not permitted</pre>
cp: cannot create hard link '.../rescue/.work/.out/rescue' to './rescue': Operation not permitted</pre>
'''A:''' это protected hardlinks в Linux 3.6+; следует обновить {{pkg|mkimage}} до [http://lists.altlinux.org/pipermail/sisyphus/2013-October/361584.html 0.2.9] или выше и установить {{pkg|mkimage-preinstall}}, что отключит эту включенную по умолчанию фичу (она скорее полезна в общем случае, но для целей сборки образов [http://lists.altlinux.org/pipermail/sisyphus/2014-April/362278.html недостатки перевешивают]).
'''A:''' это protected hardlinks в Linux 3.6+; следует обновить {{pkg|mkimage}} до [http://lists.altlinux.org/pipermail/sisyphus/2013-October/361584.html 0.2.9] или выше и установить {{pkg|mkimage-preinstall}}, что отключит эту включенную по умолчанию фичу (она скорее полезна в общем случае, но для целей сборки образов [http://lists.altlinux.org/pipermail/sisyphus/2014-April/362278.html недостатки перевешивают]); см. тж. {{altbug|30351}}.
 
'''Q:''' сборка прерывается с таким:
<pre>
fakeroot: database save FAILED
[...]
'./.gitignore' -> '/.image/.gitignore'
cp: cannot create regular file '/.image/.gitignore': Permission denied
make[2]: *** [copy-tree] Error 1
</pre>
'''A:''' возможно, применяются несколько пар hasher number и автоугадав делает разный выбор для инструментального и рабочего чрутов, между которыми и выполняется копирование; если это так, следует задать подходящий номер как значение переменной GLOBAL_HSH_NUMBER в файле {{path|~/.mkimage/profiles.mk}} в явном виде.
 
Также [http://lists.altlinux.org/pipermail/devel-distro/2023-May/002910.html характерна] диагностика:
chgrp: changing group of '.': Operation not permitted
chgrp: changing group of 'dev': Operation not permitted

Текущая версия от 08:27, 5 июня 2023


Q: чем различаются image-scripts.d и scripts.d?

A: image-scripts.d/* выполняются в chroot собранной стадии; scripts.d/* — в инструментальном chroot-е после установки пакетов и до архивации результата, что позволяет копировать файлы из/в chroot; см. тж. README.ru.


Q: как задать для сборки другой репозиторий?

A: придётся оформить дополнительную пару apt.conf+sources.list.


Q: как подсунуть репозиторий с пакетом другой версии?

A: если он заведомо старше по версии — просто добавить в соответствующий sources.list; если младше или неизвестно, но надо именно этот — придётся добавить в системный /etc/apt/preferences или частный файлик, указанный в Dir::Etc::preferences; см. тж. downgrade и apt_preferences(5).


Q: сборка прерывается с EPERM, это что за новости?

mki-copy-our2out: has started executing.
'./rescue' -> '.../rescue/.work/.out/rescue'
cp: cannot create hard link '.../rescue/.work/.out/rescue' to './rescue': Operation not permitted

A: это protected hardlinks в Linux 3.6+; следует обновить mkimage до 0.2.9 или выше и установить mkimage-preinstall, что отключит эту включенную по умолчанию фичу (она скорее полезна в общем случае, но для целей сборки образов недостатки перевешивают); см. тж. altbug #30351.

Q: сборка прерывается с таким:

fakeroot: database save FAILED
[...]
'./.gitignore' -> '/.image/.gitignore'
cp: cannot create regular file '/.image/.gitignore': Permission denied
make[2]: *** [copy-tree] Error 1

A: возможно, применяются несколько пар hasher number и автоугадав делает разный выбор для инструментального и рабочего чрутов, между которыми и выполняется копирование; если это так, следует задать подходящий номер как значение переменной GLOBAL_HSH_NUMBER в файле ~/.mkimage/profiles.mk в явном виде.

Также характерна диагностика:

chgrp: changing group of '.': Operation not permitted
chgrp: changing group of 'dev': Operation not permitted