Bitbake wget: не удалось разрешить адрес хоста «www.nano-editor.org»

Я новичок в bitbake и работаю над учебником. Я знаю, что bitbake часто поставляется с проектом Yocto, но здесь я пытаюсь использовать его как отдельный инструмент. Учебник связан с получением версии nano (редактор текстового терминала) и ее сборкой. К сожалению, я не могу получить релиз nano с версией bitbake 2.2, но с 1.52.0 все работает. Короче говоря, это то, что я получаю. wget: unable to resolve host address ‘www.nano-editor.org’

Это ошибка, которую я получаю.

...
DEBUG: Running export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; export PATH = "/home/nikolay/linux_emb_prog/bitbake/bin:/home/nikolay/bin:~/bin:/home/nikolay/bin:~/bin:/home/nikolay/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"; export HOME = "/home/nikolay"; /usr/bin/env wget -t 2 -T 30 --passive-ftp -O /home/nikolay/linux_emb_prog/bbhello/tmp/downloads/nano-2.2.6.tar.gz.tmp -P /home/nikolay/linux_emb_prog/bbhello/tmp/downloads 'https://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz' --progress=dot -v
--2023-01-07 21:50:14--  https://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz
Resolving www.nano-editor.org (www.nano-editor.org)... failed: Name or service not known.
wget: unable to resolve host address ‘www.nano-editor.org’
WARNING: Failed to fetch URL https://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz, attempting MIRRORS if available
...

Я понимаю, что это как-то связано с конфигурацией моей сети. Чего я не могу понять, так это почему я могу построить Poky, но не свой проект. Это мое дерево:

├── bitbake-cookerdaemon.log
├── classes
│   ├── base.bbclass
│   └── logging.bbclass
├── conf
│   ├── bblayers.conf
│   └── bitbake.conf
├── meta-hello
│   ├── conf
│   │   └── layer.conf
│   └── recipes-editor
│       └── nano
│           └── nano.bb

Это нано.бб

SUMMARY = "Recipe to build the 'nano' editor"
DESCRIPTION = "nano is text terminal editor."
HOMEPAGE = "www.nano-editor.org"
SUMMARY = "text terminal editor"
LICENSE = "GPL-3.0-or-later"

PN = "nano"
PV = "2.2.6"
P := "${PN}-${PV}"

SITE = "https://www.nano-editor.org/dist"
PV_MAJOR = "${@d.getVar('PV',True).split('.')[0]}"
PV_MINOR = "${@d.getVar('PV',True).split('.')[1]}"

SRC_URI = "${SITE}/v${PV_MAJOR}.${PV_MINOR}/${P}.tar.gz"
SRC_URI[md5sum] = "03233ae480689a008eb98feb1b599807"
SRC_URI[sha256sum] = \
"be68e133b5e81df41873d32c517b3e5950770c00fc5f4dd23810cd635abce67a"

inherit logging

python do_fetch() {
    src_uri = (d.getVar('SRC_URI', True) or "").split()
    bb.plain("Downloading source tarball from {} ...".format(src_uri))
    if len(src_uri) == 0:
        bb.fatal("Empty URI")
    try:
        fetcher = bb.fetch2.Fetch(src_uri,d)
        fetcher.download()
    except bb.fetch2.BBFetchException:
        bb.fatal("Could not fetch source tarball.")
    bb.plain("Download successful.")   
}

addtask fetch before do_build

do_unpack() {
    bbplain "Unpacking source tarball ..."
    tar x -C ${WORKDIR} -f ${DL_DIR}/${P}.tar.gz
    bbplain "Unpacked source tarball."
}

addtask unpack before do_build after do_fetch

do_configure() {
    bbplain "Configure source package ..."
    cd ${WORKDIR}/${P} && ./configure
    bbplain "Configured source package."
}

addtask configure before do_build after do_unpack

do_compile() {
    bbplain "Compiling package ..."
    cd ${WORKDIR}/${P} && make
    bbplain "Compiled package."
}

addtask compile before do_build after do_configure

do_clean[nostamp] = "1"
do_clean() {
    bbplain "cleaning ${WORKDIR}/${P} ..."
    rm -rf ${WORKDIR}/${P}
    bbplain "cleaning ${TMPDIR}/stamps/*"
    rm -f ${TMPDIR}/stamps/*

}

addtask clean

python do_testecho() {
    os.system("echo something ${WORKDIR}")
}

addtask testecho

Буду признателен за любую помощь, спасибо.

Это похоже на проблему с DNS, теперь это происходит где-то в вашем проекте? или это часть конфигурации вашей сети?, вы можете узнать это, вручную выполнив wget попытку получить тот же URL-адрес, что и Bitbake, если вы все еще видите проблему, это связано с вашей сетью, если вы можете успешно выполнить: wget -t 2 -T 30 --passive-ftp -O -P 'https://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz' Затем я вынимал аргументы из полного cmd, включая экспорты, один за другим, чтобы увидеть, какой из них вызывает это, и исправляя это позже в конфигах bitbake.

ah008a 11.01.2023 06:50

Да пробовал и получилось. Смотрите ответ ниже.

niksan 15.01.2023 15:52
Как создать страницу входа в систему с помощью HTML с использованием CSS
Как создать страницу входа в систему с помощью HTML с использованием CSS
Создание страницы входа в систему является важной частью создания веб-сайта или приложения, требующего аутентификации пользователя. Простую страницу...
0
2
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, я столкнулся с подобной проблемой недавно. Для меня решение состояло в том, чтобы добавить do_fetch[network] = "1" после моей строки addtask fetch в мой файл bbclass (где у меня была определена задача выборки — base.bbclass в моем случае).

Мне кажется, что в какой-то момент в bitbake появилось какое-то «сетевое» разрешение. Я бы предположил, что любая задача, которая хочет получить доступ к сети, должна иметь это свойство. Это также объясняет, почему он работает со старой версией.

Но я не нашел никакой информации об этом в документации, и мне лень просматривать их историю исходного кода, чтобы узнать.

Я проверил ваш рецепт с этим решением, используя bitbake 2.2.1 на моей машине, и задача выборки работала, когда у меня было установлено свойство network.

Для полноты вот как я определил задачу выборки:

addtask fetch
do_fetch[dirs] = "${DL_DIR}"
do_fetch[vardeps] += "SRCREV"
do_fetch[network] = "1"
python base_do_fetch() {
    src_uri = (d.getVar('SRC_URI') or "").split()
    print("fetching: ", src_uri)
    fetcher = bb.fetch2.Fetch(src_uri, d)
    fetcher.download()
}

Да, это сработало. Вы правы, похоже, что это какое-то «сетевое» разрешение. Я также пытался с таким же успехом с BB_ALLOWED_NETWORKS = "*.nano-editor.org". Мне нужно изучить это подробнее.

niksan 15.01.2023 16:05

Другие вопросы по теме