Участие в Cooker

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

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

Текущий статус: В процессе разработки

2008 — текущий стабильный релиз 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-пакеты несовместимы с вашими, так как они собираются с библиотеками, которых может не быть в используемом вами релизе. Будучи несовместимыми, они могут вызвать серьёзные ошибки из-за проблем в сборке пакета или самого приложения.

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

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

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

[править] Ожидания

Прежде всего, нужно помнить о том, что 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

При использовании дистрибутива Mandrakelinux 10.1beta2 вам возможно потребуется изменить параметр 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.

[править] If boot floppies don’t contain your driver

Two main problems (maybe others): first, if you have an old SCSI adapter, we might have not included the driver in the boot floppies, so if you can’t boot off the CDROM (old SCSI bios don’t provide booting capability) you’re trapped; second, if you need a proprietary SCSI driver or network driver (nvnet.o for example). That problem is solved that way:

  • create a traditional boot floppy (cdrom.img if you plan to install from cdrom, network.img from network, etc)
  • also create an ext2 floppy with command:
# mke2fs /dev/fd0
  • find your driver and copy it (uncompressed) on the ext2 floppy with the command or its equivalent for another driver:
$ zcat /lib/modules/<kernel-version>BOOT/kernel/3rdparty/dc395x_trm/dc395x_trm.o.gz \
  > /mnt/floppy/dc395x_trm.o
  • also copy (uncompressed) the dependencies for that module (such as scsi_mod.o for example; there might be others, check in the modules.dep file)
  • boot the traditional boot floppy, hit F1 and then type «linux expert», it will allow you, a while later, to put the other floppy and load the modules from there, in dependencies order of course (scsi_mod.o first, etc)

[править] Via an USB Key

Since 27/01/2005 (not present in 10.2 beta2), a new image is available to boot on a usb key.

The file all.img is a fat16 image to dd on a partition (probably sda1 for most USB key). There are some caveats:

  • it seems some bioses don’t use the code on MBR (sda), or at least skip it when it’s blanked
$ dd if=/dev/zero of=/dev/sda bs=1 count=446"
  • some bioses need it. Pixel had some luck installing package extipl and using:
$ 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

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