Hi, As some extra info: `guix shell` by default does what `guix environment --ad-hoc` did. And `guix shell --development` is what `guix environment` was. They are equivalent, but the flags might be confusing at the beginning! Happy hacking! Ekaitz [ElenQ Technology](https://elenq.tech) Ethical Innovation ------- Original Message ------- On Saturday, July 9th, 2022 at 12:16 AM, Zelphir Kaltstahl wrote: > Hello : ) > > Thank you both! I did not know that. I previously mistakenly thought "environment = shell", but did not know, that I would have to add `-D` or `--development` to actually make an equivalent call. So `guix shell`, I guess, is more nuanced then, than `guix environment`. > > Anyway, that solves it, thank you! > > Best regards, > Zelphir > > On 7/9/22 00:07, Ekaitz Zarraga wrote: > >> Hi, >> Isn't `guix environment guix` equivalent to `guix shell -D guix`? >> I think you are missing a -D there so it's adding a shell with guix and not with its development dependencies. >> >> Hope that helps, >> Ekaitz >> >> [ElenQ Technology](https://elenq.tech) >> Ethical Innovation >> >> ------- Original Message ------- >> On Saturday, July 9th, 2022 at 12:02 AM, Zelphir Kaltstahl [](mailto:zelphirkaltstahl@posteo.de) wrote: >> >>> On 7/8/22 23:57, Zelphir Kaltstahl wrote: >>> >>>> Hello Guix developers! >>>> >>>> I am messing around again with updating a package and according to my own guide from previous adventures, I have to run the following command to generate the `pre-inst-env` script, in the root directory of the guix sources: >>>> >>>> ~~~~ >>>> guix environment guix -- ./bootstrap >>>> ~~~~ >>>> >>>> But then I remembered, that actually `guix shell` is the newer thing and changed it to: >>>> >>>> ~~~~ >>>> guix shell guix -- ./bootstrap >>>> ~~~~ >>>> >>>> However, this does not work. I get an error: >>>> >>>> ~~~~ >>>> $ guix shell guix -- ./bootstrap >>>> + find po/doc -type f -name guix-manual*.po >>>> + sed -e s,.*/guix-manual\.,,;s,\.po$,, >>>> + langs=fr >>>> ru >>>> es >>>> pt_BR >>>> de >>>> zh_CN >>>> + [ ! -e doc/guix.fr.texi ] >>>> + [ ! -e doc/guix.ru.texi ] >>>> + [ ! -e doc/guix.es.texi ] >>>> + [ ! -e doc/guix.pt_BR.texi ] >>>> + [ ! -e doc/guix.de.texi ] >>>> + [ ! -e doc/guix.zh_CN.texi ] >>>> + find po/doc -type f -name guix-cookbook*.po >>>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,, >>>> + langs=de >>>> fr >>>> sk >>>> ko >>>> + [ ! -e doc/guix-cookbook.de.texi ] >>>> + [ ! -e doc/guix-cookbook.fr.texi ] >>>> + [ ! -e doc/guix-cookbook.sk.texi ] >>>> + [ ! -e doc/guix-cookbook.ko.texi ] >>>> + exec autoreconf -vfi >>>> autoreconf: Entering directory `.' >>>> autoreconf: running: autopoint --force >>>> autoreconf: running: aclocal --force -I m4 >>>> autoreconf: configure.ac: tracing >>>> autoreconf: configure.ac: not using Libtool >>>> autoreconf: running: /usr/bin/autoconf --force >>>> configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE >>>> If this token and others are legitimate, please use m4_pattern_allow. >>>> See the Autoconf documentation. >>>> configure.ac:99: error: possibly undefined macro: GUILE_PKG >>>> configure.ac:100: error: possibly undefined macro: GUILE_PROGS >>>> autoreconf: /usr/bin/autoconf failed with exit status: 1 >>>> ~~~~ >>>> >>>> When I use `guix environment` it works: >>>> >>>> ~~~~ >>>> guix environment guix -- ./bootstrap >>>> + find po/doc -type f -name guix-manual*.po >>>> + sed -e s,.*/guix-manual\.,,;s,\.po$,, >>>> + langs=fr >>>> ru >>>> es >>>> pt_BR >>>> de >>>> zh_CN >>>> + [ ! -e doc/guix.fr.texi ] >>>> + [ ! -e doc/guix.ru.texi ] >>>> + [ ! -e doc/guix.es.texi ] >>>> + [ ! -e doc/guix.pt_BR.texi ] >>>> + [ ! -e doc/guix.de.texi ] >>>> + [ ! -e doc/guix.zh_CN.texi ] >>>> + find po/doc -type f -name guix-cookbook*.po >>>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,, >>>> + langs=de >>>> fr >>>> sk >>>> ko >>>> + [ ! -e doc/guix-cookbook.de.texi ] >>>> + [ ! -e doc/guix-cookbook.fr.texi ] >>>> + [ ! -e doc/guix-cookbook.sk.texi ] >>>> + [ ! -e doc/guix-cookbook.ko.texi ] >>>> + exec autoreconf -vfi >>>> autoreconf: Entering directory `.' >>>> autoreconf: running: autopoint --force >>>> autoreconf: running: aclocal --force -I m4 >>>> autoreconf: configure.ac: tracing >>>> autoreconf: configure.ac: not using Libtool >>>> autoreconf: running: /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf --force >>>> autoreconf: running: /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader --force >>>> autoreconf: running: automake --add-missing --copy --force-missing >>>> Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS >>>> autoreconf: Leaving directory `.' >>>> ~~~~ >>>> >>>> I do not know, if this is intentional or not, but I thought that `guix environment` will be phased out or something. >>>> >>>> Here is my installed guix version: >>>> >>>> ~~~~ >>>> $ guix describe >>>> guix d7d2340 >>>> repository URL: >>>> https://git.savannah.gnu.org/git/guix.git >>>> branch: master >>>> commit: d7d23407213247d0173eabd2c769f2b98cef4fe9 >>>> >>>> $ guix --version >>>> guix (GNU Guix) 0 >>>> Copyright (C) 2022 the Guix authors >>>> License GPLv3+: GNU GPL version 3 or later >>>> [](http://gnu.org/licenses/gpl.html) >>>> This is free software: you are free to change and redistribute it. >>>> There is NO WARRANTY, to the extent permitted by law. >>>> ~~~~ >>>> >>>> I did `guix pull && guix package -u` just a few minutes ago, so everything should be quite up-to-date. >>>> >>>> Best regards, >>>> Zelphir >>>> >>>> -- >>>> repositories: >>>> https://notabug.org/ZelphirKaltstahl >>> >>> Addendum: >>> >>> I just noticed, that also the next step `guix shell guix -- ./configure --localstatedir=/var` does not work, but `guix environment guix -- ./configure --localstatedir=/var` does work: >>> >>> ~~~~ >>> $ guix shell guix -- ./configure --localstatedir=/var >>> checking for a BSD-compatible install... /usr/bin/install -c >>> checking whether build environment is sane... yes >>> checking for a thread-safe mkdir -p... /usr/bin/mkdir -p >>> checking for gawk... gawk >>> checking whether make sets $(MAKE)... yes >>> checking whether make supports nested variables... yes >>> checking whether UID '1000' is supported by ustar format... yes >>> checking whether GID '1000' is supported by ustar format... yes >>> checking how to create a ustar tar archive... gnutar >>> checking whether make supports nested variables... (cached) yes >>> checking whether make supports the include directive... yes (GNU style) >>> checking for gcc... gcc >>> checking whether the C compiler works... yes >>> checking for C compiler default output file name... a.out >>> checking for suffix of executables... >>> checking whether we are cross compiling... no >>> checking for suffix of object files... o >>> checking whether we are using the GNU C compiler... yes >>> checking whether gcc accepts -g... yes >>> checking for gcc option to accept ISO C89... none needed >>> checking whether gcc understands -c and -o together... yes >>> checking dependency style of gcc... gcc3 >>> checking how to run the C preprocessor... gcc -E >>> checking for grep that handles long lines and -e... /usr/bin/grep >>> checking for egrep... /usr/bin/grep -E >>> checking for ANSI C header files... yes >>> checking for sys/types.h... yes >>> checking for sys/stat.h... yes >>> checking for stdlib.h... yes >>> checking for string.h... yes >>> checking for memory.h... yes >>> checking for strings.h... yes >>> checking for inttypes.h... yes >>> checking for stdint.h... yes >>> checking for unistd.h... yes >>> checking minix/config.h usability... no >>> checking minix/config.h presence... no >>> checking for minix/config.h... no >>> checking whether it is safe to define __EXTENSIONS__... yes >>> checking for a sed that does not truncate output... /usr/bin/sed >>> checking whether NLS is requested... yes >>> checking for msgfmt... no >>> checking for gmsgfmt... : >>> checking for xgettext... no >>> checking for msgmerge... no >>> checking build system type... x86_64-pc-linux-gnu >>> checking host system type... x86_64-pc-linux-gnu >>> checking for ld used by gcc... /usr/bin/ld >>> checking if the linker (/usr/bin/ld) is GNU ld... yes >>> checking for shared library run path origin... done >>> checking for CFPreferencesCopyAppValue... no >>> checking for CFLocaleCopyCurrent... no >>> checking for GNU gettext in libc... yes >>> checking whether to use NLS... yes >>> checking where the gettext function comes from... libc >>> checking for sed... (cached) /usr/bin/sed >>> checking for the Guix system type... x86_64-linux >>> checking for the store directory... /gnu/store >>> checking the length of the installed socket file name... 30 >>> checking for unit test root directory... /home/xiaolong/dev/guix/test-tmp >>> checking the length of the socket file name used in tests... 64 >>> checking the length of a typical hash bang line... 73 >>> checking the length of a hash bang line used in tests... 101 >>> checking for pkg-config... /usr/bin/pkg-config >>> checking pkg-config is at least version 0.9.0... yes >>> configure: checking for guile 3.0 >>> configure: error: >>> No Guile development packages were found. >>> >>> Please verify that you have Guile installed. If you installed Guile >>> from a binary distribution, please verify that you have also installed >>> the development packages. If you installed it yourself, you might need >>> to adjust your PKG_CONFIG_PATH; see the pkg-config man page for more. >>> >>> $ guix environment guix -- ./configure --localstatedir=/var >>> checking for a BSD-compatible install... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/install -c >>> checking whether build environment is sane... yes >>> checking for a thread-safe mkdir -p... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/mkdir -p >>> checking for gawk... gawk >>> checking whether make sets $(MAKE)... yes >>> checking whether make supports nested variables... yes >>> checking whether UID '1000' is supported by ustar format... yes >>> checking whether GID '1000' is supported by ustar format... yes >>> checking how to create a ustar tar archive... gnutar >>> checking whether make supports nested variables... (cached) yes >>> checking whether make supports the include directive... yes (GNU style) >>> checking for gcc... gcc >>> checking whether the C compiler works... yes >>> checking for C compiler default output file name... a.out >>> checking for suffix of executables... >>> checking whether we are cross compiling... no >>> checking for suffix of object files... o >>> checking whether we are using the GNU C compiler... yes >>> checking whether gcc accepts -g... yes >>> checking for gcc option to accept ISO C89... none needed >>> checking whether gcc understands -c and -o together... yes >>> checking dependency style of gcc... gcc3 >>> checking how to run the C preprocessor... gcc -E >>> checking for grep that handles long lines and -e... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/grep >>> checking for egrep... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/grep -E >>> checking for ANSI C header files... yes >>> checking for sys/types.h... yes >>> checking for sys/stat.h... yes >>> checking for stdlib.h... yes >>> checking for string.h... yes >>> checking for memory.h... yes >>> checking for strings.h... yes >>> checking for inttypes.h... yes >>> checking for stdint.h... yes >>> checking for unistd.h... yes >>> checking minix/config.h usability... no >>> checking minix/config.h presence... no >>> checking for minix/config.h... no >>> checking whether it is safe to define __EXTENSIONS__... yes >>> checking for a sed that does not truncate output... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/sed >>> checking whether NLS is requested... yes >>> checking for msgfmt... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/msgfmt >>> checking for gmsgfmt... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/msgfmt >>> checking for xgettext... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/xgettext >>> checking for msgmerge... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/msgmerge >>> checking build system type... x86_64-pc-linux-gnu >>> checking host system type... x86_64-pc-linux-gnu >>> checking for ld used by gcc... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/ld >>> checking if the linker (/gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/ld) is GNU ld... yes >>> checking for shared library run path origin... done >>> checking for CFPreferencesCopyAppValue... no >>> checking for CFLocaleCopyCurrent... no >>> checking for GNU gettext in libc... yes >>> checking whether to use NLS... yes >>> checking where the gettext function comes from... libc >>> checking for sed... (cached) /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/sed >>> checking for the Guix system type... x86_64-linux >>> checking for the store directory... /gnu/store >>> checking the length of the installed socket file name... 30 >>> checking for unit test root directory... /home/xiaolong/dev/guix/test-tmp >>> checking the length of the socket file name used in tests... 64 >>> checking the length of a typical hash bang line... 73 >>> checking the length of a hash bang line used in tests... 101 >>> checking for pkg-config... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/pkg-config >>> checking pkg-config is at least version 0.9.0... yes >>> configure: checking for guile 3.0 >>> configure: found guile 3.0 >>> checking for guile-3.0... no >>> checking for guile3.0... no >>> checking for guile-3... no >>> checking for guile3... no >>> checking for guile... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile >>> checking for Guile version >= 3.0... 3.0.8 >>> checking for guild... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guild >>> checking for guile-config... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile-config >>> checking for guile-3.0 >= 3.0.3... yes >>> checking for guile-3.0... yes >>> checking if (gnutls) is available... yes >>> checking if (git) is available... yes >>> checking whether Guile-JSON is available and recent enough... yes >>> checking whether Guile-Sqlite3 is available and recent enough... yes >>> checking whether Guile-Gcrypt is available and recent enough... yes >>> checking whether Guile-Git is available and recent enough... yes >>> checking if (htmlprag) exports `%strict-tokenizer?'... yes >>> checking whether Guile-zlib is available and recent enough... yes >>> checking if (lzlib) is available... yes >>> checking if (avahi) is available... yes >>> checking if (newt) is available... no >>> checking whether /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile provides feature 'regex'... yes >>> checking whether /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile provides feature 'posix'... yes >>> checking whether /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile provides feature 'socket'... yes >>> checking whether /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile provides feature 'net-db'... yes >>> checking whether /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile provides feature 'threads'... yes >>> checking for a sed that does not truncate output... (cached) /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/sed >>> checking for gzip... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/gzip >>> checking for bzip2... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/bzip2 >>> checking for xz... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/xz >>> checking for libgcrypt-config... /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/libgcrypt-config >>> checking libgcrypt's library directory... /gnu/store/3kl94m3ksm45a880b6lnn3kagk857lj9-libgcrypt-1.8.8/lib >>> checking whether Guile-SSH is available and recent enough... yes >>> checking whether to build daemon... yes >>> checking for g++... g++ >>> checking whether we are using the GNU C++ compiler... yes >>> checking whether g++ accepts -g... yes >>> checking dependency style of g++... gcc3 >>> checking for ar... ar >>> checking the archiver (ar) interface... ar >>> checking whether g++ supports C++11... yes >>> checking for ranlib... ranlib >>> checking for special C compiler options needed for large files... no >>> checking for _FILE_OFFSET_BITS value needed for large files... no >>> checking for gzdopen in -lz... yes >>> checking how to run the C++ preprocessor... g++ -E >>> checking zlib.h usability... yes >>> checking zlib.h presence... yes >>> checking for zlib.h... yes >>> checking for BZ2_bzWriteOpen in -lbz2... yes >>> checking bzlib.h usability... yes >>> checking bzlib.h presence... yes >>> checking for bzlib.h... yes >>> checking for sqlite3 >= 3.6.19... yes >>> checking for gcry_md_open in -lgcrypt... yes >>> checking gcrypt.h usability... yes >>> checking gcrypt.h presence... yes >>> checking for gcrypt.h... yes >>> checking for chroot... yes >>> checking for unshare... yes >>> checking sched.h usability... yes >>> checking sched.h presence... yes >>> checking for sched.h... yes >>> checking sys/param.h usability... yes >>> checking sys/param.h presence... yes >>> checking for sys/param.h... yes >>> checking sys/mount.h usability... yes >>> checking sys/mount.h presence... yes >>> checking for sys/mount.h... yes >>> checking sys/syscall.h usability... yes >>> checking sys/syscall.h presence... yes >>> checking for sys/syscall.h... yes >>> checking for lutimes... yes >>> checking for lchown... yes >>> checking for posix_fallocate... yes >>> checking for sched_setaffinity... yes >>> checking for statvfs... yes >>> checking for nanosleep... yes >>> checking for strsignal... yes >>> checking for statx... yes >>> checking locale usability... yes >>> checking locale presence... yes >>> checking for locale... yes >>> checking sys/personality.h usability... yes >>> checking sys/personality.h presence... yes >>> checking for sys/personality.h... yes >>> checking for default substitute URLs... >>> https://ci.guix.gnu.org >>> >>> https://bordeaux.guix.gnu.org >>> checking whether Guile-SSH is available and recent enough... (cached) yes >>> checking for unit test root directory... (cached) /home/xiaolong/dev/guix/test-tmp >>> checking for guile... (cached) /gnu/store/18zvp6m7c63r66849g0pj20bxi3mc501-profile/bin/guile >>> checking the current installation's localstatedir... none >>> checking that generated files are newer than configure... done >>> configure: creating ./config.status >>> config.status: creating Makefile >>> config.status: creating po/guix/Makefile.in >>> config.status: creating po/packages/Makefile.in >>> config.status: creating etc/guix-daemon.cil >>> config.status: creating guix/config.scm >>> config.status: creating etc/committer.scm >>> config.status: creating etc/teams.scm >>> config.status: creating test-env >>> config.status: creating pre-inst-env >>> config.status: creating nix/config.h >>> config.status: executing depfiles commands >>> config.status: executing po-directories commands >>> config.status: creating po/guix/POTFILES >>> config.status: creating po/guix/Makefile >>> config.status: creating po/packages/POTFILES >>> config.status: creating po/packages/Makefile >>> ~~~~ >>> >>> -- >>> repositories: >>> https://notabug.org/ZelphirKaltstahl > > -- > repositories: > https://notabug.org/ZelphirKaltstahl