Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
350 stars 235 forks source link

Error when building: cannot create directory, file exists on Arch Linux #2743

Open ana-pavlakovic opened 1 year ago

ana-pavlakovic commented 1 year ago

When building I get the following error(s):

+ rm -f '/home/my-name/macaulay2/src/M2/M2/usr-host/lib/*.la' /usr/bin/install -c -d /home/my-name/macaulay2/src/M2/M2/usr-host/bin /usr/bin/install: cannot create directory ‘/home/my-name/macaulay2/src/M2/M2/usr-host/bin’: File exists make[2]: *** [../Makefile.library:135: .installed-6.2.0] Error 1 make[2]: Leaving directory '/home/my-name/macaulay2/src/M2/M2/libraries/csdp' make[1]: *** [Makefile:7: all-in-csdp] Error 2 make[1]: Leaving directory '/home/my-name/macaulay2/src/M2/M2/libraries' make: *** [GNUmakefile:251: all-in-libraries] Error 2 make: Leaving directory '/home/my-name/macaulay2/src/M2/M2' ==> ERROR: A failure occurred in build(). Aborting...

How do I fix this? Removing the file bin and rerunning it does not change anything. Removing everything and starting from anew also not.

d-torrance commented 1 year ago

It looks like the error is happening while building CSDP, which can be avoided if it's already available on the system. It looks like there's an Arch package for it (https://archlinux.org/packages/community/x86_64/coin-or-csdp/). Perhaps installing that first might help?

ana-pavlakovic commented 1 year ago

It looks like the error is happening while building CSDP, which can be avoided if it's already available on the system. It looks like there's an Arch package for it (https://archlinux.org/packages/community/x86_64/coin-or-csdp/). Perhaps installing that first might help?

I tried that and unfortunately I get the same error.

ana-pavlakovic commented 1 year ago

Okay, I installed CSDP and began everything from the start. I now get a different error message:

Can't locate builtin.pm in @INC (you may need to install the builtin module) (@INC contains: /usr/share/autoconf /usr/lib/perl5/5.36/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.36/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.36/core_perl /usr/share/perl5/core_perl) at /usr/share/perl5/core_perl/File/Copy.pm line 14. BEGIN failed--compilation aborted at /usr/share/perl5/core_perl/File/Copy.pm line 14. Compilation failed in require at /usr/share/autoconf/Autom4te/FileUtils.pm line 143. BEGIN failed--compilation aborted at /usr/share/autoconf/Autom4te/FileUtils.pm line 143. Compilation failed in require at /usr/bin/autom4te line 46. BEGIN failed--compilation aborted at /usr/bin/autom4te line 46. aclocal: error: /usr/bin/autom4te failed with exit status: 2 autoreconf: error: aclocal failed with exit status: 2 make: *** [GNUmakefile:210: submodules/mathicgb/configure] Error 2 ==> ERROR: A failure occurred in build(). Aborting...

What is the 'builtin module'?

d-torrance commented 1 year ago

What is the 'builtin module'?

It appears to be a new module that was introduced in Perl 5.36. It should be shipped with Arch's Perl package (see https://archlinux.org/packages/core/x86_64/perl/).

What happens when you run ls /usr/share/perl5/core_perl/builtin.pm?

ana-pavlakovic commented 1 year ago

It outputs builtin.pm.

d-torrance commented 1 year ago

Hmm, that's very strange. You have the file, and /usr/share/perl5/core_perl is listed as being in @INC, so I'm not sure why Perl can't locate it.

It seems like your autoconf package is broken somehow. Maybe try reinstalling that?

ana-pavlakovic commented 1 year ago

Okay, I did that, but I get another error: autoconf /usr/bin/m4:configure.ac:1257: ERROR: cannot flush diversion to temporary file: No space left on device /usr/bin/m4:configure.ac:1257: cannot clean temporary file for diversion autom4te: error: /usr/bin/m4 failed with exit status: 1 make: *** [Makefile:41: configure] Error 1 ==> ERROR: A failure occurred in build(). Aborting...

d-torrance commented 1 year ago

It looks like you're out of disk space.

ana-pavlakovic commented 1 year ago

It says so, but I have plenty of space left.

DanGrayson commented 1 year ago

The message "No space left on device" is definitive. You could have multiple drives, and only one which is full: the temporary one. Look at the output from the shell command "df".