Rawhide
«Rawhide» — это название текущей разрабатываемой версии Fedora Linux. Она состоит из репозитория пакетов под названием «rawhide» и содержит последние сборки всех пакетов Fedora Linux, обновляемые ежедневно. Каждый день система сборки пытается создать полный набор готовых к выпуску продуктов (установочные образы и так далее), и всё, что успешно собирается, включается в дерево Rawhide на этот день.
Rawhide иногда называют «development» или «main» (поскольку это ветка «main» в git-репозиториях пакетов).
Цели
Rawhide имеет следующие цели:
-
Позволить мейнтейнерам пакетов интегрировать новейшие пригодные к использованию версии своих пакетов в Fedora.
-
Предоставить опытным пользователям доступ к новейшим пригодным к использованию пакетам в режиме непрерывного обновления (rolling).
-
Разрешить постепенные изменения в пакетах, которые либо слишком незначительны, либо слишком значительны для стабильных выпусков Fedora.
-
Выявлять и исправлять проблемы с пакетами до того, как они попадут в стабильный выпуск Fedora.
-
Предоставить место, где определённые низкоуровневые пакеты (одобренные FESCo), включая (но не ограничиваясь) glibc и gcc, могут пройти реальное тестирование предварительных версий.
Целевая аудитория
Rawhide ориентирован на опытных пользователей, тестировщиков и мейнтейнеров пакетов.
Как потребитель Rawhide, вы должны:
-
Быть готовым обновляться практически ежедневно. Rawhide получает сотни обновлений в день, и регулярное применение этих обновлений позволяет вам легче изолировать момент появления ошибки и определить, какой пакет(ы) за неё отвечает.
-
Быть готовым и способным устранять неполадки. Время от времени возникают проблемы с пакетами Rawhide, и вам понадобятся навыки устранения неисправностей и умение собирать информацию для отчётов об ошибках. Вам необходимо хорошо понимать dnf и уметь понижать версии пакетов, а также устранять неполадки во время загрузки.
-
Иметь время и желание изучать новые интерфейсы и изменения. Пакеты Rawhide тесно связаны с вышестоящими проектами, поэтому интерфейсы и параметры командной строки часто меняются.
-
Быть готовым часто перезагружаться для тестирования новых версий ядра и проверки работоспособности процесса загрузки. Если вы не можете часто перезагружаться, рассмотрите возможность использования стабильного выпуска.
-
Быть готовым и способным сообщать об ошибках в Bugzilla по мере их обнаружения и помогать мейнтейнерам собирать информацию для их исправления.
Если вышеперечисленное вам не подходит, вы можете вместо этого использовать Branched выпуск (в зависимости от момента в цикле выпуска) или использовать обычные стабильные релизы Fedora.
Использование Rawhide
См. шаблон вики для получения инструкций по установке и использованию Rawhide.
Обсуждение Rawhide
Существует несколько способов общения с другими пользователями Rawhide:
Matrix
Обсуждение Rawhide приветствуется и соответствует тематике как в канале Matrix #devel, так и в #fedora-quality.
Bugzilla
Об ошибках Rawhide следует сообщать для продукта Fedora, версии rawhide и затронутого компонента. Пожалуйста, следуйте рекомендациям при создании отчёта. Помните, что IRC и списки рассылки полезны для выяснения того, является ли некоторое поведение ошибкой и куда о ней сообщить, но сами по себе они не являются каналами для сообщения об ошибках. Всегда регистрируйте ошибки в Bugzilla.
Обратите внимание, что сообщения о нарушенных зависимостях отправляются мейнтейнерам для каждой ежедневной сборки Rawhide, в которой у пакета есть такие нарушенные зависимости. Поэтому обычно не стоит сообщать об ошибке для нарушенных зависимостей, если только они не появляются в ежедневном отчёте, или у вас нет исправления или улучшения, которое можно предложить.
Создание Rawhide
Владельцы пакетов должны собирать для Rawhide с использованием Koji так же, как и любую другую сборку; вы не проходите через процесс Bodhi, и сборка становится доступной почти сразу.
Репозиторий Rawhide собирается каждый день, начиная с 05:15 UTC. Все сборки rawhide в системе сборки на этот момент включаются в попытку сборки. Процесс сборки также пытается создать все стандартные «продукты» Fedora (live-образы и установочные образы, образы дисков для ARM и Cloud, образы контейнеров и так далее). Если какой-либо образ, блокирующий релиз, не удаётся собрать в рамках сборки, сборка считается неудачной. Если сборка завершается успешно, она «синхронизируется» с зеркальной системой. (Планируется система, в которой синхронизация происходит только в том случае, если набор автоматических тестов проходит успешно, но она ещё не полностью реализована).
Rawhide находится в development/rawhide на зеркалах. Вы можете найти локальное «development»-зеркало в публичном списке зеркал. Время сборки зависит от количества изменений, но обычно составляет от 2 до 3 часов.
Сборки выполняются в окружении rawhide chroot с использованием инструмента 'pungi', вызываемого из скрипта, поддерживаемого командой Release engineering Fedora. Если базовый набор пакетов в Rawhide, необходимый для сборки Rawhide, нарушен, ежедневная сборка может завершиться ошибкой.
Отчёт о каждой сборке Rawhide отправляется в списки рассылки test и devel. Этот отчёт содержит вывод инструмента repodiff из предыдущей сборки, а также отчёт о нарушенных зависимостях для пакетов с нарушенными зависимостями. Кроме того, частное письмо отправляется мейнтейнерам с пакетами, содержащими нарушенные зависимости.
Мейнтейнеры пакетов должны прочитать и следовать политике обновлений Rawhide при сборке любых пакетов в Rawhide.
При необходимости и по утверждению FESCo, команда Release Engineering проводит массовые пересборки в Rawhide примерно за месяц до того, как от него ответвится следующий релиз. Обычно они выполняются для глобального изменения всех пакетов, такого как новый выпуск gcc или формат пакетов rpm.
Вопросы и ответы
Разве rawhide не ест младенцев / не убивает домашних животных / не сжигает дома / не ломается постоянно?
Нет. Пожалуйста, перестаньте говорить всем это.
Значит, Rawhide очень стабилен, и мы все можем его использовать?
Нет. См. целевую аудиторию выше. Время от времени что-то ломается, но если вы можете понизить версию или устранить неисправность, такие проблемы не слишком серьёзны. Большинству пользователей всё же следует придерживаться стабильных выпусков Fedora, но Rawhide — это жизнеспособный вариант для экспериментов энтузиастов.
Я использую стабильный выпуск Fedora, но мне нужна более новая версия пакета, которая доступна только в Rawhide. Могу ли я просто выполнить dnf install?
Нет. Смешивать выпуски таким образом — плохая идея. Лучшие варианты:
-
Попросите мейнтейнера Fedora в отчёте об ошибке обновить стабильную версию, если это разрешено политикой. Если нет, возможно, существует репозиторий Copr, который предоставляет обновлённую версию. Подробнее см. на странице COPR.
-
Получите src.rpm для нужного вам пакета и попробуйте выполнить
rpmbuild --rebuild(это может как сработать, так и нет, в зависимости от зависимостей).
Я хочу запускать ядро Rawhide на своей стабильной машине Fedora. Могу ли я это сделать?
Иногда да. Ядро является более самодостаточным, чем другие пакеты Rawhide, и вы также можете легко загрузить ваше старое ядро, если ядро Rawhide перестанет работать. Загрузите и выполните dnf install для пакета. Однако обратите внимание, что ядра Rawhide часто имеют включённый отладочный код, что приводит к заметно худшей производительности по сравнению с релизными ядрами (они будут работать медленнее и потреблять больше памяти).
Является ли Rawhide «rolling release»?
Это зависит от того, как вы это определяете, но да.
Как узнать, когда завершилась ежедневная сборка Rawhide?
Проверьте отчёты, отправленные в списки рассылки test и devel, или следите за сообщениями fedora-messaging по теме org.fedoraproject.prod.pungi.compose.status.change.
Что происходит во время ветвления, влияет ли это как-то на мой выпуск Rawhide?
Нет, вы всё ещё на Rawhide, и никаких действий не требуется. (Раньше это обрабатывалось иначе).
Как мне снова выйти из Rawhide? Я хочу переключиться на Branched-выпуск или стабильный выпуск.
Обратите внимание, что понижение версии вашей системы до более раннего выпуска не поддерживается, не тестировалось, не является хорошей идеей и определённо на ваш собственный риск. Самый безопасный подход — переустановить систему. Если вы действительно хотите понизить версию, хотя бы сначала создайте снимок файловой системы (если вы используете файловую систему Btrfs по умолчанию).
Один из распространённых случаев использования — переключение вашей системы на Branched сразу после его создания (ответвления от Rawhide). В этом случае, чем раньше вы это сделаете (после ветвления), тем безопаснее и проще — разница между системами в этот момент минимальна. Понижение версии спустя долгое время или понижение до стабильного выпуска (который полностью отличается от Rawhide) будет более проблематичным.
Вы можете (попытаться) понизить версию до Branched или стабильного выпуска, используя DNF system upgrade (тот же подход, что и для обновлений). Однако, поскольку Rawhide использует другой набор системных репозиториев, вам необходимо явно отключить их во время фазы загрузки и явно включить набор репозиториев, используемых в системах, отличных от Rawhide. Таким образом, команда загрузки будет выглядеть так (это отключит и включит правильные репозитории, и если у вас установлены дополнительные (включая сторонние) репозитории, они останутся включёнными или отключёнными в зависимости от текущего состояния; замените NN на номер целевого выпуска): sudo dnf system-upgrade download --releasever=NN --disablerepo='rawhide,rawhide-modular' --enablerepo='fedora,updates'
Всё остальное должно остаться без изменений, вы можете использовать остальную часть вышеупомянутого руководства для продолжения. При понижении версии существует более высокая вероятность возникновения нарушенных зависимостей, поскольку, хотя зависимости пакетов должны работать корректно при повышении версий, им не обязательно работать при понижении. В этом случае вы можете попробовать --skip-broken или удалить проблемные пакеты (если это возможно), в противном случае вам вряд ли повезёт.
Как мейнтейнер пакетов, должен ли я собирать пакеты rawhide, или это делает ежедневная сборка?
Вы должны собирать для Rawhide самостоятельно (с использованием Koji). Ежедневная сборка только собирает пакеты, уже собранные и помеченные в Koji соответствующей целью (rawhide).
Подписаны ли пакеты rawhide?
Все они теперь подписаны. Убедитесь, что в вашем файле репозитория установлен параметр gpgcheck=1, чтобы воспользоваться этим.
Советы и рекомендации
-
Ваша система управления пакетами может оказать большую помощь в диагностике и обходе обнаруженных проблем. Прочитайте и поймите:
-
dnf downgrade -
dnf history -
dnf update --skip-broken -
koji download-build
-
-
Если вы используете неизменяемый вариант, такой как Silverblue, вам следует хорошо использовать возможности OSTree, такие как:
-
rpm-ostree rollback -
ostree admin config-diff -
ostree admin pin 0
-
-
Вам следует часто обновляться (желательно каждый день). Это позволяет вам легче определить, когда появилась проблема. Если вы примените сразу неделю обновлений Rawhide, вам придётся проверить гораздо больше пакетов, чтобы определить причину проблемы.
-
Перезагружайтесь часто (желательно при появлении новых ядер). Это позволяет вам тестировать процесс загрузки и связанные с ним пакеты, а также новые ядра. Прочитайте и поймите шаги устранения неполадок Dracut.
-
Следите за списками рассылки test и devel на предмет проблем Rawhide. Старайтесь хотя бы просматривать их перед выполнением ежедневных обновлений Rawhide. Ищите темы с пометкой '[rawhide]' или отчёты о проблемах. Кроме того, если вы нашли проблему и не уверены, на что подавать отчёт об ошибке, вы можете открыть обсуждение там.
-
Ядра Rawhide часто собираются с различной степенью включённого отладочного кода, что приводит к ухудшению производительности и увеличению использования ресурсов. См. Стратегию отладки ядра для получения подробной информации о том, какой именно отладочный код включён для каких сборок ядра. Вы можете отключить отладку SLUB для тех сборок, в которых она включена, передав
slub_debug=-в командную строку ядра в/etc/default/grub(и перегенерировав конфигурацию GRUB или просто добавив её напрямую). Кроме того, вы можете использовать ядра из репозитория Rawhide Kernel Nodebug, в которых вся отладка отключена. -
Если вы используете графическую среду рабочего стола в вашей установке Rawhide, вы можете установить несколько из них. Это позволит вам всё ещё входить в систему и устранять неполадки, когда ваша основная среда рабочего стола по какой-то причине не работает.
-
Имейте под рукой спасательный носитель с текущим стабильным выпуском Fedora на случай чрезвычайных ситуаций.
История
Анонс Red Hat Linux "Raw Hide" объявление.
Название, возможно, происходит от песни с таким же названием, которая начинается со слов «Rolling, rolling, rolling, …».
В своё время Rawhide замораживался перед важными этапами выпуска. Это было изменено в соответствии с предложением No Frozen Rawhide и процессом Branched, которому мы следуем сейчас.
Want to help? Learn how to contribute to Fedora Docs ›