Автор Тема: mkimage (dependence)  (Прочитано 13506 раз)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
mkimage (dependence)
« : 02.06.2010 15:22:37 »
у меня вопрос по mkimage

Читал я документацию на виках. (http://www.altlinux.org/Mkimage/Profiles/Desktop)
Пробовал собирать. (http://forum.altlinux.org/index.php/topic,7124.msg99624.html#msg99624)
столкнулся с тем, что много чего не описано.

меня интересует вот что - какие пакеты необходимы для того чтобы дистрибутив собрался

- mkimage - понятно

а еще?

installer нужен?
alterator нужен?

Если можно ответьте списком необходимых пакетов.

Задача у меня - собрать дистрибутив (напривмер, по готовому профилю desktop) со своим набором ПО и со своими же настройками (у меня нетипичный набор аппаратной части).

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: mkimage (dependence)
« Ответ #1 : 02.06.2010 15:29:20 »
Список пакетов формируется в профилях. Самый рабочий сейчас - mkimage-profiles-desktop. Ставьте этот пакет и получите всё для сборки.
Андрей Черепанов (cas@)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #2 : 02.06.2010 15:31:42 »
понял. Буду пробовать. Напишу что получилось

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #3 : 02.06.2010 16:51:59 »
делаю: hasher-useradd romka
создает пользователя.

потом как в инструкции
mkdir -p ~/git
cd ~/git
git clone git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop
cp -a ~/git/mkimage-profiles-desktop/ $TMP/mkimage-profiles-desktop/
cd $TMP/mkimage-profiles-desktop/
git checkout p5
autoconf
./configure
nice time make rescue.cd

получаю:

or i in profiles/{,install2/,main/,live/,addon/}stage-autocfg.mk; do :>$i; done
rm -f profiles/autocfg.mk
make profiles/autocfg.mk
make[1]: Entering directory `/home/romka/git/mkimage-profiles-desktop'
Creating new toplevel configuration file profiles/autocfg.mk...
make[1]: Leaving directory `/home/romka/git/mkimage-profiles-desktop'
echo GLOBAL_BASE_PACKAGE_LISTS+='nm' >> "profiles/main/stage-autocfg.mk"
echo GLOBAL_LIVE_PACKAGE_LISTS+='nm' >> "profiles/live/stage-autocfg.mk"
*** added nm to main/live
--- Building live-cd.iso
Set MKI_OUTNAME to live-cd.iso in file profiles/autocfg.mk:
test -f "profiles/autocfg.mk" && sed -i '/^[[:space:]]*MKI_OUTNAME[[:space:]]*=/d' -- "profiles/autocfg.mk";
printf '%s\n' "MKI_OUTNAME = live-cd.iso" >> "profiles/autocfg.mk"
setarch i586 make -C profiles
make[1]: Entering directory `/home/romka/git/mkimage-profiles-desktop/profiles'
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к .work/chroot/.image/ALTLinux/: Нет такого файла или каталога
mki-invalidate-cache: CACHEDIR: /home/romka/git/mkimage-profiles-desktop/profiles/.work/.cache: directory not available.
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к .work/chroot/.image/ALTLinux/: Нет такого файла или каталога
CHROOT_PACKAGES=apt-utils rsync kernel-image-std-def memtest86+ branding-altlinux-desktop-bootloader branding-altlinux-desktop-bootsplash syslinux findutils bootsplash branding-altlinux-desktop-notes pkg/lists/docs
rm -f isofiles/Metadata/pkg-groups.tar
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к .work/chroot/.image/ALTLinux/: Нет такого файла или каталога
make -C pkg all
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к */.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
ls: невозможно получить доступ к .work/chroot/.image/ALTLinux/: Нет такого файла или каталога
make[2]: Entering directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg'
make -C tags clean
make[3]: Entering directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg/tags'
find -type l -delete
make[3]: Leaving directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg/tags'
make -C lists tags
make[3]: Entering directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg/lists'
PKGDIR=/home/romka/git/mkimage-profiles-desktop/profiles/pkg ../../../bin/lists2tags [^M]*
make[3]: Leaving directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg/lists'
make[2]: Leaving directory `/home/romka/git/mkimage-profiles-desktop/profiles/pkg'
make[1]: *** Нет правила для сборки цели `/home/romka/git/mkimage-profiles-desktop/profiles/pkg/lists/.base', требуемой для `isofiles/Metadata/pkg-groups.tar'.  Останов.
make[1]: Leaving directory `/home/romka/git/mkimage-profiles-desktop/profiles'
make: *** [live-cd.iso] Ошибка 2

я так понимаю, дело в том, что файл .work в /usr/share/mkimages/profiles-desktop/profiles/live/

в пользователю romka (не root) туда писать ничего нельзя.
как здесь быть?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: mkimage (dependence)
« Ответ #4 : 02.06.2010 18:39:52 »
При сборке из профиля есть нюансы.
1. Нужно иметь настроенную хэшерницу. Лучше — на tmpfs.
[cas@altair ~]$ cat ~/.hasher/config
# -*- sh -*-
USER=cas
workdir="$TMP"
target=i586
packager="`rpm --eval %packager`"
apt_config="$HOME/.hasher/apt.conf"
mount=/dev/pts,/proc
lazy_cleanup=1
Проверка хэшерницы: hsh --initroot-only2. Не нужно никаких autoconf и configure (тем более без параметров!)
3. Для профиля нужно настроить правильные файлы конфигурации apt (типа, $HOME/Sisyphus-i586.conf). Точные имена увидите в config.log.
3. Сборка профиля:
export archs=i586
./make-distro slinux --with-outdir=/space/office/cas/iso/ --without-docs
или
./make-distro school-server --with-kernel=ovz-smp --with-squashfs-version=3 --with-docs=school-server \
--with-outdir=/space/office/cas/iso/

Андрей Черепанов (cas@)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #5 : 03.06.2010 11:29:10 »
hasher установлен (синаптиком и его там видно в установленных) но:

[romka@BigScreen hasher-1.3.16]$ cat ~/.hasher/config
cat: /home/romka/.hasher/config: Нет такого файла или каталога

[romka@BigScreen hasher-1.3.16]$ whereis hasher
hasher: /usr/share/man/man7/hasher.7.gz

в /home/user/hasher
создались папки
-aptbox
-cache
-chroot
-repo
файл pid

где же конфиг? ((((

hsh - работает. можно даже посмотреть помощь (-h). Но я что то так и не пойму где же конфиг. Что править?

hsh --initroot-only - отрабатывает
« Последнее редактирование: 03.06.2010 11:56:58 от __romka_ »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: mkimage (dependence)
« Ответ #6 : 03.06.2010 18:40:40 »
Берутся значения по умолчанию. ~/.hasher/config я создавал вручную, чтобы контролировать параметры.
Андрей Черепанов (cas@)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #7 : 03.06.2010 19:45:44 »
а как потом hasher заставить ориентироваться именно на нужный (созданный мной) конфиг?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: mkimage (dependence)
« Ответ #8 : 03.06.2010 19:54:48 »
Так он автоматом подхватывается, если лежит в   ~/.hasher/config

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: mkimage (dependence)
« Ответ #9 : 03.06.2010 19:55:51 »
Цитата: man hsh
FILES
       ~/.hasher/config - user config file sourced by  all  hasher  utilities;
       uses shell syntax.

       ~/.hasher/install/post
              -  postinstall  script;  mkchroot  copies  it  into  chroot, and
              install executes the copy at the  end  of  package  installation
              transaction.


Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #10 : 04.06.2010 12:58:29 »
вот такой у меня сейчас файл конфига

USER=romka
workdir="$TMP"
target=i586
packager="`rpm --eval %packager`"
apt_config="~/hasher/aptbox/etc/apt/apt.conf"
mount=/dev/pts,/proc
lazy_cleanup=1


hsh --initroot-only отрабатывает как то странно.... или это нормально:
<86>Jun  4 08:57:27 userdel[12262]: delete user `rooter'
<86>Jun  4 08:57:27 userdel[12262]: remove group `rooter'
<86>Jun  4 08:57:27 groupadd[12263]: new group: name=rooter, gid=502
<86>Jun  4 08:57:27 useradd[12264]: new user: name=rooter, uid=501, gid=502, home=/root, shell=/bin/bash
<86>Jun  4 08:57:27 userdel[12266]: delete user `builder'
<86>Jun  4 08:57:27 userdel[12266]: remove group `builder'
<86>Jun  4 08:57:27 groupadd[12267]: new group: name=builder, gid=503
<86>Jun  4 08:57:27 useradd[12268]: new user: name=builder, uid=502, gid=503, home=/usr/src, shell=/bin/bash

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: mkimage (dependence)
« Ответ #11 : 04.06.2010 17:48:35 »
Вроде нормально. Проверьте переменную $TMP:
echo $TMP
Андрей Черепанов (cas@)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #12 : 07.06.2010 11:06:42 »
echo $TMP

/tmp/.private/romka

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: mkimage (dependence)
« Ответ #13 : 09.06.2010 11:45:05 »
/tmp/.private/romka
Это нормально. пробуйте дистрибутив собирать.
Андрей Черепанов (cas@)

Оффлайн __romka_

  • Завсегдатай
  • *
  • Сообщений: 65
    • Email
Re: mkimage (dependence)
« Ответ #14 : 17.06.2010 16:10:52 »
вот что получается ((((((

[romka@BigScreen profiles-desktop]$ make live.cd
for i in profiles/{,install2/,main/,live/}stage-autocfg.mk; do :>$i; done
rm -f profiles/autocfg.mk
make profiles/autocfg.mk
make[1]: Entering directory `/home/romka/git/profiles-desktop'
Creating new toplevel configuration file profiles/autocfg.mk...
make[1]: Leaving directory `/home/romka/git/profiles-desktop'
echo GLOBAL_BASE_PACKAGE_LISTS+='xorg' >> "profiles/main/stage-autocfg.mk"
Mark target use-xorg as done:
mkdir -p finished.targets;
touch finished.targets/use-xorg
echo GLOBAL_LIVE_PACKAGE_LISTS+='kde-lite' >> "profiles/live/stage-autocfg.mk"
echo GLOBAL_LIVE_PKG_GROUPS+='docs' >> "profiles/live/stage-autocfg.mk"
Mark target use-kde-live as done:
mkdir -p finished.targets;
touch finished.targets/use-kde-live
echo SUBDIRS+=live >> profiles/autocfg.mk
Mark target live as done:
mkdir -p finished.targets;
touch finished.targets/live
--- Building live-cd.iso
Set MKI_OUTNAME to live-cd.iso in file profiles/autocfg.mk:
test -f "profiles/autocfg.mk" && sed -i '/^[[:space:]]*MKI_OUTNAME[[:space:]]*=/d' -- "profiles/autocfg.mk";
printf '%s\n' "MKI_OUTNAME = live-cd.iso" >> "profiles/autocfg.mk"
setarch i586 make -C profiles
make[1]: Entering directory `/home/romka/git/profiles-desktop/profiles'
cat: install2/.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
cat: install2/.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
mki-invalidate-cache: CACHEDIR: /home/romka/git/profiles-desktop/profiles//home/romka/tmp/.work//home/romka/tmp/.cache: directory not available.
/usr/share/mkimage/tools/mki-run-make "live" make -w
cat: install2/.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
cat: install2/.work/chroot/.image/etc/altlinux-release: Нет такого файла или каталога
make[2]: Entering directory `/home/romka/git/profiles-desktop/profiles/live'
mkimage: Processing 'prepare' ...
mki-create-workdir: has started executing.
ln: creating symbolic link `/home/romka/git/profiles-desktop/profiles/live//home/romka/tmp/.work': No such file or directory
make[2]: *** [prepare] Error 1
make[2]: Leaving directory `/home/romka/git/profiles-desktop/profiles/live'
make[1]: *** [live] Ошибка 2
make[1]: Leaving directory `/home/romka/git/profiles-desktop/profiles'
make: *** [live-cd.iso] Ошибка 2

что то недопрописал, навеное. вот только где? ((