1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-RISC-V

Клонировать/Скачать
faq.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 25.05.2025 09:27 f45b54e

Часто задаваемые вопросы

Пожалуйста, ознакомьтесь с предыдущими документами.

Gitee

  1. Что такое сайты gitee.com/openeuler/RISC-V, gitee.com/openeuler-RISC-V и gitee.com/src-openeuler, и как они связаны? openeuler/RISC-V — это сайт SIG openEuler RISC-V, который вы сейчас видите, и он主要用于存放文档和工具资料。 src-openeuler — это репозиторий исходного кода всех пакетов openEuler. openeuler-RISC-V — это форк src-openeuler, также известный как промежуточный репозиторий, который временно хранит изменения и адаптации для пакетов. В будущем эти изменения будут объединены в репозиторий src-openeuler.
  2. Как форкнуть пакеты из src-openeuler? В этом репозитории создайте PR для riscv_fork_list.yaml, добавьте имена пакетов, которые вы хотите форкнуть, отсортируйте их в алфавитном порядке и кратко объясните причины.
  3. Можно ли отправлять PR напрямую в src-openeuler? Да, можно.
  4. Как выбрать ветку исходного кода пакета? Имена веток исходного кода указывают на версию выпуска, соответствующую этой ветке. Вы можете выбрать ветку исходного кода в соответствии с вашим целевым проектом OBS.
  5. Что следует учитывать при отправке PR для изменения пакета? Причины должны быть убедительными, так как maintainer может не быть знаком со всеми пакетами; наличие ссылки на успешное построение; изменения должны соответствовать стандартам.md); если вносятся изменения из исходного или стороннего патча, используйте команды, такие как git show, чтобы сохранить информацию об авторе.

OBS

  1. Какой из сайтов https://build.openeuler.openatom.cn и https://build.tarsier-infra.com мне следует использовать? https://build.tarsier-infra.com.
  2. Является ли сообщение об ошибке сборки "RPM build errors: bad date in %changelog" ошибкой? Нет. Сообщения об ошибках, связанных с макросами RPM и правилами написания .spec файлов, не влияют на успешное построение пакета.
  3. Является ли последняя ошибка в логе неудачной сборки прямой причиной неудачи? Обычно нет. Сборка обычно выполняется параллельно, и некоторые ошибки могут быть переданы позже, поэтому последняя ошибка не всегда является прямой причиной неудачи.
  4. Можно ли просмотреть логи предыдущих сборок пакета? Нет.
  5. Что делать, если я хочу просмотреть логи сборки, но они заблокированы? В этом проекте найдите пакет, который можно просмотреть, например: https://build.tarsier-infra.com/build/openEuler:22.03/openEuler_2203_self/riscv64/gcc/_log, замените имя пакета на тот, который вас интересует.
  6. Как обработать сообщение об ошибке доступа к сети? По умолчанию пакеты в OBS создаются в режиме qemu-user (в контейнере Docker), что не позволяет им доступ к сети или файлам типа /proc/. Можно переключиться на режим qemu-system: добавив в пакет файл _constraints (загрузив его), содержащий следующее:
    <constraints>
      <sandbox>qemu</sandbox>
    </constraints>
    ``` **Что делать, если пакет всегда отображается как заблокированный и не может быть построен?** 
       Отредактируйте страницу `Meta` проекта, в котором находится пакет, добавив в строку `repository name=` следующие параметры: `rebuild="local" block="never" linkedbuild="off"`.
  7. Что ещё можно сделать с помощью страницы Meta? <publish> <enable|disable/> </publish> позволяет контролировать публикацию пакета на сервере загрузки, <build> <enable|disable/> </build> позволяет контролировать построение пакета. Страница Meta проекта контролирует все пакеты в проекте, а страница Meta пакета контролирует только этот пакет. В строке repository name= страницы Meta проекта есть параметр path project=, который определяет зависимости проекта, то есть откуда проект берёт зависимости для построения.
  8. Где находится сервер загрузки OBS? http://obs-backend. tarsier-infra. com:82/
  9. Можно ли удалить файл _link пакета? Да, можно.
  10. Для чего служит страница Project Config проекта? Она имеет большое значение и используется для более продвинутых настроек. Когда вы станете более опытным, вы сможете изучить её, [документация](https://openbuildservice.org/help/manuals/obs-user-guide/cha. obs. prjconfig. html).
  11. Что делать, если построение пакета застревает и не завершается? Если построение пакета не завершается более 28800 секунд, OBS считает его застрявшим и завершает построение.Если вы считаете, что пакет просто медленный, а не застрял, отредактируйте страницу Project Config проекта, добавив следующий код для решения проблемы "ложного застревания" на этапе %build, а на этапе %check используйте __spec_check_pre: Макросы: %__spec_build_pre %{___build_pre} \ case %{name} in \ имя_пакета) \ function keepalive() { while true; do sleep 28000; date; done } \ keepalive & ;; \ esac :Макросы
  12. **Что делать, если загрузка сетевых компонентов всегда проваливается при построении? ** Скачайте компоненты вручную и используйте их как патч для построения пакета.
  13. **Как сделать так, чтобы построенный мной пакет участвовал в построении других пакетов? ** Сначала отредактируйте страницу Repositories построенного пакета, выбрав опцию Use for Build Flag. Это значение по умолчанию. Затем добавьте проект, содержащий успешный пакет, в зависимости целевого проекта и расположите его перед существующими зависимостями, как описано выше в разделе о метке Meta; если успешный пакет и целевой пакет находятся в одном проекте, то эта операция не требуется.
  14. **Как опубликовать собственный успешный пакет? ** Редактируйте страницу Repositories пакета и установите флажок Publish Flag.

Локальная среда сборки QEMU

  1. **Что такое среда сборки QEMU? ** Это дополнительная виртуальная среда, расположенная в директории /var/tmp/build-root/, внутри виртуальной машины QEMU для архитектуры RISC-V.Команда osc build инициализирует эту среду и выполняет сборку пакетов внутри неё.
  2. Как просмотреть логи сборки? Выполните команду osc log|less в директории, где был вынесен пакет. Чтобы избежать удаления логов последующими сборками, сохраните их отдельно.
  3. Что означает последняя ошибка в логе сборки error: Bad exit status from /var/tmp/rpm-tmp.kp0vhP (%build)? Это означает, что произошла ошибка при выполнении скрипта /var/tmp/rpm-tmp.kp0vhP в стадии %build процесса сборки. Процесс сборки состоит из отдельных стадий, таких как %prep, %build, %install, %check, каждый из которых имеет свой shell-скрипт, выполняющий все задачи данной стадии. Эти скрипты соответствуют описанию пакета в файле spec. Просмотр этого скрипта позволяет понять, какие условия были установлены, как раскрывались макросы и какие конкретные команды были выполнены.
  4. Что делать, если во время сборки требуется доступ к сети? Перед сборкой скопируйте файл /etc/resolv.conf в директорию /etc внутри среды сборки.
  5. Как вручную войти в среду сборки? chroot /var/tmp/build-root/xx_проект
  6. Что делать, если при выполнении Java в среде сборки выдается ошибка о недостающих динамических библиотках? Некоторые программы требуют доступа к /proc. Чтобы получить доступ к /proc, выполните команду mount --bind /proc /var/tmp/build-root/xx_проект/proc перед вводом в среду сборки. Не забудьте отмонтировать /proc после выхода из среды сборки.Как повторно выполнить команду, которая вызвала ошибку, в среде сборки? Метод 1: Найдите и повторно выполните команду, вызвавшую ошибку. Из-за настроек среды, эта команда может не выполниться корректно. Метод 2: Выполните соответствующий скрипт /var/tmp/rpm-tmp. xxx. Вы можете предварительно отредактировать этот скрипт. Это более надежный метод. Метод 3: Используйте команду osc build --stage=xx для повторного выполнения определенной стадии сборки. Подробности см. в справке по osc и rpmbuild. Повторное выполнение отдельных стадий не всегда возможно, например, %check, из-за отсутствия файлов, созданных предыдущими стадиями.
  7. Можно ли пропустить загрузку и установку зависимых пакетов при повторной сборке? Да, используйте команду osc build --noinit.
  8. Появились какие-то странные проблемы после нескольких сборок, что делать? Удалите среду сборки и кэш пакетов: rm -rf /var/tmp/{build-root,osbuild-packagecache}.
  9. Как установить зависимости в среде сборки? Лучше всего разрешить зависимости в проекте OBS, и osc автоматически обработает установку зависимых пакетов. Если действительно необходимо, можно вручную скачать rpm-пакеты, перейти в среду сборки с помощью chroot и установить пакеты с помощью rpm -i. Это более сложный процесс, и при сборке необходимо добавить параметр --noinit, чтобы предотвратить автоматическое удаление вручную установленных пакетов.

Другое

31.Какой обычно используется подход для исправления пакетов? - Выберите знакомый вам язык программирования и пакет - Анализируйте логи - Устраняйте проблемы с зависимостями - Сравнивайте успешные логи для x86_64 и aarch64 - Проверяйте обновления пакета в его исходном репозитории - Изучайте решения других пользователей - Ищите информацию в интернете - Отладьте исходный код 32. Как обрабатывать ошибки, вызванные настройками среды, производительностью или временем ожидания? Не нужно исправлять пакет, достаточно уведомить maintainer. 33. Можно ли просто обновить пакет, а не исправлять его? Да, можно. Проект OBS Factory:RISC-V предназначен для ротационного обновления пакетов; ветка roll в промежуточном репозитории используется для хранения обновлений исходного кода, которые можно указать при создании запроса на изменение (PR) в этот репозиторий. В PR, помимо стандартных требований, необходимо сделать краткий анализ изменений API для оценки возможных проблем совместимости. 34. Можно ли добавить новый пакет? Да, можно, но потребуется причина. Для этого можно создать issue или обратиться к SIG. 35. Можно ли подать заявку на статус maintainer, как в других дистрибутивах? Добро пожаловать! Ожидается, что вы будете поддерживать выбранный пакет в хорошем состоянии. 36. Какие еще способы участия существуют? Все, что способствует развитию openEuler RISC-V, допустимо, например: улучшение документации, предоставление отчетов о системе, разработка приложений и т. д.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openeuler-RISC-V.git
git@api.gitlife.ru:oschina-mirror/openeuler-RISC-V.git
oschina-mirror
openeuler-RISC-V
openeuler-RISC-V
master