Участие в Cooker

Материал из Mandriva Russian Community Wiki.

(Перенаправлено с Development/Howto/Participate)
Перейти к: навигация, поиск
Как принять участие в проекте Mandriva Cooker

Текущее состояние: в процессе разработки.

2008.1 Spring — текущий стабильный релиз Mandriva Linux. Cooker-версия находится в активной разработке для следующего релиза Mandriva Linux.

Содержание

[править] Вступление

Один из самых слабых моментов в разработке Mandriva Linux — нехватка пользователей, вовлечённых в процесс бета-тестирования и отладки нового релиза. После продолжительных дискуссий на эту тему в списке рассылки Cooker быстро пришли к выводу: сообщество Mandriva не понимает, как работает проект Cooker. Дело в том, что время тестирования бета-релиза Mandriva составляет почти три месяца, но большинство пользователей предпочитают не вмешиваться в его разработку до его завершения, поэтому у них складывается впечатление, что время тестирования слишком мало.

Целью данного документа является предоставить заинтересованным пользователям требуемую информацию для вовлечения в процесс тестирования следующего по графику релиза. Это позволит наладить обратную связь между пользователями и разработчиками Mandriva.

Пользователи часто устанавливают второй релиз-кандидат, а затем отправляют сообщения в список рассылки Cooker или в Bugzilla с просьбами (а порой и с требованиями) добавить дополнительные возможности к текущему разрабатываемому релизу. К сожалению, к этому времени уже поздно добавлять дополнительные возможности или новое программное обеспечение. Если вас это заинтересовало, то представленная в этом документе информация будет очень полезна.

[править] Что такое Cooker

Разрабатываемая версия следующего релиза Mandriva Linux называется Cooker. Цель Cooker — улучшить дистрибутив Mandriva Linux путём тесного взаимодействия между пользователями и разработчиками во время отладки, оттестировать и добавить новые возможности.

Будьте внимательны: термин Cooker используется равнозначно как для списка рассылки Cooker (напр.: «обсуждать в Cooker»), так и для дистрибутива Cooker (напр.: «запустить Cooker»), и для RPM-репозитория (напр.: «это пакет в Cooker»).

[править] Чем Cooker не является

Cooker — это не хранилище последних версий программ. Не пытайтесь установить пакеты из Cooker в стабильный релиз. Они несовместимы с пакетами стабильных релизов, так как они собираются с библиотеками, которых может не быть в используемом вами стабильном релизе. Будучи несовместимыми, они могут вызывать серьёзные ошибки из-за проблем со сборкой пакетов или самих приложений.

[править] Как принять участие

Существует множество способов участия в проекте Cooker. Наиболее распространённый способ — установка одного из ISO-релизов в период бета-тестирования. Также вы можете предоставлять собранные пакеты программ, переводы на ваш язык (смотрите страницу перевод) и различные идеи.

Вы можете подписаться на список рассылки обсуждения Cooker, список рассылки изменений или на любой другой список рассылки, связанный с определённой разработкой или темой (напр. AMD64, i18n, сервер и т. д.).

[править] Чего ожидать от Cooker

Прежде всего, нужно помнить о том, что Cooker является разрабатываемым дистрибутивом, который не очень хорошо протестирован и, как следствие, часто будет работать некорректно. При его использовании можно потерять данные, настройки и т. д. Он не предназначен для повседневного использования. Кто предупреждён, тот вооружён.

!! Типичный пример, при котором обновление до Cooker приводит к потере настроек — обновление ядра. При подобных обновлениях требуется пересобрать драйвера сторонних производителей. Большинство сообщений об ошибках INVALID(НЕИСПРАВНО) поступают о видеокартах (чаще всего о NVIDIA). Поскольку версия ядра растёт, быстро меняется интерфейс, это в большинстве случаев вызывает проблемы при пересборке старых драйверов. Так как мы находимся в постоянной разработке, то вам необходимо попросить разработчиков сторонних производителей предоставить необходимые исправления для драйверов.

Запуск Cooker интересен хотя бы потому, что вы получаете возможность первыми увидеть новые возможности, включённые в дистрибутив. Предоставляя информацию о запуске Cooker в список рассылки или в сообщениях об ошибках, вы оказываете влияние на разработку следующего релиза Mandriva Linux.

[править] Установка Cooker

Первый шаг к участию в проекте Cooker — его установка. Как и в случае с любым другим дистрибутивом GNU/Linux, существует множество способов установки. Можно даже выполнить установку на виртуальную машину.

[править] С общедоступных зеркал через FTP

Запишите на диск образ загрузочного диска boot.iso, который можно найти на любом из общедоступных зеркал проекта Cooker. Образ находится в каталоге cooker/i586/install/images/ devel-ветки зеркала.

[править] Установка с использованием ISO-релиза

ISO-релиз (образ диска проекта Cooker может быть записан на диск) — это снимок проекта Cooker, который создаётся за три месяца до того, как Cooker расценивается как стабильный релиз и превращается в новый релиз. Первый релиз обычно называется Cooker-снимком. За Cooker-снимком каждые две недели или чаще создаются новые ISO-образы релиза для его тестирования вплоть до выхода финального релиза. Ближайший релиз Mandriva Linux может быть найден здесь.

Множество людей предпочитают устанавливать и тестировать ISO-релизы, как только они выходят. Если вы тестируете ISO-релиз, убедитесь ,что вы используете последнюю его версию.

Кроме того, не исключено, что при необходимости будут выпущены дополнительные релиз-кандидаты, прежде чем релиз будет считаться стабильным. У версий 9.1 и 9.2 выходило 2 по релиз-кандидата, тогда как у версии 9.0 — 3.

На большинстве зеркал Mandriva Linux ISO-образ расположен в каталоге iso. Также можно воспользоваться программой BitTorrent либо иными одноранговыми сетями. Периодически проверяйте на заглавной странице наличие ссылок на официальный BitTorrent-файл, а также инструкций к нему. При возникновении каких-либо трудностей с BitTorrent, обратитесь к странице Bittorrent. Вопросы и ответы веб-сайта Клуба Mandriva.

[править] Актуализация состояния ISO-образа без необходимости его повторной загрузки

Во время тестирования ISO-релиза, к сожалению, возникает необходимость загрузки нового файл-образа каждые две недели. Это приводит к высокому расходу трафика и отстраняет от тестирования пользователей модемного соединения. Для снижения потребляемого трафика при загрузке образа можно сихронизировать файл-образ по протоколу rsync.

Статья по его использованию будет включена позже, но ознакомиться с ней можно уже сейчас: использование rsync для обновления ISO-образов Mandriva Linux.

[править] Использование локальных зеркал

При наличии около 6 ГБ свободного дискового пространства наиболее быстрым и лёгким способом установки является установка с зеркала, расположенного на вашем жёстком диске или на локальном сервере. Имеется несколько сценариев, позволяющие создать ISO-образ, который в последствии можно записать на диск. Для создания локального зеркала и поддержания его в актуальном состоянии используются программы fmirror и rsync.

Добавьте сюда информацию по использованию fmirror и rsync.

Установка Cooker-утилиты rpmsync :

# urpmi rpmsync

[править] Использование gendistrib

В случае локального зеркала иногда возникает необходимость подправлять файлы hdlists. Для этого можно воспользоваться специальным сценарием gendistrib перед тем, как обновить urpmi-источники. Чтобы запустить сценарий, необходимы права записи в каталог, в которой расположен дистрибутив. Перейдите в корень дерева дистрибутива и выполните команду:

$ gendistrib --distrib

[править] Использование NFS в локальной сети

Используйте образ network.img для создания загрузочной дискеты, при установке выберите метод установки NFS вместо FTP.

[править] Установка с жёсткого диска (из локального зеркала)

Если локальное зеркало находится на одном из разделов жёсткого диска, воспользуйтесь образом загрузочной дискеты hd_grub.img. Создайте загрузочную дискету, образ обычно расположен в каталоге install/images зеркала. Далее, следуя инструкции создайте меню GruB.

[править] С жёсткого диска или сети при отсутствии гибкого диска или компакт-диска

Некоторые современные компьютеры не имеют приводов магнитных и оптических дисков. Но мы нашли решение и для них.

Скопируйте необходимые файлы из каталога isolinux в /boot/:

$ cd /путь/до/зеркала/isolinux/alt0/
$ cp vmlinuz /boot/vmlinuz-all
$ cp all.rdz /boot

Если вы используете LILO, сделайте изменения в файле /etc/lilo.conf; если GruB — /boot/grub/menu.lst.

Пример требуемых пунктов загрузочного меню для LILO:

 
     image=/boot/vmlinuz-all
          label=all-install
          root=/dev/ram3
          initrd=/boot/all.rdz
          append="ramdisk_size=32000"
          vga=791
          read-only

Возможно, потребуется изменить параметр ramdisk_size для установки с жёсткого диска. Мне потребовалось присвоить этому параметру значение 700000, чтобы быть уверенным, что всё сработает.

Всегда, после того как вносятся изменения в файл /etc/lilo.conf, необходимо выполнять команду /sbin/lilo, чтобы изменения вступили в силу.

Пример требуемых пунктов загрузочного меню для GruB:

     title all-install
     kernel (hd0,0)/boot/vmlinuz-all root=/dev/ram3 ramdisk_size=32000 vga=791
     initrd (hd0,0)/boot/all.rdz

[править] Установка с жёсткого диска (используя ISO-образ)

При установки с жёсткого диска можно использовать ISO-образ на вашем локальном диске (положите все ISO-образы требуемый каталог). Существует несколько способов, как можно использовать ISO-образ:

  • можно взять файл install/images/boot.iso с зеркала, записать его на диск и выполнить с него загрузку;
  • можно скопировать каталог install/isolinux/ с зеркала на жёсткий диск, затем, следуя инструкции, создать загрузочный диск GrUB (смотрите установка с жёсткого диска);
  • если система Linux уже установлена, можно добавить в меню загрузчика пункт загрузки установки.

Для того, чтобы присоединить ISO-образ к каталогу, от имени пользователя root выполните примерно такую команду:

$ mount -t iso9660 mandrakelinux-10.0-CD1.i586.iso /mnt/iso/ -o loop

(смотрите с жёсткого диска или сети при отсутствии гибкого диска или компакт-диска).

Когда установка будет запущена, от укажите на каком диске, разделе и в каталоге расположен ISO-образ. Если в указанном каталоге будет несколько загрузочных образов, программа установки предложит выбрать один из них.

[править] Создание диска посредством mkcd

mkcd — программа Mandriva для создания дисков с дистрибутивом. Для создания ISO-файла, выполните команду: mkcd -a /путь_к_Cooker/. Локальное зеркало Cooker облегчит создание своих дисков дистрибутива.

Примечание!
При установке нового формата не рекомендуется использовать MakeCD.

Дополнительно посмотрите: [[использование mkcd]].

[править] Если на загрузочных дискетах нет нужного драйвера

Две основные проблемы: во-первых, если у вас старый адаптер SCSI, скорее всего драйвер на загрузочном диске будет отсутствовать, поэтому, если вы не можете загрузиться с CDROM (старые SCSI не поддерживают загрузку) - вы в ловушке; во-вторых, если вам нужны драйвера от производителя для SCSI или сетевой карты (к примеру nvnet.so). Проблема решается следующим образом:

  • создайте обычную загрузочную дискету (cdrom.img, если подразумевается установка с компакт-диска, network.img — установка по сети, и т. д.);
  • создайте дискету с файловой системой ext2:
# mke2fs /dev/fd0
  • найдите нужный драйвер и скопируйте его (несжатый) на дискету с файловой системой ext2 с помощью следующей команды (измените эту команду согласно драйверу):
$ zcat /lib/modules/<kernel-version>BOOT/kernel/3rdparty/dc395x_trm/dc395x_trm.o.gz \
  > /mnt/floppy/dc395x_trm.o
  • затем скопируйте (несжатые) зависимости для этого модуля (например, scsi_mod.o; могут быть и другие, проверьте их в файле modules.dep);
  • загрузитесь традиционным способом с загрузочной дискетыЮ нажмите клавишу F1, а затем наберите 'linux expert', это позволит вам позднее вставить другую дискету и загрузить необходимые модули с неё в порядке зависимости(первым scsi_mod.o, и т.д.)

[править] Через ключ USB

Начиная с 27/01/2005 (отсутствует в 10.2 beta2), имеется новый образ для загрузки с ключа usb.

Запишите Файл-образ all.img файловой системы FAT16 программой dd на раздел usb ключа (на большинстве USB ключей - раздел sda1), но с некоторыми оговорками:

  • кажется некторые БИОСы не используют главный загрузочный сектор (MBR) расположенный в sda или пропускают его, когда он пустой
     $ dd if=/dev/zero of=/dev/sda bs=1 count=446
  • некоторый БИОСы нуждаются в следующих манипуляциях - установить пакет extipl и выполнить следующее:
     $ dd if=/usr/lib/extipl/aldebaran.bin of=/dev/sda

[править] Via PXE boot

Probably one of the easiest way for admin. you must have recent network card (PXE1.5 or greater) PXE<=1 can be used but this is a pain for some of them. Install a PXE server, mandriva has some packages, but backup your dhcp.conf. In the pxelinux.cfg/default file, add the line:

label 10-1-OE
        KERNEL vmlinuz
        APPEND initrd=all.rdz ramdisk_size=128000 acpi=ht vga=788

and add the vmlinuz and all.rdz in your tftp server

[править] Via urpmi

Probably the only way to avoid rebooting, having cd/floppy reader and stop watching tv/listening music.

You need first to add the Main and Contrib source in your current distribution (with urpmi) :

# urpmi.removemedia -a

Go on http://easyurpmi.zarb.org, select the cooker distribution, and follow the steps, then copy/paste the generated lines in you root console

And install the cooker distribution :

# mount --bind /proc /mnt/your_new_root/proc
# urpmi --root=/mnt/your_new_root basesystem locales-XX urpmi kernel
# urpmi --root=/mnt/your_new_root all_package_you_want
# chroot /mnt/your_new_root
[copy paste the urpmi.addmedia lines of cooker there]
# exit

Setup the new distribution (remember to edit the cooker's /etc/fstab to swap the devices corresponding to / and the /mnt/your_new_root mount point):

# cp /etc/fstab /mnt/your_new_root/etc/

Add the kernel in lilo's owner distribution :

# cp /mnt/your_new_root/boot/vmlinuz /boot/vmlinuz-cooker
# cp /mnt/your_new_root/boot/initrd.img /boot/initrd-cooker.img

If the /mnt/your_new_root/boot/initrd.img doesn't exist, just do the following step. If you need some special modules to be able to access hard disk contempt, add --preload module_name to mkinitrd command.

# chroot /mnt/your_new_root
# KVERSION=$(ls /boot/vmlinuz-* | cut -c 15- | head -n 1); mkinitrd /boot/initrd-$KVERSION.img $KVERSION
# exit
# cp /mnt/your_new_root/boot/initrd.img /boot/initrd-cooker.img

Then add the following config lines in lilo.conf file :

image=/boot/vmlinuz-cooker
   label="linux-cooker"
   root=/dev/your_new_root_dev_file
   initrd=/boot/initrd-cooker.img
   append="PROFILE=default"

Then run lilo to store the config :

# lilo

You are now able to boot your cooker, do not forget to install the packages needed to have internet in (ppp-pppoe and rp-pppoe for example), xorg and other before rebooting. ;)

[править] Поддержание установленного Cooker в актуальном состоянии

[править] URPMI — ваш помощник

Определение источника Cooker

Одним из наиболее полезных инструментов разработанных Mandriva Linux - скрипт easy urpmi, написанный Oliver Thauvin. Скрипт можно получить здесь.

Также можно использовать графический интерфейс (GUI), называющийся urpmi.setup. Установите пакет urpmi.setup и запустите его. urpmi.setup сделает запрос на получение списка зеркал, после чего вам будет позволено включить их в urpmi. В целях экономии траффика, используйте зеркала со включённым rsync (их URL начинается с rsync://).

Если у вы знаете зеркало, которого нет в списке скрипта easyurpmi, или если у вас есть локальное зеркало, вы можете сами набрать команду в командной строке используя следующий синтакс:

# urpmi.addmedia <name> <source>

После того, как вы настроили urpmi на работу с источниками, вы можете получить списки пакетов для отдельных репозиториев, обновляемых с помощью команды urpmi.update. Это оказывается полезным для стабильных релизов. Попробуйте ввести:

# urpmi.update <repository name>

С Cooker-системой всё ещё проще. Репозитории обновляются ежедневно. Списоки пакетов репозиториев можно обновить, выполнив команду urpmi.update с ключом -a. Это обновит все источники пакетов.

# urpmi.update -a

Это приведёт к обновлению файлов настроек urpmi путём обновления файлов hdlist.cz, которые загружаются с зеркал. Если вы не выполните это действие, urpmi ничего не будет знать об изменившихся пакетах, находящихся на зеркалах, и возможно вы будете получать сообщение об ошибке похожее на "всё уже установлено" даже если вы знаете, что на зеркалах произошло много изменений.

После того, как вы обновили источники, выполните команду:

# urpmi --auto-select

чтобы обновить все установленные пакеты. Essentially, urpmi checks all installed packages and determines if there is a newer package in one of the source repositories. If a newer version of the package exists, it will be installed along with any required dependencies that may have been created.

Starting with version 4.4, urpmi supports transactions. This means that packages are downloaded and installed in small related groups, instead of all at once. You will no longer have to resort to dirty tricks when you have a small /var partition. Also, since version 4.4-41mdk, urpmi updates itself first and restarts before updating any other packages.

You can also use the --auto and --no-uninstall switch ( on a recent urpmi version, > 4.3-13mdk) to do a fully automated upgrade. Nothing will be uninstalled, and all questions will be skipped (with a good default answer).

The kernel-source package is used to be upgraded automatically but to update your kernel you have to run:

# urpmi kernel

This is required because the name of each kernel is unique so a previous kernel is never uninstalled when installing a new one.

The last step is to update the configuration. During the update several* .rpmnew files might have been created (you normally get a warning, but one easily misses those). etc-update can help you updating those config files.

[править] Образцовое сообщение об ошибке

Если вы думаете, что нашли ошибку (bug), необходимо выполнить ряд действий перед тем, как занести отчёт в базу данных Bugzilla.

Во-первых, удостоверьтесь в том, что версия пакета соответствует версии этого пакета в Cooker. Это позволит определить была ли исправлена ошибка. Изменения в Cooker происходят ежедневно, таким образом, если вы думаете что обнаружили ошибку в версии beta2 и с момента релиза прошла уже неделя, то велики шансы, что пакет обновлялся уже несколько раз за это время, начиная с момента выпуска ISO-релиза. The easiest way to update to the latest packages is to make sure you have your urpmi sources set up properly and and either urpmi packagename, or make sure the entire system is current with urpmi --auto-select. Подробные инструкции о том, как это сделать, содержатся в вышестоящих разделах.

Во-вторых, убедитесь, что ошибка является воспроизводимой. Разработчики часто отклоняют невоспроизводимые ошибки, считая их ошибками, возникающими по причине некорректных действий самих пользователей, или списывают ошибки на проблемы в настройках системы. Поэтому, если у вас есть возможность проверить возникновение ошибки на другом компьютере, информация об этом оказалась бы чрезвычайно полезной, будучи включённой в отчёт об ошибке.

В-третьих, выполните поиск в архиве списка рассылки Cooker и в системе Bugzilla, чтобы убедиться в том, что об ошибке ещё никто не сообщал. Если же сообщение уже существует, его можно дополнить более подробной информацией. Помните, что в дублировании сообщений об ошибках и занесении их в базу нет никакого смысла.

Что касается назначения списка рассылки Cooker и Bugzilla: список рассылки используется для выяснения, является ли нечто ошибкой или нет; Bugzilla используется для сообщений об ошибках.

Этикет хорошего отчёта об ошибке требует точности в сообщении об ошибке. Сообщение «Пакет X — повреждён!» без ясного описания — пример неудачного отчёта. Предоставьте название повреждённого пакета, краткое описание проблемы, небольшое описание аппаратного обеспечения и всё, что необходимо знать разработчику, чтобы он смог воспроизвести у себя вашу ошибку. Также предоставляйте любую информацию, которая, как вам кажется, является полезной, включая конфигурационные файлы пакета.

[править] Как пользоваться Bugzilla

Обратитесь к странице Bugzilla Howto.

[править] Список рассылки Cooker

Этот список является местом обсуждения результатов тестирования и выяснения того, является ли что-то ошибкой или нет. Сообщения об ошибках попадают в Bugzilla.

Так как список рассылки очень активен (особенно в последние дни цикла разработки, когда количество сообщений превышает 1.000 в день), очень важно как и когда вы отправите сообщение в список. Для того, чтобы не захламлять список, воспользуйтесь поиском перед отправкой. Возможно, кто-то уже сообщал в список о том, о чём хотите сообщить вы. Чтобы вероятность прочтения вашего сообщения была максимальной, возьмите за правило минимального обращения в список. Обращайтесь в только случае действительной на то необходимости, воздерживайтесь от пустой болтовни и публикации сообщений, не относящихся к теме дискуссий.

Для получения более подробной информации обратитесь к Development Mailinglists.

[править] Предложение патчей

Если вы написали патч, исправляющий ошибку в программе, разрабатываемой Mandriva, отправьте патч в список рассылки Cooker и разработчику, сопровождающему этот пакет.

Если же вы написали патч для сторонней программы, включённой в Mandriva Linux, отправьте патч сопровождающему пакета и предложите патч в upstream проекта. Сборщики пакетов Mandriva часто накладывают патчи на код, чтобы исправить критические ошибки, но не для всех программных проектов у разработчиков Mandriva есть возможность работать напрямую с системой контроля версий (CVS) этих проектов, поэтому предоставление патча разработчикам Mandriva не может гарантировать его попадание в исходный код проекта.

[править] Glossary of Terms

  • Alpha Release — Also referred to as a cooker snapshot. It is probably broken and most likely quite badly but would really like you to test it as an assembly (distinct from testing the parts). The developers are still willing to make significant changes (bumping versions etc) to make everything work well, so now is the time to squawk loudly if your pet package or feature looks like being left out.
  • Beta Release — a beta is an ISO release of Cooker that is meant to test the functionality that has been or is being added to various components of the distribution. It’s probably got some serious bugs, so you don’t want to use it in production but please feel free to use it for light duties. At this point, the package maintainers are generally unwilling to nudge package versions but will do so to fix problems. Minor problems that a lot of effort to be fixed and/or may upset other things in the fixing are now at risk of being left as they are.
  • Release Candidate — a release candidate, or RC, is an ISO release of the distribution that is released for the purpose of finding show-stopper bugs in the features and packages that have been included. During the release candidate phase, no new packages or features may be added, but bug fixes may be committed if they are major. Please subject it to very heavy testing. If it works well, it will be blessed and submitted to the publisher for manufacturing the boxed sets and the iso images and distribution tree will posted to the mirrors for immediate download. The package maintainers won’t nudge versions at all except as necessary to fix a showstopper. We won’t fix anything if it’s much less than a showstopper or security update unless it’s dead easy and carries no risk of breaking anything else. It is useless to make a feature request at this time as *no new features can be added.*
  • Contrib — packages that are not part of the main distro, but that are important because someone has packaged them and contributed them.
  • Freeze — no feature adds can be made to any mandriva software and no updates can be made to packages except for major bugfixes.
  • Deep Freeze — Only showstopper bugfixes and security flaws can be upgraded.


[править] References

Личные инструменты
На других языках