Broken biber (LaTeX bibliography tool)

Dear Manjaro community,

The biber command on my installation does not work.
It seems that some Perl modules are not installed correctly.
I tried following this post and ran pacman -Rns texlive biber and thereafter pacman -Syu texlive biber,
but exactly the same problem remains.

For example, if I try to run biber on a document, I obtain:

❯ biber output/main
Can't locate mro.pm in @INC (you may need to install the mro module) (@INC entries checked: /usr/lib/perl5/5.40/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.40/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.40/core_perl /usr/share/perl5/core_perl) at /usr/share/perl5/vendor_perl/MRO/Compat.pm line 38.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/MRO/Compat.pm line 44.
Compilation failed in require at /usr/share/perl5/vendor_perl/Specio/OO.pm line 8.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Specio/OO.pm line 8.
Compilation failed in require at /usr/share/perl5/vendor_perl/Specio/Coercion.pm line 8.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Specio/Coercion.pm line 8.
Compilation failed in require at /usr/share/perl5/vendor_perl/Specio/Declare.pm line 11.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Specio/Declare.pm line 11.
Compilation failed in require at /usr/lib/perl5/5.40/vendor_perl/DateTime/Types.pm line 12.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.40/vendor_perl/DateTime/Types.pm line 12.
Compilation failed in require at /usr/lib/perl5/5.40/vendor_perl/DateTime/Duration.pm line 12.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.40/vendor_perl/DateTime/Duration.pm line 12.
Compilation failed in require at /usr/lib/perl5/5.40/vendor_perl/DateTime.pm line 14.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.40/vendor_perl/DateTime.pm line 14.
Compilation failed in require at /usr/share/perl5/vendor_perl/Biber/Date/Format.pm line 6.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Biber/Date/Format.pm line 6.
Compilation failed in require at /usr/share/perl5/vendor_perl/Biber/Constants.pm line 10.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Biber/Constants.pm line 10.
Compilation failed in require at /usr/share/perl5/vendor_perl/Biber/Internals.pm line 7.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Biber/Internals.pm line 7.
Compilation failed in require at /usr/share/perl5/core_perl/parent.pm line 16.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Biber.pm line 5.
Compilation failed in require at /usr/bin/vendor_perl/biber line 17.
BEGIN failed--compilation aborted at /usr/bin/vendor_perl/biber line 17.

Note that this command worked before, on the same document.

Does anyone, by any chance, have an idea how to fix it?

Thank you in advance!

Did you already try to install mro ???

Is your system up to date ???

:footprints:

Welcome to Manjaro! :smiling_face_with_three_hearts:

  1. Please read the information behind this link. It will help you to post necessary information.
  1. Please press the three dots below your post and then press the :pencil2:
  • If you give us information about your system, we can see what we’re talking about and make better suggestions.
  • You can do this by using inxi in a terminal or in console.
sudo inxi --verbosity=8 --filter --width 
  • Personally identifiable information such as serial numbers and MAC addresses are filtered out by this command
  • Presenting the information in this way allows everyone to be familiar with the format and quickly find the items they need without missing anything.
  1. Copy the output from inxi (including the command) and paste it into your post.
  • To make it more readable, add 3 backticks ``` on an extra line before and after the pasted text.
  1. Or we can try to play hide and seek :wink:
    Have you already :mag: for your problem in the forum ? (Wisdom lies in asking → listening → reading :wink: )

Thank you for the reply.
Yes I did a full system update yesterday before trying to reinstall texlive.
It seems mro is already installed, or at least the only thing close to it:

❯ pacman -Ss mro
extra/perl-mro-compat 0.15-4 [installed]
    mro::* interface compatibility for Perls < 5.9.5
extra/python-inwx-domrobot 3.2.0-1
    INWX API Python Client

on my pc

ls /usr/lib/perl5/5.40/core_perl

results in:

 auto       Devel    Hash   Math     Sys             B.pm              Cwd.pm          Errno.pm       mro.pm         ops.pm         Socket.pm
 B          Digest   I18N   MIME     threads         Config.pm         DB_File.pm      Fcntl.pm       NDBM_File.pm   POSIX.pm       Storable.pm
 Compress   Encode   IO     PerlIO   Time            Config.pod        DynaLoader.pm   GDBM_File.pm   O.pm           POSIX.pod      threads.pm
 CORE       File     IPC    Scalar   Unicode         Config_git.pl     Encode.pm       IO.pm          ODBM_File.pm   re.pm         
 Data       Filter   List   Sub      attributes.pm   Config_heavy.pl   encoding.pm     lib.pm         Opcode.pm      SDBM_File.pm 

there is a mro.pm

ls -la /usr/lib/perl5/5.40/core_perl/mro.pm                                                                                         ✔ 
.r--r--r-- 9,8k root root 2024-09-01 12:21  /usr/lib/perl5/5.40/core_perl/mro.pm
  • where is yours ?

I can’t help you further. I know nothing about :beaver: biber, or :oyster: perl.
:footprints:

mro.pm is already provided by core/perl (pacman -Fx mro.pm)

Do you have a special latex setup? Specifically, you might have a configuration file in ~/.texlive?

Sometimes, when updating the underlying software, intermediate files might be incompatible like the .aux files (or bbl, or whatever). I recommend compiling from scratch. (If using latexmk, this could be done with latexmk -gg or latexmk -C, well, or manually of course.)

1 Like

Thanks for the help.

On my machine, I obtain

❯ ls /usr/lib/perl5/5.40/core_perl
attributes.pm  B.pm           Config_heavy.pl  CORE    DB_File.pm  DynaLoader.pm  encoding.pm  File          Hash  IO.pm  Math          ODBM_File.pm  ops.pm    POSIX.pod  SDBM_File.pm  Sub      threads.pm
auto           Compress       Config.pm        Cwd.pm  Devel       Encode         Errno.pm     Filter        I18N  IPC    MIME          Opcode.pm     PerlIO    re.pm      Socket.pm     Sys      Time
B              Config_git.pl  Config.pod       Data    Digest      Encode.pm      Fcntl.pm     GDBM_File.pm  IO    List   NDBM_File.pm  O.pm          POSIX.pm  Scalar     Storable.pm   threads  Unicode

There is no mro.pm here!

My ~/.texlive seems to only contain some blackboard-math font.
I do not remember whether or not I once manually created it.

❯ ls -R ~/.texlive
/home/nifrec/.texlive:
texmf-var

/home/nifrec/.texlive/texmf-var:
fonts

/home/nifrec/.texlive/texmf-var/fonts:
pk  tfm

/home/nifrec/.texlive/texmf-var/fonts/pk:
ljfour

/home/nifrec/.texlive/texmf-var/fonts/pk/ljfour:
public

/home/nifrec/.texlive/texmf-var/fonts/pk/ljfour/public:
bbm

/home/nifrec/.texlive/texmf-var/fonts/pk/ljfour/public/bbm:
bbm10.600pk  bbm10.657pk  bbm5.600pk  bbm7.600pk  bbm8.600pk  bbm9.600pk

/home/nifrec/.texlive/texmf-var/fonts/tfm:
unknown

/home/nifrec/.texlive/texmf-var/fonts/tfm/unknown:
unknown

/home/nifrec/.texlive/texmf-var/fonts/tfm/unknown/unknown:

I always compile via the terminal, simply with xelatex main.tex (or actually xelatex main.tex --output-directory=output to hide all the auxiliary files).
But the problem doesn’t seem to be the latex compilation.
Simply running biber (without arguments) results in the same error, so I guess just the biber installation is broken.

No, i dont think so, because:

LANG=C;pacman -Qo /usr/lib/perl5/5.40/core_perl/mro.pm                                                                                           ✔ 
/usr/lib/perl5/5.40/core_perl/mro.pm is owned by perl 5.40.0-1

/usr/lib/perl5/5.40/core_perl/mro.pm belongs to perl !

your perl is broken !

:footprints:

1 Like

Thanks, it seems you are right.

❯ pacman -Qk perl
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/Math/BigInt/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/Math/BigInt/FastCalc/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/Math/BigInt/FastCalc/FastCalc.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/attributes/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/attributes/attributes.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/mro/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/mro/mro.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/re/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/re/re.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/threads/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/threads/shared/ (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/threads/shared/shared.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/auto/threads/threads.so (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/lib.pm (No such file or directory)
warning: perl: /usr/lib/perl5/5.40/core_perl/mro.pm (No such file or directory)
perl: 3136 total files, 15 missing files

Thereafter I ran sudo pacman -Syu perl and now biber works again!
Thanks! :slightly_smiling_face:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.