I am trying to run buildroot with root user. Even after setting FORCE_UNSAFE_CONFIGURE=1
as export FORCE_UNSAFE_CONFIGURE=1
I still get configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
.
When I try to run buildroot without root user I get some error related to fakeroot
Can some please guide me if running as root why even after running command export FORCE_UNSAFE_CONFIGURE=1
I still getting configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See
config.log’ for more details`
How to fix it with root user so I can run buildroot
the error message also says look at the config.log file.What I like to know I ran export FORCE_UNSAFE_CONFIGURE=1
command but I could not find FORCE_UNSAFE_CONFIGURE=1
in cache variables of config.log
This is also printed in config.log
#define GNULIB_TEST_MKFIFOAT 1 | #define GNULIB_TEST_MKNODAT 1 | /* end confdefs.h. */ | #include <sys/stat.h> | #include <unistd.h> | | /* Copied from root-uid.h. FIXME: Just use root-uid.h. */ | #ifdef __TANDEM | # define ROOT_UID 65535 | #else | # define ROOT_UID 0 | #endif | | int | main () | { | /* Indeterminate for super-user, assume no. Why are you running | configure as root, anyway? */ | if (geteuid () == ROOT_UID) return 99; | if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2; | ; | return 0; | } configure:25690: error: in `/home/ubuntu/qemuD/build/output/build/host-tar-1.29': configure:25692: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See `config.log' for more details ##
Can I remove check root varification and allow root running buildroot in some buildroot code like in some python file or something.
Also please tell what is fakeroot. if I dont run as root user then it cause some error about fakeroot. Is it an additional thing that I need to install in ubuntu where I am running and executing buildroot. Or is it part of buildroot. So for that just few words
Update
If I do not run as root and run commands
make host-tar-dirclean make
I get following error. I like to know how to debug or troubleshoot this error. I mean if following error u would have faced what would u do. And any explanation. Tnanks
In file included from libfakeroot.c:60: communicate.h:209:44: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat *’ 209 | extern void send_get_stat64(struct stat64 *buf); | ~~~~~~~~~~~~~~~^~~ libtool: link: /usr/bin/gcc -O2 -I/home/ubuntu/abc/buildroot-2020.02.3/output/host/include -Wl,-rpath -Wl,/home/ubuntu/abc/buildroot-2020.02.3/output/host/lib -o simple simple.o -L/home/ubuntu/abc/buildroot-2020.02.3/output/host/lib -ldl make[4]: *** [Makefile:652: libfakeroot.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... libtool: link: /usr/bin/ar cru .libs/libmacosx.a .libs/libfakeroot_inode64.o .libs/libfakeroot_unix2003.o /usr/bin/ar: `u' modifier ignored since `D' is the default (see `U') libtool: link: /usr/bin/ranlib .libs/libmacosx.a libtool: link: ( cd ".libs" && rm -f "libmacosx.la" && ln -s "../libmacosx.la" "libmacosx.la" ) make[3]: *** [Makefile:670: all-recursive] Error 1 make[2]: *** [Makefile:445: all] Error 2 make[1]: *** [package/pkg-generic.mk:269: /home/ubuntu/abc/buildroot-2020.02.3/output/build/host-fakeroot-1.20.2/.stamp_built] Error 2 make: *** [Makefile:84: _all] Error 2 ubuntu@this:~/abc/buildroot-2020.02.3$
Advertisement
Answer
First of all: don’t build as root. It’s just a bad idea.
The error doesn’t come from Buildroot, it comes from the tar
package.
FORCE_UNSAFE_CONFIG is not a cache variable so it doesn’t appear in config.log.
It should work with that environment variable set. Have you tried:
export FORCE_UNSAFE_CONFIGURE=1 make host-tar-dirclean make
fakeroot is a tool do be able to fake a few things that normally only root can do: set file ownership, create device nodes, etc. The faked files can then be added to a tar archive or to a generated filesystem.
fakeroot had a “bug” that it was using the glibc-internal macro _STAT_VER
. This macro was removed in glibc-2.33. Ubuntu 21.04 (hirsute) is using glibc-2.33. A patch to fix this is included in the maintained Buildroot branches. Update to a supported Buildroot release to fix this problem (or downgrade your build environment to an Ubuntu version that was current in 2020).